将刽子手游戏的 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 之间的一个数字,以获得最大的错误猜测数量。现在,尽管我很想在深层嵌套的 switch
或 if
块中对 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 + "\"");
我目前正在 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 之间的一个数字,以获得最大的错误猜测数量。现在,尽管我很想在深层嵌套的 switch
或 if
块中对 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 + "\"");