我是C#的新手(和Stack Overflow,请原谅我这里任何可怜的礼仪),而我正在控制台应用程序中编写游戏Mastermind。我试图在游戏结束时显示用户猜测的列表,我知道使用Console.WriteLine();只会给我三十多行数字,不会告诉用户任何东西。
如何更改我的代码,以便程序一次显示一组中的4个数字?例如:
1234
1234
1234
//Store numbers in a history list
ArrayList guesses = new ArrayList(); //This is the ArrayList
Console.WriteLine("Please enter your first guess.");
guess1 = Convert.ToInt32(Console.ReadLine());
guesses.Add(guess1);
foreach (int i in guesses)
{
Console.Write(i);
}
答案 0 :(得分:2)
我假设你的字节数组的每个元素都是一个数字(0-9)。如果该假设无效 - 请告诉我,我将修改代码:)
Action<IEnumerable<int>> dump = null;
dump = items =>
{
if(items.Any())
{
var head = String.Join("", items.Take(4));
Console.WriteLine(head);
var tail = items.Skip(4);
dump(tail);
}
};
dump(guesses);
答案 1 :(得分:0)
看起来你大部分都在那里,你有一个控制台写入,写出所有没有换行符。接下来添加一个整数count
并将其设置为零。在foreach循环中将其递增1。 count % 4 == 0
对于所有四位数的计数都适用。这意味着你可以在那里用一个写行来粘贴if块,为你提供四个组。
答案 2 :(得分:0)
这是我很快就把它放在一起的东西:
<强>更新强>
ArrayList guesses = new ArrayList(); //This is the ArrayList
// Four or more
guesses.Add(1); guesses.Add(2);
guesses.Add(3);guesses.Add(4);
guesses.Add(5); guesses.Add(6); guesses.Add(7);guesses.Add(8); guesses.Add(9);
//Uncomment-Me for less than four inputs
//guesses.Add(1); guesses.Add(2);
int position = 0;
if (guesses.Count < 4)
{
for (int y = 0; y < guesses.Count; y++)
{
Console.Out.Write(guesses[y]);
}
}
else
{
for (int i = 1; i <= guesses.Count; i++)
{
if (i%4 == 0)
{
Console.Out.WriteLine(string.Format("{0}{1}{2}{3}", guesses[i - 4], guesses[i - 3],
guesses[i - 2], guesses[i - 1]));
position = i;
}
else
{
if (i == guesses.Count)
{
for (int j = position; j < i; j++)
{
Console.Out.Write(guesses[j]);
}
}
}
}
}
答案 3 :(得分:0)
List<int> endResult = new List<int>();
StringBuilder tempSb = new StringBuilder();
for(int i=0; i < groups.Count; i++)
{
if(i % 4 == 0) {
endResult.Add(int.Parse(sb.ToString()));
tempSb.Clear(); // remove what was already added
}
tempSb.Append(group[i]);
}
// check to make sure there aren't any stragglers left in
// the StringBuilder. Would happen if the count of groups is not a multiple of 4
if(groups.Count % 4 != 0) {
groups.Add(int.Parse(sb.ToString()));
}
这将为您提供4位数的整数列表,如果您的小组列表中的整数数量不是4的倍数,请确保您不会丢失任何内容。请注意,我将继续根据您提供的内容,所以groups是整数的ArrayList。