Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 猪的游戏:为什么不是';代码无法工作或编译,我做错了什么?_Java - Fatal编程技术网

Java 猪的游戏:为什么不是';代码无法工作或编译,我做错了什么?

Java 猪的游戏:为什么不是';代码无法工作或编译,我做错了什么?,java,Java,导言 再练习一次循环。这个程序将比前一个程序更复杂一些 对于这个程序,您将创建一个模拟的骰子游戏猪 游戏的目标是让玩家在对手之前获得100分,更多细节将在任务中讨论 在这种情况下,对手将是计算机 任务1 这个游戏需要两个六面骰子。您需要使用随机数生成器模拟这些骰子 两个骰子(随机数生成器)必须: 生成介于1-6之间的值 有140L和340L的种子,分别用于模具一和模具二(用于测试目的) 任务2 既然你已经有了骰子,我们可以检查一下你将要玩的规则 规则: 每回合,玩家将轮流掷两个骰子。 如果两个骰

导言


再练习一次循环。这个程序将比前一个程序更复杂一些

对于这个程序,您将创建一个模拟的骰子游戏猪

游戏的目标是让玩家在对手之前获得100分,更多细节将在任务中讨论

在这种情况下,对手将是计算机

任务1

这个游戏需要两个六面骰子。您需要使用随机数生成器模拟这些骰子

两个骰子(随机数生成器)必须:

生成介于1-6之间的值 有140L和340L的种子,分别用于模具一和模具二(用于测试目的) 任务2

既然你已经有了骰子,我们可以检查一下你将要玩的规则

规则:

每回合,玩家将轮流掷两个骰子。 如果两个骰子上都没有出现1,那么这些值将被加到玩家的总数中。然后他们可以选择再次掷骰(选择0)或将回合传给其他玩家(选择1)。 如果其中一个骰子上出现1,则该玩家在整个回合的总积分中不会增加任何积分,而该骰子将成为另一个玩家的轮到掷骰(在前一回合中获得的积分仍将出现在其总积分中)。 如果一名玩家同时掷两个1,则该玩家的回合结束,其总数重置为0。 您还需要一个随机数生成器来确定计算机(0)或播放机(1)是先运行。这也将用于模拟计算机选择再次滚动或通过翻转。该发电机的种子为140L

假设用户的输入有效

输出应以“欢迎玩猪的游戏”开头

以下所有用户提示应类似于:

轮到你了(当前点数:0) 你掷3和2,本回合得5分 按0再次滚动,或按1开始计算机旋转 所有计算机提示应如下所示:

计算机轮到(当前点:0) 电脑掷1分和4分,不得分,轮到你了 他们会宣布哪个玩家的回合和当前积分

然后是由哪个玩家滚动的数字,然后是

如果获得积分,则显示该回合获得的总积分(参见用户提示的第二行) 如果掷了一个,则宣布未获得任何积分,并宣布下一个玩家的回合(参见计算机提示第2行) 如果两者都是一,使用显示信息“/无论哪个玩家/掷两个一,点数重置和/对手/回合”


if(playerTotal>computerTotal)
前有一个大括号过多。拆下一个,结构应该很好。问题是,如果大括号太多,则在最后一个if语句之前关闭方法,因此该语句基本上位于方法之外,这在Java中是不允许的。如果您使用IDE,它应该向您显示。

如果(playerTotal>computerTotal)行前面有一个大括号过多。拆下一个,结构应该很好。问题是,如果大括号太多,则在最后一个if语句之前关闭方法,因此该语句基本上位于方法之外,这在Java中是不允许的。如果您使用IDE,它应该向您展示这一点。

*请注意,此答案只会删除以前在代码中指定的错误,而不一定是问题的最终解决方案

import java.util.Scanner;
import java.util.Random;

public class GameOfPigs {



