主谋博弈算法

2024-01-06

我必须为一项任务制作一个策划游戏。我陷入了接受用户输入并需要将它们与随机数进行比较的部分。然后我需要将(用户输入)数字放在网格上的正确位置(自下而上)。

另外,我必须显示该号码是否为:

  • 正确且处于正确位置,显示 4,
  • 通过显示 2 来显示正确但错误的位置,
  • 显示 0 是错误的

此外,我需要不断询问用户输入,直到他们达到最大尝试次数 10 次或猜出正确答案。


这是我的代码

...
        public static void main(String[] args) {

             PlayMasterMind.computerNum();
             PlayMasterMind.printBoard();
             PlayMasterMind.userInput();
             PlayMasterMind.compare();
            }

        public void printBoard(){
            System.out.println(" _______________________");
            System.out.println("|  " + gotIt + "  |  " + gotIt + "  |  " + gotIt + "  |  " + gotIt + "  |  ");
            System.out.println(" _______________________    ____");
            for (j = 0; j < 10; j++) {
                for (int k = 0; k < 4; k++) {
                    guess[j][k] = "    ";
                    answer[k] = " ";
                }
                System.out.println("| " + guess[j][0] + "| " + guess[j][1] + "| " + guess[j][2] + "| "
                        + guess[j][3] + "|==|" + answer[0] + answer[1] + answer[2] + answer[3]
                        + "|");
                System.out.println(" _______________________    ____");
            }     
}



    }

我在上面的部分遇到问题,我需要将用户输入从下往上放入网格中。

此时我得到的是:

输入4个数字:2342


| 2342 | 2342 2342 | 2342 2342 | 2342 2342 | 2342 ___________________________ ____ | | | | |==| | ___________________________ ____ | | | | |==| | ___________________________ ____
...

但我实际上需要按以下顺序排列的数字:

  • | 2 | 3 | 4 | 2|

如果这些数字是正确的。我想按以下方式输出它们:

  • | 2 | 3 | 4 | 2|==|4444|

如果 1 个数字错误,则有 2 个数字正确且位置正确,以及 1 个数字正确但位置错误(正确和错误的数字顺序并不重要。说如果正确的数字is 2342, but用户输入1242)然后我会这样展示:

  • | 2 | 3 | 4 | 2|==|4420|

但不要在下面的框中得到任何东西。它不断覆盖“X”或“X”位置的信息。

任何帮助将非常感激。

先感谢您!!!


为了找到代码中的问题,我将其粘贴到编辑器中并尝试编译它。我还重新格式化它以使其更清晰。这就是我得到的

class Test73 {
  public static final int MAX_GUESSES = 10;
  public static final int NB_COLUMNS= 4;
  private String guess[][];
  private String answer[];
  private String gotIt;

  public static void main(String[] args) {
    Test73 t = new Test73();
  }

  public Test73() {
    gotIt = " ";   // should probably be an array? 
    guess = new String[MAX_GUESSES][NB_COLUMNS];
    answer = new String[NB_COLUMNS];
    printBoard();
  }

  public void printBoard() {
    System.out.println(" _______________________");
    System.out.println(   // assumes gotIt to be of length 1
      "|  " + gotIt +
      "  |  " + gotIt +
      "  |  " + gotIt +
      "  |  " + gotIt +
      "  |  ");
    System.out.println(" _______________________    ____");
    for (int j = 0; j < MAX_GUESSES; j++) {
      for (int k = 0; k < NB_COLUMNS; k++) {
        guess[j][k] = "    ";
        answer[k] = " ";
      }
      System.out.println(
        "| " + guess[j][0] +
        "| " + guess[j][1] +
        "| " + guess[j][2] +
        "| " + guess[j][3] +
        "|==|" + answer[0] +
        answer[1] +
        answer[2] +
        answer[3] + "|");
      System.out.println(" _______________________    ____");
    }
  }
}

我编译并运行了它。这就是我得到的

 _______________________
|     |     |     |     |  
 _______________________    ____
|     |     |     |     |==|    |
 _______________________    ____
|     |     |     |     |==|    |
 _______________________    ____
|     |     |     |     |==|    |
 _______________________    ____
|     |     |     |     |==|    |
 _______________________    ____
|     |     |     |     |==|    |
 _______________________    ____
|     |     |     |     |==|    |
 _______________________    ____
|     |     |     |     |==|    |
 _______________________    ____
|     |     |     |     |==|    |
 _______________________    ____
|     |     |     |     |==|    |
 _______________________    ____
|     |     |     |     |==|    |
 _______________________    ____

以下是一些观察结果

  1. 变量gotIt可能应该是一个数组,否则你只能打印相同的值四次。

  2. 在打印表格之前,将值guess and answer被设置为空字符串。虽然游戏一开始还可以,但是后面就不行了。它应该出现在程序的其他位置(在初始化部分)。

  3. 重要:班级Test只是为了测试这部分程序而创建的,它不会出现在您的最终程序中。对程序的其他部分执行相同的操作(您可以重复使用 Test 类)。

祝你好运!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

