【发布时间】:2017-05-03 00:26:11
【问题描述】:
所以我正在为我的作业制作一个骰子游戏,但我被困住了,因为我不知道如何制作它希望我包含的 2 个功能。这些功能是:
如果玩家在 5 个骰子中掷出 3,4 或 5 个同类,则游戏会为玩家分配点数,但如果玩家掷出 2 个同类,他可以将其他 3 个骰子重新掷 2 次(即骰子不是 2 的那种)所以如果他第一次滚动并且没有得到 3,4 或 5 的一种,他第二次重新滚动,但如果他得到例如 3,4 或 5一种在他第一次重投时他不会重投,第二次重投也是如此,但如果在第二次重投后他没有得到 3,4 或 5 的一种,他得到 0 分。
一旦玩家或 AI/2nd 玩家达到某个值,即他们的分数达到 50,游戏就会结束。
这是我目前的代码:
class Game
{
public static void Main(string[] args)
{
Console.BackgroundColor = ConsoleColor.Red;
Console.ForegroundColor = ConsoleColor.White;
Console.WriteLine("Press enter to Start Game");
Console.ReadKey();
Console.ResetColor();
Console.Clear();
bool gameProg = false;
while (gameProg == false)
{
Console.WriteLine("Press Enter to roll your 5 Die");
Console.ReadKey();
Console.WriteLine();
Die.DieGen();
Console.ReadLine();
Console.Clear();
}
/* if(Score = 50)
{
Console.WriteLine("\nCongratulation you have won press enter to exit");
Console.ReadKey();
}*/
}
}
class Die
{
public static void DieGen()
{
int i;
int[] Score = new int[50];
Random rnd = new Random();
int die1 = rnd.Next(1, 6 + 1);
int die2 = rnd.Next(1, 6 + 1);
int die3 = rnd.Next(1, 6 + 1);
int die4 = rnd.Next(1, 6 + 1);
int die5 = rnd.Next(1, 6 + 1);
Console.Write("You Rolled {0}", die1);
Console.Write(" {0}", die2);
Console.Write(" {0}", die3);
Console.Write(" {0}", die4);
Console.Write(" {0}", die5);
int sum = die1 + die2 + die3 + die4 + die5;
Console.WriteLine("Your Score {0}", sum);
Score[sum]=Convert.ToInt32(Console.ReadLine());
int tsum = Score.Sum();
Console.WriteLine("Your Total Score {0}",tsum);
Console.ReadLine();
}
}
class Player
{
public static void Score()
{
int ScoreSum;
}
}
目前,我正在测试是否可以获取一个数组来存储骰子总和的输出数字并将它们存储并将它们相加并为其设置一个值,以便一旦总和达到 50 游戏结束并终止循环,但它没有用(即不是我应该为分配做的事情,但想看看我是否可以使用从滚动 3,4 或 5 中获得的分数来处理数组并将其总结和显示它)。
任何帮助将不胜感激。
【问题讨论】:
-
@Alexis Côté 为什么不进入循环?
-
只是一个想法,但掷 1 个骰子 15 次会产生与掷 3 个骰子 5 次相同的结果。这样你就只需要使用一个函数来掷骰子,然后根据你需要多少结果来调用它
-
BTW - 存储一些值(字段)时需要一个类。在您的情况下,
class Die不会这样做。
标签: c#