C#剪刀石头布游戏如何调整非平局场景胜负判定逻辑
问题描述
我是C#新手,这是我开发的首批小游戏之一,代码写得不够完善请见谅。我当前遇到的问题是:当我输入Paper、电脑输出Scissors时,程序需要正确输出“win”或“lose”,请问该部分逻辑要如何调整?注意:请不要给出该游戏的完整解决方案,仅提供当前场景的解决思路即可,我想自行完成其余开发内容。
现有代码如下:
{ string[] list = { "Scissors", "Paper", "Rock" }; Random rnd = new Random(); int index = rnd.Next(list.Length); Console.WriteLine("Do you wanna play Scissors, Paper, Rock? Type 'y' for Yes and 'n' for No"); string output = Convert.ToString(Console.ReadLine()); if (output == "y") { Console.WriteLine("Scissors, Paper or Rock?"); string abfrage = Convert.ToString(Console.ReadLine()); if (abfrage == "Scissor" || abfrage == "Paper" || abfrage == "Rock") { Console.WriteLine(list[index]); string convert = Convert.ToString(list[index]); if (convert == abfrage) { Console.WriteLine("Draw"); } if (convert != abfrage) // Here is the problem { Console.WriteLine("Win"); } } } }
当前场景解决思路
- 你现在的问题在于只要双方出的不一样就统一输出
Win,没有区分具体胜负组合,针对你提到的「用户输入Paper、电脑输出Scissors」场景,你可以先在convert != abfrage的代码块内补充专属分支判断 - 先新增条件:当
abfrage == "Paper"且convert == "Scissors"时,直接输出Lose即可,这个组合对应剪刀赢布的规则,属于玩家输的情况 - 额外提示:你判断用户输入合法的条件里写的是
"Scissor",但数组里存储的是带s的"Scissors",二者不一致,后续你调整其他场景时可以同步修正这个拼写问题
内容的提问来源于stack exchange,提问作者s0lid
相关产品推荐
相关产品推荐

