2015-05-12 62 views
0

我想在Android Studio中製作一個Tic Tac Toe啓發遊戲,並且在嘗試檢查是否有贏家時遇到麻煩。我認爲這與我創建,檢查是否有贏家的方法做的,但我不知道。這裏是代碼:沒有在Android上檢查優勝者的遊戲遊戲

public class MainActivity extends ActionBarActivity { 
String currentplayer = "player1"; 
TextView tilWins; 
TextView ampWins; 
Button button1; 
Button button2; 
Button button3; 
Button button4; 
Button button5; 
Button button6; 
Button button7; 
Button button8; 
Button button9; 
Integer tWins; 
Integer aWins; 


public void checkWinner() { 

    String check1 = button1.toString(); 
    String check2 = button2.toString(); 
    String check3 = button3.toString(); 
    String check4 = button4.toString(); 
    String check5 = button5.toString(); 
    String check6 = button6.toString(); 
    String check7 = button7.toString(); 
    String check8 = button8.toString(); 
    String check9 = button9.toString(); 


    if (check1.equals(check2) && check1.equals(check3)) { 
     if (check1.equals("~")) { 
      tilWins.setText(tWins + 1); 
     } else { 
      ampWins.setText(aWins + 1); 
     } 
     button1.setText(""); 
     button2.setText(""); 
     button3.setText(""); 
     button4.setText(""); 
     button5.setText(""); 
     button6.setText(""); 
     button7.setText(""); 
     button8.setText(""); 
     button9.setText(""); 
    } 

    else if (check4.equals(check5) && check4.equals(check6)) { 
     if (check4.equals("~")) { 
      tilWins.setText(tWins + 1); 
     } else { 
      ampWins.setText(aWins + 1); 
     } 
     button1.setText(""); 
     button2.setText(""); 
     button3.setText(""); 
     button4.setText(""); 
     button5.setText(""); 
     button6.setText(""); 
     button7.setText(""); 
     button8.setText(""); 
     button9.setText(""); 
    } 

    else if (check7.equals(check8) && check7.equals(check9)) { 
     if (check7.equals("~")) { 
      tilWins.setText(tWins + 1); 
     } else { 
      ampWins.setText(aWins + 1); 
     } 
     button1.setText(""); 
     button2.setText(""); 
     button3.setText(""); 
     button4.setText(""); 
     button5.setText(""); 
     button6.setText(""); 
     button7.setText(""); 
     button8.setText(""); 
     button9.setText(""); 
    } 

    else if (check1.equals(check4) && check1.equals(check7)) { 
     if (check1.equals("~")) { 
      tilWins.setText(tWins + 1); 
     } else { 
      ampWins.setText(aWins + 1); 
     } 
     button1.setText(""); 
     button2.setText(""); 
     button3.setText(""); 
     button4.setText(""); 
     button5.setText(""); 
     button6.setText(""); 
     button7.setText(""); 
     button8.setText(""); 
     button9.setText(""); 
    } 

    else if (check2.equals(check5) && check2.equals(check8)) { 
     if (check2.equals("~")) { 
      tilWins.setText(tWins + 1); 
     } else { 
      ampWins.setText(aWins + 1); 
     } 
     button1.setText(""); 
     button2.setText(""); 
     button3.setText(""); 
     button4.setText(""); 
     button5.setText(""); 
     button6.setText(""); 
     button7.setText(""); 
     button8.setText(""); 
     button9.setText(""); 
    } 

    else if (check3.equals(check6) && check3.equals(check9)) { 
     if (check3.equals("~")) { 
      tilWins.setText(tWins + 1); 
     } else { 
      ampWins.setText(aWins + 1); 
     } 
     button1.setText(""); 
     button2.setText(""); 
     button3.setText(""); 
     button4.setText(""); 
     button5.setText(""); 
     button6.setText(""); 
     button7.setText(""); 
     button8.setText(""); 
     button9.setText(""); 
    } 

    else if (check1.equals(check5) && check1.equals(check9)) { 
     if (check1.equals("~")) { 
      tilWins.setText(tWins + 1); 
     } else { 
      ampWins.setText(aWins + 1); 
     } 
     button1.setText(""); 
     button2.setText(""); 
     button3.setText(""); 
     button4.setText(""); 
     button5.setText(""); 
     button6.setText(""); 
     button7.setText(""); 
     button8.setText(""); 
     button9.setText(""); 
    } 

    else if (check3.equals(check5) && check3.equals(check7)) { 
     if (check3.equals("~")) { 
      tilWins.setText(tWins + 1); 
     } else { 
      ampWins.setText(aWins + 1); 
     } 
     button1.setText(""); 
     button2.setText(""); 
     button3.setText(""); 
     button4.setText(""); 
     button5.setText(""); 
     button6.setText(""); 
     button7.setText(""); 
     button8.setText(""); 
     button9.setText(""); 
    } 
} 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    tilWins = (TextView)findViewById(R.id.tildeWins); 
    ampWins = (TextView)findViewById(R.id.ampersandWins); 

