-1

所以我试图在测试后让它循环,但它不起作用。

package one;
import java.util.Scanner;
public class ace {
    public static void main(String[] args){
        //initiate game loop
        String gameReset = "y"; 
        String a1, b1, c1, a2, b2, c2, a3, b3, c3, a4, b4, c4, a5, b5, c5, a6, b6, c6, a7, b7, c7, a8, b8, c8, a9, b9, c9;
        String player1;
        String player2;
        String spaceMark;
        int turn;
        Scanner input = new Scanner( System.in );

        //1. initiate game/test for reset
        if(gameReset == "y")
        {
            //set turn for player 1
            turn = 1;
            //stop reset loop
            gameReset = "";
            //query player names
            System.out.print("Welcome to Cnila's 'Tic Tac Toe' game!\n\nEnter Player 1 Name: \nC:\\Users>");
            player1 = input.nextLine();
            System.out.print("Enter Player 2 Name: \nC:\\Users>");
            player2 = input.nextLine();

            a1 = "     "; a2 = "     "; a3 = "     "; a4 = "     "; a5 = "     "; a6 = "     "; a7 = "     "; a8 = "     "; a9 = "     ";
            b1 = " [1] "; b2 = " [2] "; b3 = " [3] "; b4 = " [4] "; b5 = " [5] "; b6 = " [6] "; b7 = " [7] "; b8 = " [8] "; b9 = " [9] ";
            c1 = "     "; c2 = "     "; c3 = "     "; c4 = "     "; c5 = "     "; c6 = "     "; c7 = "     "; c8 = "     "; c9 = "     ";
            //1.1 check for winning combos player 1
            if (b3 == b5 && b5 == b7 && b5 == "  X  " || b1 == b5 && b5 == b9 && b5 == "  X  "  || b1 == b2 && b2 == b3 && b3 == "  X  " || b4 == b5 && b5 == b6 && b5 == "  X  " || b7 == b8 && b8 == b9 && b8 == "  X  " || b1 == b4 && b4 == b7 && b4 == "  X  " || b2 == b5 && b5 == b8 && b5 == "  X  " || b3 == b6 && b6 == b9 && b6 == "  X  ")
            {
                //player 1 has won
                System.out.println(a1+"|"+a2+"|"+a3);
                System.out.println(b1+"|"+b2+"|"+b3);
                System.out.println(c1+"|"+c2+"|"+c3);
                System.out.println("-----------------");
                System.out.println(a4+"|"+a5+"|"+a6);
                System.out.println(b4+"|"+b5+"|"+b6);
                System.out.println(c4+"|"+c5+"|"+c6);
                System.out.println("-----------------");
                System.out.println(a7+"|"+a8+"|"+a9);
                System.out.println(b7+"|"+b8+"|"+b9);
                System.out.println(c7+"|"+c8+"|"+c9);
                System.out.println();
                System.out.print(player1+" wins! Would you like to play again? (y/n): \nC:\\Users>");
                gameReset = input.nextLine();
            }
            //1.1 player 1 has not won. check player 2 for winning combos
            else
            {
                //1.1.1 player 2 has won
                if (b3 == b5 && b5 == b7 && b5 == "<   >" || b1 == b5 && b5 == b9 && b5 == "<   >"  || b1 == b2 && b2 == b3 && b3 == "<   >" || b4 == b5 && b5 == b6 && b5 == "<   >" || b7 == b8 && b8 == b9 && b8 == "<   >" || b1 == b4 && b4 == b7 && b4 == "<   >" || b2 == b5 && b5 == b8 && b5 == "<   >" || b3 == b6 && b6 == b9 && b6 == "<   >")
                {
                    System.out.println(a1+"|"+a2+"|"+a3);
                    System.out.println(b1+"|"+b2+"|"+b3);
                    System.out.println(c1+"|"+c2+"|"+c3);
                    System.out.println("-----------------");
                    System.out.println(a4+"|"+a5+"|"+a6);
                    System.out.println(b4+"|"+b5+"|"+b6);
                    System.out.println(c4+"|"+c5+"|"+c6);
                    System.out.println("-----------------");
                    System.out.println(a7+"|"+a8+"|"+a9);
                    System.out.println(b7+"|"+b8+"|"+b9);
                    System.out.println(c7+"|"+c8+"|"+c9);
                    System.out.println();
                    System.out.print(player2+" wins! Would you like to play again? (y/n): \nC:\\Users>");
                    gameReset = input.nextLine();
                }
                //1.1.1 neither have won. start next player turn
                else
                {
                    //1.1.1.1 test player turn
                    if (turn == 1)
                    {
                        System.out.println(a1+"|"+a2+"|"+a3);
                        System.out.println(b1+"|"+b2+"|"+b3);
                        System.out.println(c1+"|"+c2+"|"+c3);
                        System.out.println("-----------------");
                        System.out.println(a4+"|"+a5+"|"+a6);
                        System.out.println(b4+"|"+b5+"|"+b6);
                        System.out.println(c4+"|"+c5+"|"+c6);
                        System.out.println("-----------------");
                        System.out.println(a7+"|"+a8+"|"+a9);
                        System.out.println(b7+"|"+b8+"|"+b9);
                        System.out.println(c7+"|"+c8+"|"+c9);
                        System.out.println();
                        System.out.print("Which space would you like to mark, "+player1+"?: ");
                        spaceMark = input.nextLine();

                        //1.1.1.1.1 test for proper player 1 turn input
                        if (spaceMark == "1" || spaceMark == "2" || spaceMark == "3" || spaceMark == "4" || spaceMark == "5" || spaceMark == "6" || spaceMark == "7" || spaceMark == "8" || spaceMark == "9")
                        {
                            //1.1.1.1.1.1 player input proper. execute turn
                            switch (spaceMark)
                            {
                            case "1":
                                a1 = " \n / ";
                                b1 = "  X  ";
                                c1 = " / \n ";
                                break;
                            case "2":
                                a2 = " \n / ";
                                b2 = "  X  ";
                                c2 = " / \n ";
                                break;
                            case "3":
                                a3 = " \n / ";
                                b3 = "  X  ";
                                c3 = " / \n ";
                                break;
                            case "4":
                                a4 = " \n / ";
                                b4 = "  X  ";
                                c4 = " / \n ";
                                break;
                            case "5":
                                a5 = " \n / ";
                                b5 = "  X  ";
                                c5 = " / \n ";
                                break;
                            case "6":
                                a6 = " \n / ";
                                b6 = "  X  ";
                                c6 = " / \n ";
                                break;
                            case "7":
                                a7 = " \n / ";
                                b7 = "  X  ";
                                c7 = " / \n ";
                                break;
                            case "8":
                                a8 = " \n / ";
                                b8 = "  X  ";
                                c8 = " / \n ";
                                break;
                            case "9":
                                a9 = " \n / ";
                                b9 = "  X  ";
                                c9 = " / \n ";
                                break;

                            }

                        }
                        //1.1.1.1.1 player 1 input improper. repeat query
                        else
                        {
                            System.out.println("Try again!");
                        }

                    }
                    //1.1.1.1 not player 1 turn, initiate player 2 turn
                    else
                    {
                        System.out.println(a1+"|"+a2+"|"+a3);
                        System.out.println(b1+"|"+b2+"|"+b3);
                        System.out.println(c1+"|"+c2+"|"+c3);
                        System.out.println("-----------------");
                        System.out.println(a4+"|"+a5+"|"+a6);
                        System.out.println(b4+"|"+b5+"|"+b6);
                        System.out.println(c4+"|"+c5+"|"+c6);
                        System.out.println("-----------------");
                        System.out.println(a7+"|"+a8+"|"+a9);
                        System.out.println(b7+"|"+b8+"|"+b9);
                        System.out.println(c7+"|"+c8+"|"+c9);
                        System.out.println();
                        System.out.print("Which space would you like to mark, "+player2+"?: ");
                        spaceMark = input.nextLine();
                        //1.1.1.1.1 test player 2 for proper input
                        if (spaceMark == "1" || spaceMark == "2" || spaceMark == "3" || spaceMark == "4" || spaceMark == "5" || spaceMark == "6" || spaceMark == "7" || spaceMark == "8" || spaceMark == "9")
                        {
                            //1.1.1.1.1.1 player input proper. execute turn
                            switch (spaceMark)
                            {
                            case "1":
                                a1 = "  ^  ";
                                b1 = "<   >";
                                c1 = "  v  ";
                                break;
                            case "2":
                                a2 = "  ^  ";
                                b2 = "<   >";
                                c2 = "  v  ";
                                break;
                            case "3":
                                a3 = "  ^  ";
                                b3 = "<   >";
                                c3 = "  v  ";
                                break;
                            case "4":
                                a4 = "  ^  ";
                                b4 = "<   >";
                                c4 = "  v  ";
                                break;
                            case "5":
                                a5 = "  ^  ";
                                b5 = "<   >";
                                c5 = "  v  ";
                                break;
                            case "6":
                                a6 = "  ^  ";
                                b6 = "<   >";
                                c6 = "  v  ";
                                break;
                            case "7":
                                a7 = "  ^  ";
                                b7 = "<   >";
                                c7 = "  v  ";
                                break;
                            case "8":
                                a8 = "  ^  ";
                                b8 = "<   >";
                                c8 = "  v  ";
                                break;
                            case "9":
                                a9 = "  ^  ";
                                b9 = "<   >";
                                c9 = "  v  ";
                                break;

                            }


                        }
                        //1.1.1.1.1 player 2 input improper. repeat query
                        else
                        {
                            System.out.println("Try again!");
                        }

                    }
                }
            }
        }
    }
}
欢迎来到 Cnila 的“井字游戏”!

