Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 简单的控制台游戏,列表计算每个玩家的总和_C#_List_Loops_For Loop_Foreach - Fatal编程技术网

C# 简单的控制台游戏,列表计算每个玩家的总和

C# 简单的控制台游戏,列表计算每个玩家的总和,c#,list,loops,for-loop,foreach,C#,List,Loops,For Loop,Foreach,我正在创建一个简单的控制台应用程序。其基本思想是让用户输入一个玩家数量,然后循环将根据用户输入的数量开始询问x时间的玩家名称。然后游戏部分将开始,一个循环将在玩家列表中循环,每个玩家将投掷一个球3次,每次用户将输入一个分数;这些分数将在该用户完成投掷时添加并显示。循环到下一个玩家,并重复另一个3投。当总分低于100分时,循环将从第一名玩家开始,让第一名玩家再次投掷3次,在投掷结束时,他的分数将是第一轮加第二轮的分数 现在我不知道如何创建这样一个列表和循环来区分球员之间的得分。我有两个列表,一个用

我正在创建一个简单的控制台应用程序。其基本思想是让用户输入一个玩家数量,然后循环将根据用户输入的数量开始询问x时间的玩家名称。然后游戏部分将开始,一个循环将在玩家列表中循环,每个玩家将投掷一个球3次,每次用户将输入一个分数;这些分数将在该用户完成投掷时添加并显示。循环到下一个玩家,并重复另一个3投。当总分低于100分时,循环将从第一名玩家开始,让第一名玩家再次投掷3次,在投掷结束时,他的分数将是第一轮加第二轮的分数


现在我不知道如何创建这样一个列表和循环来区分球员之间的得分。我有两个列表,一个用于存储球员,一个用于存储分数,不同球员的分数存储在同一个列表中,因此我无法正确计算每个球员的总和。任何想法和提示都会非常有用

一种不添加类的方法是使用dictorial>。 Key=球员姓名,Value=该球员的得分列表

首先,将每个玩家添加到一个空列表中

然后在您的循环中,您可以有如下内容:

int total = 0;
if(playerDictionary.ContainsKey(playerName))
    foreach(int score in playerDictionary[playerName])
        total += score;

Console.WriteLine(total)

为什么不创建一个带有score作为私有变量的Player类并创建一个返回它的方法呢?您需要重新开始您的设计。你的分数列表只是一个整数列表-它不会记录每个分数所属的玩家。你可以使用字典键=玩家,值=分数列表。我建议你也可以从游戏开发中找到有用的帮助:@WhyCry我有返回分数的功能,但我正试图在每个用户达到100分之前,将他们每3次投掷的分数相加。有什么想法吗?如果OP想要存储其他数据,如移动、错误答案等,那么重新设计代码?更好的方法是保存Player类的list/HashSet/KeyedCollection。公共类播放器{public string Name;public int Score;}@L.B嘿,实际上我还没有考虑这些,我是c新手,只尝试基本的东西,希望尽可能简单。