You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 22:15:05