首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Tic Tac Toe游戏在android上不检查获胜者

Tic Tac Toe游戏在android上不检查获胜者
EN

Stack Overflow用户
提问于 2015-05-13 01:32:58
回答 1查看 597关注 0票数 0

我正试图在Android Studio中制作一款以Tic Tac Toe为灵感的游戏,当它试图检查是否有赢家时,我遇到了麻烦。我认为这与我创建的检查是否有赢家的方法有关,但我不确定。代码如下:

代码语言:javascript
复制
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文件:

代码语言:javascript
复制
<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>

EN

回答 1

Stack Overflow用户

发布于 2015-05-13 01:58:56

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

所以..。如果每一行要么都是1号玩家...或者所有的玩家2..。或者全是空的?

button1.setText("");

不管怎样,都要清除棋盘。

在第一次移动之后,将有一个完全空的行(因此,等于它自己),并且棋盘将立即被清除。另外,玩家2会赢,因为玩家1不会赢,而不是基于实际获胜的好处,这使得“猫游戏”变得不可能。

我猜这不是你期望的游戏操作方式吧?你可以使用更多的函数...更多的数组...也许还有一两个模式。;)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30197778

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档