本篇帖的是部分動作代碼,。 每個方法前都有注釋說明本方法的功能。 //隨機選取一個位置,,并填入數字2.如果此位置中已有數字,那么換一個位置,。 public void rule(){ x=ran.nextInt(4); y=ran.nextInt(4); //System.out.println(x+""+y); String s=shuzi[x][y].getText(); if (s.equals(" ")) { shuzi[x][y].setText("2"); count++; } else { rule(); } } //重新游戲,。為游戲按鈕中的每個按鈕取消上面的數字,并重新調用rule()開始新一輪的游戲,,并將幾個變量設置為其初始值,。 public void again(){ for(int i=0;i<4;i++) for(int j=0;j<4;j++) shuzi[i][j].setText(" "); count=0; iswin=false; result.setVisible(false); rule(); } //判斷游戲是否結束,是否勝利 public boolean win(String s){ //System.out.println(s); int n=Integer.parseInt(s); if(n==2048){ JOptionPane.showMessageDialog(this, "恭喜您,,勝利了,!"); iswin=true; } else if(n>2048) { JOptionPane.showMessageDialog(this, "數字大于2048,有誤!!!游戲重新開始,!"); iswin=true; } return iswin; } //向上合并的規(guī)則 public void uprule(){ if(iswin){ result.setVisible(true); } else{ int i=1,j=0; for(i=1;i<4;i++){ for(j=0;j<4;j++){ str = shuzi[i][j].getText(); st = shuzi[i-1][j].getText(); if (st.equals(" ")&&!str.equals(" ")) { shuzi[i-1][j].setText(str); shuzi[i][j].setText(" "); //System.out.println(str); if(win(str)) break; } else if(!st.equals(" ")&&!str.equals(" ")){ num = Integer.parseInt(st); number=Integer.parseInt(str); num*=number; //System.out.println(num); String s=String.valueOf(num); shuzi[i-1][j].setText(s); shuzi[i][j].setText(" "); if(win(s)) break; } } } if(!iswin) rule(); } } //向左合并的規(guī)則 public void leftrule(){ if(iswin){ result.setVisible(true); } else{ int i=0,j=1; for(i=0;i<4;i++){ for(j=1;j<4;j++){ str = shuzi[i][j].getText(); st = shuzi[i][j-1].getText(); if (st.equals(" ")&&!str.equals(" ")) { shuzi[i][j-1].setText(str); shuzi[i][j].setText(" "); if(win(str)) break; //System.out.println(str); } else if(!st.equals(" ")&&!str.equals(" ")){ num = Integer.parseInt(st); number=Integer.parseInt(str); num*=number; //System.out.println(num); String s=String.valueOf(num); shuzi[i][j-1].setText(s); shuzi[i][j].setText(" "); if(win(s)) break; } } } if(!iswin) rule(); } } //向下合并的規(guī)則 public void downrule(){ if(iswin){ result.setVisible(true); } else{ int i=0,j=0; for(i=0;i<3;i++){ for(j=0;j<4;j++){ str = shuzi[i][j].getText(); st = shuzi[i+1][j].getText(); if (st.equals(" ")&&!str.equals(" ")) { shuzi[i+1][j].setText(str); shuzi[i][j].setText(" "); if(win(str)) break; //System.out.println(str); } else if(!st.equals(" ")&&!str.equals(" ")){ num = Integer.parseInt(st); number=Integer.parseInt(str); number*=num; //System.out.println(number); String s=String.valueOf(number); shuzi[i+1][j].setText(s); shuzi[i][j].setText(" "); if(win(s)) break; } } } if(!iswin) rule(); } } //向右合并的規(guī)則 public void rightrule(){ if(iswin){ result.setVisible(true); } else{ int i=0,j=0; for(i=0;i<4;i++){ for(j=0;j<3;j++){ str = shuzi[i][j].getText(); st = shuzi[i][j+1].getText(); if (st.equals(" ")&&!str.equals(" ")) { shuzi[i][j+1].setText(str); shuzi[i][j].setText(" "); if(win(str)) break; //System.out.println(str); } else if(!st.equals(" ")&&!str.equals(" ")){ num = Integer.parseInt(st); number=Integer.parseInt(str); number*=num; //System.out.println(number); String s=String.valueOf(number); shuzi[i][j+1].setText(s); shuzi[i][j].setText(" "); if(win(s)) break; } } } if(!iswin) rule(); } } |
|
來自: pythonjava學習 > 《待分類》