主谋博弈算法 的相关文章

  • Play框架运行应用程序问题

    每当我尝试运行使用以下命令创建的新 Web 应用程序时 我都会收到以下错误Play http www playframework org Error occurred during initialization of VM Could no
  • 在 java 类和 android 活动之间传输时音频不清晰

    我有一个android活动 它连接到一个java类并以套接字的形式向它发送数据包 该类接收声音数据包并将它们扔到 PC 扬声器 该代码运行良好 但在 PC 扬声器中播放声音时会出现持续的抖动 中断 安卓活动 public class Sen
  • 制作一个交互式Windows服务

    我希望我的 Java 应用程序成为交互式 Windows 服务 用户登录时具有 GUI 的 Windows 服务 我搜索了这个 我发现这样做的方法是有两个程序 第一个是服务 第二个是 GUI 程序并使它们进行通信 服务将从 GUI 程序获取
  • Android:捕获的图像未显示在图库中(媒体扫描仪意图不起作用)

    我遇到以下问题 我正在开发一个应用程序 用户可以在其中拍照 附加到帖子中 并将图片保存到外部存储中 我希望这张照片也显示在图片库中 并且我正在使用媒体扫描仪意图 但它似乎不起作用 我在编写代码时遵循官方的Android开发人员指南 所以我不
  • 使用 Tkinter 显示 numpy 数组中的图像

    我对 Python 缺乏经验 第一次使用 Tkinter 制作一个 UI 显示我的数字分类程序与 mnist 数据集的结果 当图像来自 numpy 数组而不是我的 PC 上的文件路径时 我有一个关于在 Tkinter 中显示图像的问题 我为
  • 无法展开 RemoteViews - 错误通知

    最近 我收到越来越多的用户收到 RemoteServiceException 错误的报告 我每次给出的堆栈跟踪如下 android app RemoteServiceException Bad notification posted fro
  • JavaMail 只获取新邮件

    我想知道是否有一种方法可以在javamail中只获取新消息 例如 在初始加载时 获取收件箱中的所有消息并存储它们 然后 每当应用程序再次加载时 仅获取新消息 而不是再次重新加载它们 javamail 可以做到这一点吗 它是如何工作的 一些背
  • 我可以使用 HSQLDB 进行 junit 测试克隆 mySQL 数据库吗

    我正在开发一个 spring webflow 项目 我想我可以使用 HSQLDB 而不是 mysql 进行 junit 测试吗 如何将我的 mysql 数据库克隆到 HSQLDB 如果您使用 spring 3 1 或更高版本 您可以使用 s
  • 禁止的软件包名称:java

    我尝试从数据库名称为 jaane 用户名 Hello 和密码 hello 获取数据 错误 java lang SecurityException Prohibited package name java at java lang Class
  • 如何为俚语和表情符号构建正则表达式 (regex)

    我需要构建一个正则表达式来匹配俚语 即 lol lmao imo 等 和表情符号 即 P 等 我按照以下示例进行操作http www coderanch com t 497238 java java Regular Expression D
  • Java TestNG 与跨多个测试的数据驱动测试

    我正在电子商务平台中测试一系列商店 每个商店都有一系列属性 我正在考虑对其进行自动化测试 是否有可能有一个数据提供者在整个测试套件中提供数据 而不仅仅是 TestNG 中的测试 我尝试不使用 testNG xml 文件作为机制 因为这些属性
  • 如何在控制器、服务和存储库模式中使用 DTO

    我正在遵循控制器 服务和存储库模式 我只是想知道 DTO 在哪里出现 控制器应该只接收 DTO 吗 我的理解是您不希望外界了解底层域模型 从领域模型到 DTO 的转换应该发生在控制器层还是服务层 在今天使用 Spring MVC 和交互式
  • Eclipse Java 远程调试器通过 VPN 速度极慢

    我有时被迫离开办公室工作 这意味着我需要通过 VPN 进入我的实验室 我注意到在这种情况下使用 Eclipse 进行远程调试速度非常慢 速度慢到调试器需要 5 7 分钟才能连接到远程 jvm 连接后 每次单步执行断点 行可能需要 20 30
  • 仅将 char[] 的一部分复制到 String 中

    我有一个数组 char ch 我的问题如下 如何将 ch 2 到 ch 7 的值合并到字符串中 我想在不循环 char 数组的情况下实现这一点 有什么建议么 感谢您花时间回答我的问题 Use new String value offset
  • 如何从终端运行处理应用程序

    我目前正在使用加工 http processing org对于一个小项目 但是我不喜欢它附带的文本编辑器 我使用 vim 编写所有代码 我找到了 pde 文件的位置 并且我一直在从 vim 中编辑它们 然后重新打开它们并运行它们 重新加载脚
  • 如何在桌面浏览器上使用 webdriver 移动网络

    我正在使用 selenium webdriver 进行 AUT 被测应用程序 的功能测试自动化 AUT 是响应式网络 我几乎完成了桌面浏览器的不同测试用例 现在 相同的测试用例也适用于移动浏览器 因为可以从移动浏览器访问 AUT 由于它是响
  • 声明的包“”与预期的包不匹配

    我可以编译并运行我的代码 但 VSCode 中始终显示错误 早些时候有一个弹出窗口 我不记得是什么了 我点击了 全局应用 从那以后一直是这样 Output is there but so is the error The declared
  • 在 Javascript 中连接空数组

    我正在浏览一些代码 我想知道这有什么用处 grid push concat row 根据我的理解 它等同于 grid push row 为什么要大惊小怪 连接 你想使用 concat当您需要展平数组并且没有由其他数组组成的数组时 例如 va
  • 如何修复 JNLP 应用程序中的“缺少代码库、权限和应用程序名称清单属性”?

    随着最近的 Java 更新 许多人都遇到了缺少 Java Web Start 应用程序的问题Codebase Permissions and Application name体现属性 尽管有资源可以帮助您完成此任务 但我找不到任何资源综合的
  • 将 List 转换为 JSON

    Hi guys 有人可以帮助我 如何将我的 HQL 查询结果转换为带有对象列表的 JSON 并通过休息服务获取它 这是我的服务方法 它返回查询结果列表 Override public List

随机推荐