我对 java 很陌生,正在开发一个应该模拟 Mastermind 游戏的程序。描述如下: 用 Java 编写一个应用程序,允许用户与计算机玩 Bulls and Cows 游戏。游戏的工作原理如下:计算机 secret 选择一个 4 位数字。数字必须全部不同。然后用户猜测数字,计算机提供匹配数字的数量。如果匹配的数字位于正确的位置,则为“公牛”,如果位于不同的位置,则为“牛”
我可以选择两个类(class):Oracle 和 Game。 Oracle 类生成计算机选取的 4 位数字,并计算玩家猜测的公牛和母牛的数量。 Game 类从 Oracle 获取公牛和奶牛的数量并报告。运行程序时出现此错误:
错误似乎在这里: 在 Game.play(Game.java:34) 在 BullsAndCows.main(BullsAndCows.java:5)
你能帮我找出问题所在吗?多谢。
these are the images of Oracle and Game classes as well as the main method
最佳答案
Oracle的成员变量computer
未初始化。
这是因为在 Oracle 的构造函数中,您没有初始化成员变量 computer
,而是初始化另一个同名的变量,该变量是该方法的本地变量。
要修复此问题,请在 Oracle 第 21 行替换以下内容:
Oracle computer = new Oracle();
通过这个:
computer = new Oracle();
关于java - NullPointerException 运行时错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22448781/