• Android手游2048核心功能


      1 private void swipeUp(){ //向上滑动函数
      3         for (int x = 0; x < 4; x++) { //行从上到下
      4             for (int y = 0; y < 4; y++) { //列从左到右
      5                 for (int y1 = y+1; y1 < 4; y1++) { //当前方块的下一个向底遍历
      6                     if (Matrix[x][y1].getNum()>0) { //如果遍历过程中有非空方块(即有数字),则执行操作
      7                         if (Matrix[x][y].getNum()<=0) { //如果当前方块是空值,则将遍历到的非空方块移动到当前方块
      9                             int yoy =y1 - y; //移动的步距值
     10                             ta = new TranslateAnimation(Animation.RELATIVE_TO_SELF,0, Animation.RELATIVE_TO_SELF,0, 
     11                                     Animation.RELATIVE_TO_SELF,0, Animation.RELATIVE_TO_SELF,-yoy); //-yoy为负数,即相对于0,在y方向产生向上移动yoy步距的动画
     12                             ta.setDuration(100); //动画持续时间
     13                             Matrix[x][y1].startAnimation(ta); //演示动画
     15                             Matrix[x][y].setNum(Matrix[x][y1].getNum()); //设置当前方块值,移动成功
     16                             Matrix[x][y1].setNum(0); //将遍历到的方块值清零,即不显示
     17                             y--; //break后重新从当前方块的下一个重新开始遍历,等待一次寻找到相同值且合并的机会                           
    break; //break后重新从当前方块的下一个重新开始遍历,等待一次寻找到相同值且合并的机会 20 }else if (Matrix[x][y].equals(Matrix[x][y1])) { //如果当前方块的值与遍历到的方块值相等 22 int yoy =y1 - y; //移动的步距值 23 ta = new TranslateAnimation(Animation.RELATIVE_TO_SELF,0, Animation.RELATIVE_TO_SELF,0, 24 Animation.RELATIVE_TO_SELF,0, Animation.RELATIVE_TO_SELF,-yoy); //-yoy为负数,即相对于0,在y方向产生向上移动yoy步距的动画 25 ta.setDuration(100); //动画持续时间 26 Matrix[x][y1].startAnimation(ta); //演示动画 28 Matrix[x][y].setNum(Matrix[x][y1].getNum()*2); //设置当前方块值为两倍,即两方块相加 29 Matrix[x][y1].setNum(0); //将遍历到的方块清零,即不显示
    break; //完成相加后,从下一个方块开始完成新一轮操作 33 }else { 34 break; //如果当前方块的值与遍历到的方块值不相等,则从下一个方块开始完成新一轮操作 35 } 36 } 37 } 38 } 39 } 41 } 42 43 private void swipeDown(){ //向下滑动函数 45 for (int x = 0; x < 4; x++) { 46 for (int y = 3; y >= 0; y--) { 47 for (int y1 = y-1; y1 >= 0; y1--) { 48 if (Matrix[x][y1].getNum()>0) { 49 if (Matrix[x][y].getNum()<=0) { 51 int yoy =y1 - y; 52 ta = new TranslateAnimation(Animation.RELATIVE_TO_SELF,0, Animation.RELATIVE_TO_SELF,0, 53 Animation.RELATIVE_TO_SELF,0, Animation.RELATIVE_TO_SELF,-yoy); 54 ta.setDuration(100); 55 Matrix[x][y1].startAnimation(ta); 57 Matrix[x][y].setNum(Matrix[x][y1].getNum()); 58 Matrix[x][y1].setNum(0); 59 y++;
    break; 62 }else if (Matrix[x][y].equals(Matrix[x][y1])) { 64 int yoy =y1 - y; 65 ta = new TranslateAnimation(Animation.RELATIVE_TO_SELF,0, Animation.RELATIVE_TO_SELF,0, 66 Animation.RELATIVE_TO_SELF,0, Animation.RELATIVE_TO_SELF,-yoy); 67 ta.setDuration(100); 68 Matrix[x][y1].startAnimation(ta); 70 Matrix[x][y].setNum(Matrix[x][y1].getNum()*2); 71 Matrix[x][y1].setNum(0);
    break; 75 }else { 76 break; 77 } 78 } 79 } 80 } 81 } 83 } 84 85 private void swipeLeft(){ //向左滑动函数 87 for (int y = 0; y < 4; y++) { 88 for (int x = 0; x < 4; x++) { 89 for (int x1 = x+1; x1 < 4; x1++) { 90 if (Matrix[x1][y].getNum()>0) { 91 if (Matrix[x][y].getNum()<=0) { 93 int xox =x1 - x; 94 ta = new TranslateAnimation(Animation.RELATIVE_TO_SELF,0, Animation.RELATIVE_TO_SELF,-xox, 95 Animation.RELATIVE_TO_SELF,0, Animation.RELATIVE_TO_SELF,0); 96 ta.setDuration(100); 97 Matrix[x1][y].startAnimation(ta); 99 Matrix[x][y].setNum(Matrix[x1][y].getNum()); 100 Matrix[x1][y].setNum(0); 101 x--;
    break; 104 }else if (Matrix[x][y].equals(Matrix[x1][y])) { 106 int xox =x1 - x; 107 ta = new TranslateAnimation(Animation.RELATIVE_TO_SELF,0, Animation.RELATIVE_TO_SELF,-xox, 108 Animation.RELATIVE_TO_SELF,0, Animation.RELATIVE_TO_SELF,0); 109 ta.setDuration(100); 110 Matrix[x1][y].startAnimation(ta); 112 Matrix[x][y].setNum(Matrix[x1][y].getNum()*2); 113 Matrix[x1][y].setNum(0);
    break; 117 }else { 118 break; 119 } 120 } 121 } 122 } 123 } 125 } 126 127 private void swipeRight(){ //向右滑动函数 129 for (int y = 0; y < 4; y++) { 130 for (int x = 3; x >= 0; x--) { 131 for (int x1 = x-1; x1 >= 0; x1--) { 132 if (Matrix[x1][y].getNum()>0) { 133 if (Matrix[x][y].getNum()<=0) { 135 int xox =x1 - x; 136 ta = new TranslateAnimation(Animation.RELATIVE_TO_SELF,0, Animation.RELATIVE_TO_SELF,-xox, 137 Animation.RELATIVE_TO_SELF,0, Animation.RELATIVE_TO_SELF,0); 138 ta.setDuration(100); 139 Matrix[x1][y].startAnimation(ta); 141 Matrix[x][y].setNum(Matrix[x1][y].getNum()); 142 Matrix[x1][y].setNum(0); 143 x++;
    break; 146 }else if (Matrix[x][y].equals(Matrix[x1][y])) { 148 int xox =x1 - x; 149 ta = new TranslateAnimation(Animation.RELATIVE_TO_SELF,0, Animation.RELATIVE_TO_SELF,-xox, 150 Animation.RELATIVE_TO_SELF,0, Animation.RELATIVE_TO_SELF,0); 151 ta.setDuration(100); 152 Matrix[x1][y].startAnimation(ta); 154 Matrix[x][y].setNum(Matrix[x1][y].getNum()*2); 155 Matrix[x1][y].setNum(0);
    break; 159 }else { 160 break; 161 } 162 } 163 } 164 } 165 } 167 }
  • 相关阅读:
    HDU 4024 Dwarven Sniper’s hunting(数学公式 或者是二分)
    二分图最大匹配总结
    HDU 4022 Bombing (STL应用)
    HDU 1847 Good Luck in CET4 Everybody!(组合博弈)
    HDU 1556 Color the ball(树状数组)
    HDU 4023 Game(博弈)
    HDU 1406 完数(水题)
    HDU 4021 24 Puzzle
    Oracle 多表查询优化
    【编程之美】字符串移位包含的问题(续)
  • 原文地址:https://www.cnblogs.com/VRGamer-006/p/8437370.html
Copyright © 2020-2023  润新知