    String tiWins = tilWins.getText().toString(); 
    String amWins = ampWins.getText().toString(); 
    tWins = Integer.parseInt(String.valueOf(tiWins)); 
    aWins = Integer.parseInt(String.valueOf(amWins)); 

    button1 = (Button) findViewById(R.id.box1); 
    button1.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View view) { 
      if (button1.getText() == "") { 
       if (currentplayer.equals("player1")) { 
        button1.setText("~"); 
       } else { 
        button1.setText("&"); 
       } 
       changePlayer(currentplayer); 
       checkWinner(); 

      } 

     } 

    }); 

    button2 = (Button) findViewById(R.id.box2); 
    button2.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View view) { 
      if (button2.getText() == "") { 
       if (currentplayer.equals("player1")) { 
        button2.setText("~"); 
       } else { 
        button2.setText("&"); 
       } 
       changePlayer(currentplayer); 
       checkWinner(); 
      } 

     } 
     }); 

    button3 = (Button) findViewById(R.id.box3); 
    button3.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View view) { 
      if (button3.getText() == "") { 
       if (currentplayer.equals("player1")) { 
        button3.setText("~"); 
       } else { 
        button3.setText("&"); 
       } 
       changePlayer(currentplayer); 
       checkWinner(); 
      } 

     } 
    }); 

    button4 = (Button) findViewById(R.id.box4); 
    button4.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View view) { 
      if (button4.getText() == "") { 
       if (currentplayer.equals("player1")) { 
        button4.setText("~"); 
       } else { 
        button4.setText("&"); 
       } 
       changePlayer(currentplayer); 
       checkWinner(); 
      } 

     } 
    }); 

    button5 = (Button) findViewById(R.id.box5); 
    button5.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View view) { 
      if (button5.getText() == "") { 
       if (currentplayer.equals("player1")) { 
        button5.setText("~"); 
       } else { 
        button5.setText("&"); 
       } 
       changePlayer(currentplayer); 
       checkWinner(); 
      } 

     } 
    }); 

    button6 = (Button) findViewById(R.id.box6); 
    button6.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View view) { 
      if (button6.getText() == "") { 
       if (currentplayer.equals("player1")) { 
        button6.setText("~"); 
       } else { 
        button6.setText("&"); 
       } 
       changePlayer(currentplayer); 
       checkWinner(); 
      } 

     } 
    }); 

    button7 = (Button) findViewById(R.id.box7); 
    button7.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View view) { 
      if (button7.getText() == "") { 
       if (currentplayer.equals("player1")) { 
        button7.setText("~"); 
       } else { 
        button7.setText("&"); 
       } 
       changePlayer(currentplayer); 
       checkWinner(); 
      } 

     } 
    }); 

    button8 = (Button) findViewById(R.id.box8); 
    button8.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View view) { 
      if (button8.getText() == "") { 
       if (currentplayer.equals("player1")) { 
        button8.setText("~"); 
       } else { 
        button8.setText("&"); 
       } 
       changePlayer(currentplayer); 
       checkWinner(); 
      } 

     } 
    }); 

    button9 = (Button) findViewById(R.id.box9); 
    button9.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View view) { 
      if (button9.getText() == "") { 
       if (currentplayer.equals("player1")) { 
        button9.setText("~"); 
       } else { 
        button9.setText("&"); 
       } 
       changePlayer(currentplayer); 
       checkWinner(); 
      } 

     } 
    }); 
} 

public void changePlayer (String player) { 

    if (player.equals("player1")) { 
     currentplayer = "player2"; 
    } else { 
     currentplayer = "player1"; 
    } 
} 

下面是如果需要將XML文件:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" 
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity" 
android:id="@+id/sJJ"> 

