int gameTurns = 12;
do
{
gameTurns -= 1;
Console.WriteLine(" You have " + (gameTurns) + " attempts left.");
Console.WriteLine();
Console.WriteLine();
string userEnteredPassword = "";
Console.WriteLine("Enter a password of 4 digits ");
userEnteredPassword = Console.ReadLine();
for (int i = 0; i < numbersToGuess.Length; i++)
{
numbersFromPlayer[i] = Convert.ToInt16(userEnteredPassword[i]);
Console.WriteLine(numbersFromPlayer[i]);
}
请注意,numbersToGuess的声明如下:
for (int i = 0; i <= 3; i++)
{
numbersToGuess[i] = Convert.ToInt16(sequence.Next(9));
Console.WriteLine(numbersToGuess[i]);
}
当我使用以下值运行代码时:1,2,3,4, 它打印:49,50,51,52。
答案 0 :(得分:8)
是的,因为49是字符'1'的UTF-16代码单元。
如果输入“ABCD”,则会显示64,65,66,67。
将指定的Unicode字符的值转换为等效的16位有符号整数。
如果你想转换每个字符使'0'变为0,'1'变为1等,你可以使用char.GetNumericValue(char)
:
window
或者如果您乐意相信播放器输入ASCII数字:
numbersFromPlayer[i] = (short) char.GetNumericValue(userEnteredPassword[i]);