2048中需要使用的逻辑
来源:互联网 发布:linux 打包压缩文件夹 编辑:程序博客网 时间:2024/04/30 14:49
void GameScene::onTouchEnded(Touch *touch, Event *unused_event){
int w=abs(touch->getLocation().x-startX);//移动的宽度
int h=abs(touch->getLocation().y-startY);//移动的高度
if(w>h)//左右移动
{
if(touch->getLocation().x>startX)
{//向右
moveAllCard(CARD_DIR::DIR_RIGHT);
}else
{
moveAllCard(CARD_DIR::DIR_LEFT);
}
}else //上下移动
{
if(touch->getLocation().y>startY)
{
moveAllCard(CARD_DIR::DIR_UP);
}else
{
moveAllCard(CARD_DIR::DIR_DOWN);
}
}
}
void GameScene::moveAllCard(CARD_DIR dir){
//按照方向移动这个卡片
switch (dir) {
case CARD_DIR::DIR_LEFT:
//一共要移动4行
for (int row=0; row<4; row++) {
for (int col=1; col<=3; col++) {
int tocol=0;
for (int ncol=col; ncol>0; ncol--) {
if(map[row][ncol]>0)//如果row ncol位置有块
{ if(map[row][ncol-1]==0)// //前面可以移动
{ //修改地图数据
map[row][ncol-1]=map[row][ncol];
map[row][ncol]=0;
//修改卡片数据
allCard.at(map[row][ncol-1]-1)
->moveCard(row, ncol-1);
}
else//map[row][ncol]有块 map[row][ncol-1]也又块
{ //判断2个块的值是否相等
int num1=allCard.at(map[row][ncol-1]-1)->number;
int num2=allCard.at(map[row][ncol]-1)->number;
if(num1==num2)
{
allCard.at(map[row][ncol-1]-1)->doubleMe();
addScore(num1*2);
int backindex=map[row][ncol]-1;
map[row][ncol]=0;
allCard.at(backindex)->removeFromParentAndCleanup(true);
allCard.erase(backindex);//移除后面的块
//调整索引值
for (int i=0; i<4; i++) {
for (int j=0; j<4; j++) {
if(map[i][j]>backindex)
{
map[i][j]--;
}
}
}
}
}
}
}
}
}
break;
- 2048中需要使用的逻辑
- Android 中weight使用的逻辑
- KEIL中逻辑分析仪的使用
- oracle中逻辑与、逻辑或、逻辑与非函数的使用
- 使用SQL中SELECT语句的使用条件逻辑
- MFC GDI使用实例源码、逻辑坐标系、设备坐标系及需要注意的事项
- 使用tabhost换号登录情况是否需要刷新tab页的逻辑判断
- 逻辑操作需要注意的问题
- Spring使用中需要注意的地方
- HttpURLConnection使用中需要注意的地方
- VFW中使用capSetVideoFormat需要注意的
- 使用JavaScript 中需要注意的问题
- VFW中使用capSetVideoFormat需要注意的
- 逻辑尺的使用
- 在Java程序中使用逻辑块的技巧
- Logic Controller 逻辑控制的使用(继续中。。。)
- Logic Controller 逻辑控制的使用(继续中。。。)
- js中关于逻辑符号的连续使用问题
- 开源夏令营总结
- PreSubclassWindow里面再次调用Create函数创建子控件
- 数据结构----队列
- eclipse的优化 gc.log
- Java基础---运算符
- 2048中需要使用的逻辑
- java实现后台自动发邮件功能
- android 自定义view中onMeasure()理解
- JVM性能调优
- POJ 3690 Intervals 费用流 最大变最小
- hdu 4730 We Love MOE Girls(水题)
- 给晕针的童鞋一些参考
- O(N lgK) 时间内合并K个有序链表
- 《MFC游戏开发》笔记二 建立工程、调整窗口