当前位置: 首页 > 知识库问答 >
问题:

猪的游戏:为什么代码不能工作或编译,我做错了什么?

曹凯泽
2023-03-14

介绍

再练习一次循环。这个程序会比前一个更多一些。

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

任务1

这个游戏需要两个6面骰子。你将需要用随机数生成器模拟这些骰子。

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

假设用户输入有效。

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

计算机的回合(当前点数:0)计算机滚动1和4,没有获得点数和你的回合,他们宣布哪个玩家的回合和当前点数。

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

如果赢得了积分,则显示该回合的总积分(请参见用户提示的第2行),如果一个回合被滚动,则宣布没有赢得积分和下一个玩家的回合(请参见计算机提示的第2行),如果两者都是1,则使用显示消息“/无论哪个玩家/滚动了两个,积分重置和/对手的/回合”

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 playerTurn = true;

        // 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) {
                System.out.println("Your turn (current points: " + playerTotal + ")");
                int roll1 = die1.nextInt(6) + 1;
                int roll2 = die2.nextInt(6) + 1;

                // 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.");
        }
    }
}

GameOfPigs.java:86: error: illegal start of type
        if (playerTotal > computerTotal) {
        ^
GameOfPigs.java:86: error: <identifier> expected
        if (playerTotal > computerTotal) {
                       ^
GameOfPigs.java:86: error: ';' expected
        if (playerTotal > computerTotal) {
                         ^
GameOfPigs.java:86: error: illegal start of type
        if (playerTotal > computerTotal) {
                                       ^
GameOfPigs.java:86: error: <identifier> expected
        if (playerTotal > computerTotal) {
                                        ^
GameOfPigs.java:86: error: ';' expected
        if (playerTotal > computerTotal) {
                                          ^
GameOfPigs.java:87: error: illegal start of type
            System.out.println("Congratulations! You won!");
                  ^
GameOfPigs.java:87: error: ';' expected
            System.out.println("Congratulations! You won!");
                      ^
GameOfPigs.java:87: error: invalid method declaration; return type required
            System.out.println("Congratulations! You won!");
                       ^
GameOfPigs.java:87: error: illegal start of type
            System.out.println("Congratulations! You won!");
                               ^
GameOfPigs.java:89: error: class, interface, or enum expected
        else {
        ^
GameOfPigs.java:91: error: class, interface, or enum expected
        }
        ^
12 errors

谢了!但现在它说:

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

共有1个答案

彭畅
2023-03-14

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

 类似资料:
  • 问题内容: 如果html文件是本地文件(在我的C驱动器上),则可以使用,但是如果html文件在服务器上并且图像文件是本地文件,则无法使用。这是为什么? 任何可能的解决方法? 问题答案: 如果客户端可以请求本地文件系统文件,然后使用JavaScript找出其中的内容,则将是一个安全漏洞。 解决此问题的唯一方法是在浏览器中构建扩展。Firefox扩展和IE扩展可以访问本地资源。Chrome的限制更为严

  • 每次我整理这个的时候 这是输出 有人知道为什么吗?

  • 我正在做一个项目,我的意图是运行一个玉米作业,并发送邮件给我的朋友,祝他们生日,我能够从MySQL DB获取电子邮件,并将其与当前日期进行比较,但当涉及到发送电子邮件时,我得到NullPointerException。 我确信应用程序属性没有问题,我在其他项目中也使用了它们,它们的功能正常 这是我得到以下信息的错误

  • 我在第5行得到一个错误,上面说“未处理的异常IOException,InvalidFormatException”

  • 下面是一个链表的简单实现。我刚刚添加了相关代码。首先,我向列表中添加一些值,10,990和10000。当我搜索相同的值时,对于key=10,我得到true,但是对于key=990和key=10000得到false,尽管它应该是true。另外,如果我将第二个值从990更改为99,并搜索key=99,这一次我得到的是true。 我不确定是否使用泛型类型。我想我在那里做错了什么。因为如果我用int替换泛

  • 我有一个简单的测试设置,如 但当我尝试编译测试时,我会遇到53个错误,比如 实际上并没有传达任何关于问题所在的有用信息。我只能假设在我的构建中没有正确配置某些内容。sbt文件或其他地方。 这段代码确实曾经工作过,在我清理东西的过程中,事情发生了变化,现在它被破坏了,没有好的诊断。 有人能提出要找的东西吗?