    public static void main(String[] args) {
        Random die1 = new Random(140L);
        Random die2 = new Random(340L);
        Random compDecision = new Random(140L);

        Scanner scnr = new Scanner(System.in);

        int computerTotal = 0;
        int playerTotal = 0;
        boolean playersTurn = false;

        // Decides who goes first...
        if ((compDecision.nextInt(2)) == 0) {
            playersTurn = false;
        }

        System.out.println("Welcome of the Game of Pigs");

        // Main game loop
        while (computerTotal < 100 && playerTotal < 100) {
            System.out.println();
            int currentPlayerPoints = 0;

            // Player's loop
            while (playersTurn) {

                int roll1 = die1.nextInt(6) + 1;
                int roll2 = die2.nextInt(6) + 1;
                System.out.println("Your turn (current points: " + playerTotal + ")");
                // First Rule...Not the same as the example in class!!!
                // Adjust accordingly!!!! Multiple ways to do this!!!!
                if (roll1 == 1 && roll2 == 1) {
                    playerTotal = 0;
                    playersTurn = false;
                    break;
                }

                // Second Rule
                else if (roll1 == 1 || roll2 == 1) {
                    playerTotal = playerTotal;
                    playersTurn = false;
                    break;
                }

                // Third Rule
                else {
                    playerTotal += currentPlayerPoints;
                    int choice = scnr.nextInt();
                    if (choice == 1) {
                        playerTotal += currentPlayerPoints;
                        playersTurn = false;
                        break;
                    }
                }
            }
            if (playerTotal >= 100) {
               break;
            }            // 
            int currentCompPoints = 0;

            // Computer's loop
            while (!playersTurn) {
                System.out.println("Computer's turn (current points: " + computerTotal + ")");
                int roll1 = die1.nextInt(6)+1;
                int roll2 = die2.nextInt(6)+1;

                if (roll1 == 1 && roll2 == 1) {
                    computerTotal = 0;
                }
                else if (roll1 == 1 || roll2 == 1) {
                    computerTotal = computerTotal;
                }
                else {
                    int choice = compDecision.nextInt(2);
                    computerTotal += currentPlayerPoints;
                    }
                }


        if (playerTotal > computerTotal) {
            System.out.println("Congratulations! You won!");
        }
        else {
            System.out.println("Too Bad, the computer won.");
        }
    }
}
}
import java.util.Scanner;
导入java.util.Random;
公共类游戏机{
公共静态void main(字符串[]args){
随机die1=新随机(140L);
随机die2=新随机(340L);
Random compDecision=新的Random(140L);
扫描仪scnr=新扫描仪(System.in);
int computerTotal=0;
int playerTotal=0;
布尔playersTurn=false;
//决定谁先去。。。
如果((compDecision.nextInt(2))==0){
playersTurn=false;
}
System.out.println(“欢迎玩猪的游戏”);
//主游戏循环
while(计算机总数<100&播放器总数<100){
System.out.println();
int currentPlayerPoints=0;
//运动员环路
while(球员轮换){
int roll1=die1.nextInt(6)+1;
int roll2=die2.nextInt(6)+1;
System.out.println(“你的回合(当前点数:+playerTotal+”);
//第一条规则…和课堂上的例子不一样!!!
//相应地调整!!!!有多种方法可以做到这一点!!!!
if(roll1==1&&roll2==1){
playerTotal=0;
playersTurn=false;
打破
}
//第二条规则
else if(roll1==1 | | roll2==1){
playerTotal=playerTotal;
playersTurn=false;
打破
}
//第三条规则
否则{
playerTotal+=当前播放点数;
int choice=scnr.nextInt();
如果(选项==1){
playerTotal+=当前播放点数;
playersTurn=false;
打破
}
}
}
如果(播放机总数>=100){
打破
}            // 
int currentCompPoints=0;
//计算机环路
而(!playersTurn){
System.out.println(“计算机的回合(当前点数:+computerTotal+”);
int roll1=die1.nextInt(6)+1;
int roll2=die2.nextInt(6)+1;
if(roll1==1&&roll2==1){
计算机总数=0;
}
else if(roll1==1 | | roll2==1){
computerTotal=computerTotal;
GameOfPigs.java:18: error: cannot find symbol
            playersTurn = false;
            ^
  symbol:   variable playersTurn
  location: class GameOfPigs
GameOfPigs.java:29: error: cannot find symbol
            while (playersTurn) {
                   ^
  symbol:   variable playersTurn
  location: class GameOfPigs
GameOfPigs.java:29: error: illegal start of type
            while (playersTurn) {
                  ^
GameOfPigs.java:38: error: cannot find symbol
                    playersTurn = false;
                    ^
  symbol:   variable playersTurn
  location: class GameOfPigs
GameOfPigs.java:45: error: cannot find symbol
                    playersTurn = false;
                    ^
  symbol:   variable playersTurn
  location: class GameOfPigs
GameOfPigs.java:55: error: cannot find symbol
                        playersTurn = false;
                        ^
  symbol:   variable playersTurn
  location: class GameOfPigs
GameOfPigs.java:68: error: cannot find symbol
            while (!playersTurn) {
                    ^
  symbol:   variable playersTurn
  location: class GameOfPigs
7 errors
import java.util.Scanner;
import java.util.Random;

public class GameOfPigs {



    public static void main(String[] args) {
        Random die1 = new Random(140L);
        Random die2 = new Random(340L);
        Random compDecision = new Random(140L);

        Scanner scnr = new Scanner(System.in);

        int computerTotal = 0;
        int playerTotal = 0;
        boolean playersTurn = false;

        // Decides who goes first...
        if ((compDecision.nextInt(2)) == 0) {
            playersTurn = false;
        }

        System.out.println("Welcome of the Game of Pigs");

        // Main game loop
        while (computerTotal < 100 && playerTotal < 100) {
            System.out.println();
            int currentPlayerPoints = 0;

            // Player's loop
            while (playersTurn) {

                int roll1 = die1.nextInt(6) + 1;
                int roll2 = die2.nextInt(6) + 1;
                System.out.println("Your turn (current points: " + playerTotal + ")");
                // First Rule...Not the same as the example in class!!!
                // Adjust accordingly!!!! Multiple ways to do this!!!!
                if (roll1 == 1 && roll2 == 1) {
                    playerTotal = 0;
                    playersTurn = false;
                    break;
                }

                // Second Rule
                else if (roll1 == 1 || roll2 == 1) {
                    playerTotal = playerTotal;
                    playersTurn = false;
                    break;
                }

                // Third Rule
                else {
                    playerTotal += currentPlayerPoints;
                    int choice = scnr.nextInt();
                    if (choice == 1) {
                        playerTotal += currentPlayerPoints;
                        playersTurn = false;
                        break;
                    }
                }
            }
            if (playerTotal >= 100) {
               break;
            }            // 
            int currentCompPoints = 0;

            // Computer's loop
            while (!playersTurn) {
                System.out.println("Computer's turn (current points: " + computerTotal + ")");
                int roll1 = die1.nextInt(6)+1;
                int roll2 = die2.nextInt(6)+1;

                if (roll1 == 1 && roll2 == 1) {
                    computerTotal = 0;
                }
                else if (roll1 == 1 || roll2 == 1) {
                    computerTotal = computerTotal;
                }
                else {
                    int choice = compDecision.nextInt(2);
                    computerTotal += currentPlayerPoints;
                    }
                }


        if (playerTotal > computerTotal) {
            System.out.println("Congratulations! You won!");
        }
        else {
            System.out.println("Too Bad, the computer won.");
        }
    }
}
}