<GridLayout 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:id="@+id/gridLayout" 
    android:useDefaultMargins="false" 
    android:transitionGroup="false" 
    android:touchscreenBlocksFocus="false" 
    android:rowOrderPreserved="false" 
    android:layout_gravity="center" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true"> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceLarge" 
     android:text="Tildes and Ampersands" 
     android:id="@+id/textView" 
     android:layout_row="0" 
     android:layout_column="0" 
     android:layout_columnSpan="3" 
     android:layout_marginLeft="55dp" /> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/box1" 
     android:layout_row="1" 
     android:layout_column="0" 
     android:maxHeight="100dp" 
     android:maxLength="100" 
     android:maxWidth="100dp" 
     android:minHeight="100dp" 
     android:layout_marginLeft="40dp" 
     android:textSize="40dp" /> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/box2" 
     android:layout_row="1" 
     android:layout_column="1" 
     android:maxHeight="100dp" 
     android:maxLength="100" 
     android:maxWidth="100dp" 
     android:minHeight="100dp" 
     android:textSize="40dp" /> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/box3" 
     android:layout_row="1" 
     android:layout_column="2" 
     android:maxHeight="100dp" 
     android:maxLength="100" 
     android:maxWidth="100dp" 
     android:minHeight="100dp" 
     android:textSize="40dp" 
     android:layout_marginLeft="3dp" /> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/box4" 
     android:layout_row="2" 
     android:layout_column="0" 
     android:maxHeight="100dp" 
     android:maxLength="100" 
     android:maxWidth="100dp" 
     android:minHeight="100dp" 
     android:layout_marginLeft="40dp" 
     android:textSize="40dp" /> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/box5" 
     android:layout_row="2" 
     android:layout_column="1" 
     android:maxHeight="100dp" 
     android:maxLength="100" 
     android:maxWidth="100dp" 
     android:minHeight="100dp" 
     android:textSize="40dp" /> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/box6" 
     android:layout_row="2" 
     android:layout_column="2" 
     android:maxHeight="100dp" 
     android:maxLength="100" 
     android:maxWidth="100dp" 
     android:minHeight="100dp" 
     android:textSize="40dp" 
     android:layout_marginLeft="3dp" /> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/box7" 
     android:layout_row="3" 
     android:layout_column="0" 
     android:maxHeight="100dp" 
     android:maxLength="100" 
     android:maxWidth="100dp" 
     android:minHeight="100dp" 
     android:layout_marginLeft="40dp" 
     android:textSize="40dp" /> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/box8" 
     android:layout_row="3" 
     android:layout_column="1" 
     android:maxHeight="100dp" 
     android:maxLength="100" 
     android:maxWidth="100dp" 
     android:minHeight="100dp" 
     android:textSize="40dp" /> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/box9" 
     android:layout_row="3" 
     android:layout_column="2" 
     android:maxHeight="100dp" 
     android:maxLength="100" 
     android:maxWidth="100dp" 
     android:minHeight="100dp" 
     android:textSize="40dp" 
     android:layout_marginLeft="3dp" /> 

    <TextView 
     android:layout_width="72dp" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceLarge" 
     android:text=" Wins" 
     android:id="@+id/textView2" 
     android:layout_row="4" 
     android:layout_column="0" 
     android:layout_columnSpan="3" 
     android:layout_marginLeft="125dp" /> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceLarge" 
     android:text="   Tildes:" 
     android:id="@+id/textView3" 
     android:layout_row="5" 
     android:layout_column="0" /> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceLarge" 
     android:id="@+id/tildeWins" 
     android:layout_row="5" 
     android:layout_column="1" 
     android:text="0" /> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceLarge" 
     android:text="Ampersands:" 
     android:id="@+id/textView4" 
     android:layout_row="6" 
     android:layout_column="0" /> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceLarge" 
     android:id="@+id/ampersandWins" 
     android:layout_row="6" 
     android:layout_column="1" 
     android:text="0" /> 
</GridLayout> 

+1

你的問題是什麼?什麼是不工作,你得到什麼,你期望什麼? –

+0

我試圖檢查在任何給定的行,列或對角線中是否有三個相同的符號。我希望董事會能夠清理並增加一項,以贏得任何一方的勝利,而且沒有任何事情發生。當出現符號時,沒有任何事情發生。 – Zack

+1

您應該爲您的播放網格使用2維數組。檢查是否有勝利者可以輕鬆得多(並且可讀性更強)。我猜你在checkWinner()函數中犯了一些錯誤,但很難說清楚。嘗試使用調試器來逐步查看該功能中發生的情況。 – mhlz

回答

0

if (check1.equals(check2) && check1.equals(check3)) {

所以......如果各行要麼所有玩家1 ...或所有玩家2 ...或全部是空的?

button1.setText("");

然後清除板不管。

第一次移動後,會有一行完全是空的(因此也等於它自己),並且該板將立即被清除。玩家2也會贏,因爲玩家1不會,而不是實際獲勝的優點,從而導致「貓遊戲」不可能。

我猜這不是你預期的遊戲操作方式?你可以使用更多的功能...和更多的數組......也許是一兩個模式。 ;)

0

首先,它真的笨拙的代碼...但是,你爲什麼這樣做

String check1 = button1.toString(); 

checkWinner()

您必須對button1.getText().toString()感興趣嗎?