public void Down(){ boolean flag=false; for(int y=0;y<4;y++){ for(int x=3;x>=0;x--){ for(int x1=x-1;x1>=0;x1--){ if(card[x1][y].getText()!=""){ int num = Integer.parseInt(card[x1][y].getText().toString()); if(card[x][y].getText()==""){ card[x][y].setText(num+""); card[x1][y].setText(""); x++; flag=true; break; }else if(equals(card[x][y],card[x1][y])){ num*=2; card[x][y].setText(num+""); card[x1][y].setText(""); int score = Integer.parseInt(tvScore.getText().toString()); score+=num; tvScore.setText(score+""); flag=true; break; }else{ break; } } } } } if(flag) { RandNum(); StopGame(); } }
时间: 2023-06-19 12:07:45 浏览: 130
这是一个2048小游戏的下移函数。这个函数的作用是将所有的数字卡片向下移动,当两个相邻的卡片数字相同时,它们会合并成一个新的卡片,数字为原来两个卡片数字的和。同时,每次移动和合并都会增加分数。
具体实现方式是,从第一列开始,从下往上遍历每个格子,找到它上面第一个不为空的格子(即其上面有数字的格子),如果这个格子和它自己数字相同,则将两个格子合并,并更新分数;否则,将这个格子移动到上面第一个空格子的位置。每次操作后,如果有格子发生了移动或合并,就随机生成一个新的数字卡片,并检查游戏是否结束。
阅读全文