输入玩家 1 姓名:
C:\用户>一个
输入玩家 2 名称:
C:\用户>b
     | |     
 [1] | [2] | [3]
     | |     
-----------------
     | |     
 [4] | [5] | [6]
     | |     
-----------------
     | |     
 [7] | [8] | [9]
     | |     

你想标记哪个空格,a?:1

到达终点然后停止。我缺少一些部分,但基本上在转弯之后我希望它重置整个循环并if再次遍历每个语句。我使用了正确的循环吗?我做错什么了吗?

我相信您可以看到我在程序中尝试做的事情......自从我使用 java 和互联网没有帮助已经有几年了。当我尝试插入 abreak或 acontinue时,文本会变成红色。

我什至尝试过这个循环,我希望当我输入“是”时它会返回无限的“是”,但它什么也没做。压缩。

包装文本游戏;
导入 java.util.Scanner;
公共类游戏根{
        公共静态无效主要(字符串[]参数){

                扫描仪输入 = 新扫描仪(System.in);
                字符串测试 = input.nextLine();
                for (;test == "是";)
                {
                        System.out.println("是");

                }


        }

}

任何将不胜感激。我对 Java 有很多好的想法和抱负,但我正在扯掉我的头发,准备把它永远搁置一旁。

4

1 回答 1

0

运算符在==应用于Objects 时,会检查两个对象是否是相同的引用。相反,您应该使用该equals方法来检查它们是否具有相同的

for (;test.equals("yes");) {
    System.out.println("yes");
}
于 2015-01-30T22:03:50.283 回答