将刽子手游戏的 body 个部分打印到控制台

Printing out body parts for hangman game to console

我目前正在 Java 制作刽子手游戏作为学习经验,因为我对 Java 语言还很陌生。我以前在 Python 中做过这个项目,当时我刚开始学习它,现在基本上是在 Java 中复制它。人们制作的大多数刽子手游戏似乎并没有在您每次猜测时实际显示 body 挂在绞刑架上;这是最实用的制作方法,因为它是一款主机游戏。然而,当我在 Python 制作游戏并计划在 Java 制作游戏时,我实际上将 body 打印到控制台。我很清楚这有点傻,因为你只有角色可以使用。

现在我要回答真正的问题了:最好的方法是什么?在 Python 中,我有——而且我并不夸张——超过 1000 行代码,其中包含大量 if-elif 语句和无穷无尽的 print 语句来打印出 body 可以表示。我知道,这绝对是一团糟。原因是因为我在游戏中有一个设置菜单,您可以在其中更改错误猜测的数量。因此,需要以更渐进的速度添加更多 body 部分。也就是说,不只是标准的头部、躯干、手臂 (2) 和腿 (2)——所以总共有 6 body 个部分——例如,我有头部、眼睛 (2),鼻子、嘴巴、躯干、手臂 (2)、腿 (2) - 总共 10 body 个部分 - 作为一个选项。

为了超越自己,我希望我的游戏的玩家能够 select 0 到 18 之间的一个数字,以获得最大的错误猜测数量。现在,尽管我很想在深层嵌套的 switchif 块中对 println() 进行数百次调用(讽刺),但我很好奇是否有更好的方法来做到这一点.也就是更优雅的方式计算需要打印哪些body部分并打印出来。

提前致谢。

我已经包含了我的刽子手游戏中的一部分代码,它使用开关来确定要打印的内容。刽子手只是由多个换行符和其他一些简单字符组成。这是屏幕截图:

switch (numberOfIncorrectGuesses)
        {
            case 1:
                hangman = "\n" + "\n|" + "\n|" + "\n|" + "\n|" + "\n|" + "\n|_______________________\n";
                break;
            case 2:
                hangman = "\n_________" + "\n|" + "\n|" + "\n|" + "\n|" + "\n|" + "\n|_______________________\n";
                break;
            case 3:
                hangman =  "\n_________" + "\n|                   |" + "\n|" + "\n|" + "\n|" + "\n|" + "\n|_______________________\n";
                break;
            case 4:
                hangman =  "\n_________" + "\n|                   |" + "\n|                  O" + "\n|" + "\n|" + "\n|" + "\n|_______________________\n";
                break;
            case 5:
                hangman =  "\n_________" + "\n|                   |" + "\n|                  O" + "\n|                   |" + "\n|" + "\n|" + "\n|_______________________\n";
                break;
            case 6:
                hangman =  "\n_________" + "\n|                   |" + "\n|                  O" + "\n|               ---|" + "\n|" + "\n|" + "\n|_______________________\n";
                break;
            case 7:
                hangman =  "\n_________" + "\n|                   |" + "\n|                  O" + "\n|               ---|---" + "\n|" + "\n|" + "\n|_______________________\n";
                break;
            case 8:
                hangman = "\n_________" + "\n|                   |" + "\n|                  O" + "\n|               ---|---" + "\n|                  /" + "\n|                /" + "\n|_______________________\n";
                break;
            case 9:
                JOptionPane.showMessageDialog(null, author + "Incorrect" + "\n_________" + "\n|                   |" + "\n|                  O" + "\n|               ---|---" + "\n|                  /\" + "\n|                /    \" + "\n|_______________________" + "\nSorry, you lost.\nThe stick man is Dead!\nThe secret word was: \"" + secretWord + "\"");