我目前正在使用Java作为学习经历制作一个刽子手游戏,因为我对Java语言还不熟悉。我之前在Python中完成了这个项目,当我第一次学习它时,现在基本上用Java镜像它。人们制造的大多数刽子手游戏似乎并没有实际显示每次猜测时绞架都悬挂在绞刑架上;这是最实用的方法,因为它是一个控制台游戏。然而,当我用Python制作游戏,并计划用Java做的时候,我实际上将主体打印到控制台。我很清楚这有点傻,因为你只有角色可以使用。
现在我谈到了一个真正的问题:最好的方法是什么?在Python中,我有 - 而且我并不夸张 - 超过1000行代码,带有大量if-elif
语句,带有无穷无尽的print
语句,以打印出可以表示正文的各种方式。我知道,这绝对是一团糟。原因是因为我在游戏中有一个设置菜单,您可以更改错误猜测的数量。结果,需要以更加渐进的速度添加更多的身体部位。也就是说,而不仅仅是标准的头部,躯干,手臂(2)和腿部(2) - 总共6个身体部位 - 我有,例如,头部,眼睛(2),鼻子,嘴巴,躯干,手臂(2),腿(2) - 总共10个身体部位 - 作为一种选择。
为了超越自己,我希望我的游戏玩家能够选择0到18之间的数字来进行错误猜测的最大数量。现在,尽管我喜欢在深层嵌套的println()
或switch
块(讽刺)中对if
进行数百次调用,但我很好奇是否有更好的方法来执行此操作。也就是说,一种更优雅的方式来计算需要打印的身体部位并打印出来。
提前致谢。
答案 0 :(得分:1)
我已经从我的刽子手游戏中包含了一部分代码,该代码使用一个开关来确定要打印的内容。刽子手简单地由多个换行符和一些其他简单字符组成。这是一个截图:
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 + "\"");