如何正确输出游戏代码



所以我正在制作蛇和梯子游戏。如果Player1和Player2降落在同一网格上,则必须有一场决斗。在我的游戏中,两个玩家必须有岩石剪刀的游戏。我很难获得我的方法将值int获胜返回我的子程序begin()。如果玩家1或2赢得了岩石剪刀之战,则获胜值将确定开始方法。

我的代码:

public static String Begin // Recieves data from the main method
  {
// start Begin method
    int win=0;
    if(P1Position==P2Position||P2Position==P1Position){
            System.out.println("==========================================================================");                       
       System.out.println (player1+" is currently on square " + P1Position);
       System.out.println (player2+" is currently on square " + P2Position); 
       System.out.println("==========================================================================");     
        firstplay(choice1,choice2);
        determineOutcome(choice1,choice2,win);
        if(win==1){
            determineOutcome(choice1,choice2,win);
            P2Position=P1Position-P1Roll;
        }
        else{
            determineOutcome(choice1,choice2,win);
            P1Position=P2Position-P2Roll;
        }
        }
}
    public static void firstplay(int choice1,int choice2)throws IOException{//USER
            // Initializes the BufferReader for user input
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            System.out.println("DUEL!!!nThe Player who wins this round of rock paper scissors will keep their spot,and the loser ther that player's old spot");
            System.out.println("1=Rockn2=Papern3=Scissorsn===========");
            System.out.println(player1+" choose:");
            choice1=Integer.parseInt(br.readLine());
            System.out.println(player2+" choose:");
            choice2=Integer.parseInt(br.readLine());
            if(choice1==1){
                System.out.println(player1+" chose Rock");//If user picked ROck
            }
            else if(choice1==2){
                System.out.println(player1+" chose Paper");//If user picked Paper
            }
            else if(choice1==3){
                System.out.println(player1+" chose Scissors");//If user picked Scissors
            }
            if(choice2==1){
                System.out.println(player2+" chose Rock");
            }
            else if(choice2==2){
                System.out.println(player2+" chose Paper");
            }
            else if(choice2==3){
                System.out.println(player2+" chose Scissors");
            }
        }
        public static int determineOutcome(int choice1,int choice2,int win)throws IOException{
            // Initializes the BufferReader for user input
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 
            int die=0;

    //Rock vs Papaer
            if(choice2==1&&choice1==2){
                System.out.println(player1+" WON PAPER BEATS ROCK");
                System.out.println(player1+" keeps their spot");
                win=1;
            }
            else if(choice2==2&&choice1==1){
                System.out.println(player2+" WON PAPAER BEATS ROCK ");
                System.out.println(player1+" keeps their spot");
                win=0; 
            }
            //Scissors vs Paper
            else if(choice2==2&&choice1==3){
                System.out.println(player1+" WON SCISSORS BEAT PAPER ");
                 System.out.println(player1+" keeps their spot");
                win=1;
            }
            else if(choice2==3&&choice1==2){
                System.out.println(player2+" WON SCISSORS BEAT PAPER ");
                System.out.println(player2+" keeps their spot");
                win=0;
            }
            //Rock vs Scissors
            else if(choice2==3&&choice1==1){
                System.out.println(player1+" WON ROCK BEATS SCISSORS ");
                System.out.println(player1+" keeps their spot");
                win=1;
            }
            else if(choice2==1&&choice1==3){
                System.out.println(player2+" WON ROCK BEATS SCISSORS ");
                 System.out.println(player2+" keeps their spot");
                win=0;
            }
            //Ties
            else if(choice2==1&&choice1==1){
                System.out.println("YOU'VE TIED. Play once again");
            }
            else if(choice2==2&&choice1==2){
                System.out.println("YOU'VE TIED. Play once again");
            }
            else if(choice2==3&&choice1==3){
                System.out.println("YOU'VE TIED. Play once again");
            }
        return win;

        }
    }//end class

输出:

yo Rolled a 2
po Rolled a 2
------------------------------------------------------------------------
==========================================================================
yo is currently on square 2
po is currently on square 2
==========================================================================
DUEL!!!
The Player who wins this round of rock paper scissors will keep their spot,and the loser ther that player's old spot
1=Rock
2=Paper
3=Scissors
===========
yo choose:
1
po choose:
3
yo chose Rock
po chose Scissors
==========================================================================
yo is currently on square 0
po is currently on square 2
==========================================================================
yo press r to roll

期望:输出:

yo Rolled a 2
po Rolled a 2
------------------------------------------------------------------------
==========================================================================
yo is currently on square 2
po is currently on square 2
==========================================================================
DUEL!!!
The Player who wins this round of rock paper scissors will keep their spot,and the loser ther that player's old spot
1=Rock
2=Paper
3=Scissors
===========
yo choose:
1
po choose:
3
yo chose Rock
po chose Scissors
yo won rock beats scissors.
yo keeps their spot
==========================================================================
yo is currently on square 2
po is currently on square 0
==========================================================================
yo press r to roll

您必须存储方法determineOutcome返回的int值。

win = determineOutcome(choice1,choice2,win);
if(win==1){
    ...
}

请注意,由于您没有使用其实际值,因此无需将win作为参数传递给determineOutcome()。您可以尝试一下:

public static int determineOutcome(int choice1, int choice2) throws IOException
{
    // Initializes the BufferReader for user input
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    int die = 0;
    int win = 2; // 2 == TIE
    //Rock vs Papaer
    if (choice2 == 1 && choice1 == 2) {
        System.out.println(player1 + " WON PAPER BEATS ROCK");
        System.out.println(player1 + " keeps their spot");
        win = 1;
    } else if (choice2 == 2 && choice1 == 1) {
        System.out.println(player2 + " WON PAPAER BEATS ROCK ");
        System.out.println(player1 + " keeps their spot");
        win = 0;
    }
    //Scissors vs Paper
    else if (choice2 == 2 && choice1 == 3) {
        System.out.println(player1 + " WON SCISSORS BEAT PAPER ");
        System.out.println(player1 + " keeps their spot");
        win = 1;
    } else if (choice2 == 3 && choice1 == 2) {
        System.out.println(player2 + " WON SCISSORS BEAT PAPER ");
        System.out.println(player2 + " keeps their spot");
        win = 0;
    }
    //Rock vs Scissors
    else if (choice2 == 3 && choice1 == 1) {
        System.out.println(player1 + " WON ROCK BEATS SCISSORS ");
        System.out.println(player1 + " keeps their spot");
        win = 1;
    } else if (choice2 == 1 && choice1 == 3) {
        System.out.println(player2 + " WON ROCK BEATS SCISSORS ");
        System.out.println(player2 + " keeps their spot");
        win = 0;
    }
    //Ties
    else if (choice2 == 1 && choice1 == 1) {
        System.out.println("YOU'VE TIED. Play once again");
    } else if (choice2 == 2 && choice1 == 2) {
        System.out.println("YOU'VE TIED. Play once again");
    } else if (choice2 == 3 && choice1 == 3) {
        System.out.println("YOU'VE TIED. Play once again");
    }
    return win;
}

在这里,您要声明本地变量 win,将其设置为( 0, 1 or 2),并在相应的条件下返回。

注意:如果您的条件性确定播放器Won是否涵盖所有情况,则可以用else

替换" ties case"
//Rock vs Scissors
else if (choice2 == 3 && choice1 == 1) {
    System.out.println(player1 + " WON ROCK BEATS SCISSORS ");
    System.out.println(player1 + " keeps their spot");
    win = 1;
} else if (choice2 == 1 && choice1 == 3) {
    System.out.println(player2 + " WON ROCK BEATS SCISSORS ");
    System.out.println(player2 + " keeps their spot");
    win = 0;
}
//Ties
else {
    System.out.println("YOU'VE TIED. Play once again");
}

相关内容

最新更新