Я потратил почти час на эту ошибку, и я не могу найти, где я ошибся (свежий набор глаз, вероятно, поможет LOL). это {array = Random.genRandom();} Я тоже получаю Имя rand не существует в контексте для моего MainClass. где он говорит: «а также получаю ошибку для моего контрструктора. Я в основном просто делаю игру с генератором случайных чисел, где номер отображается в начале, и человек может получить удар, мяч и т. д. за неправильные ответы. У меня есть два класса. Основной класс и подкласс.System.Random не содержит определения .... C#?
MainClass:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace NumBaseBall
{
class MainClass
{
static void Main(string[] args)
{
int[] player;
int[] array;
int NumberOfTries = 0;
int Strikes = 0;
int ball = 0;
int input;
int count = 0;
int g = 0;
decimal game = 0;
decimal wins = 0;
decimal percent = 0;
int Ru = 0;
Console.WriteLine("Welcome to Number Baseball Game");
Console.WriteLine("By: ");
while (Ru != -1)
{
Console.WriteLine("The three Digit random number is: \t");
MethodClass = rand = new MethodClass();
array = Random.genRandom();
Console.WriteLine();
NumberOfTries = 0;
game++;
while (NumberOfTries < 5)
{
ball = 0;
Strikes = 0;
Console.Write("Enter three digit number: \t");
input = Convert.ToInt32(Console.ReadLine());
player = MethodClass.splitNumber(input);
for (int i = 0; i < 3; i++)
{
count = 0;
if ((player[i] == array[g]) && (count == 0))
{
if (player[0] == array[0])
{
Strikes++;
}
else
{
ball++;
}
count++;
}
else if ((player[i] == array[g + 1]) && (Strikes == 0))
{
if (player[2] == array[2])
{
Strikes++;
}
else
{
ball++;
}
}
if (Strikes == 3)
{
Console.WriteLine("Goodjob! You guessed the random number!");
wins++;
continue;
}
else if (Strikes == 0 && ball == 0)
{
Console.WriteLine("0 Strikes, 0 ball");
}
else if ((Strikes > 0 && Strikes < 3) || (ball > 0))
{
Console.WriteLine("{0} Strikes and {1}", Strikes, ball);
}
NumberOfTries++;
}
if (Strikes == 0)
{
Console.WriteLine("\nYou lost!");
}
percent = (wins/game) * 100;
Console.WriteLine("Total amount played: {0}, Number of wins: {1}, Winning Percentage: {2:F2}",
game, wins, percent);
Console.WriteLine("Press Enter to exist");
Console.ReadLine();
}
}
}
}
}
MethodsClass:
//Mohamed Shire
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace NumBaseBall
{
class MethodClass
{
int[] random = new int[3];
public int[] genRandom()
{
int my;
Random rand = new Random();
for (int i = 0; i < random.Length; i++)
{
my = rand.Next(1, 10);
if (isExists(random, my) == false)
{
random[i] = my;
Console.Write(random[i]);
}
else
{
i--;
}
}
return random;
}
public bool isExists(int[] array, int my)
{
for (int i = 0; i < array.Length; i++)
{
if (array[i] == my)
{
return true;
}
}
return false;
}
public static int[] splitNumber(int input)
{
int[] uInput = new int[3];
uInput[0] = input/100;
uInput[1] = input % 100/10;
uInput[2] = input % 100 % 10;
return uInput;
}
public static void outputArray(int[] array)
{
for (int i = 0; i < array.Length; i++)
{
Console.WriteLine(array[i]);
}
}
}
}
Пожалуйста, прочтите [this] (https://stackoverflow.com/help/mcve) и попробуйте обрезать код на меньший пример, который воспроизводит проблему. При этом вы, скорее всего, решите проблему самостоятельно. –
Используйте ['int.TryParse()'] (http://stackoverflow.com/a/199484/380384), чтобы обеспечить плавный поток программы после проверки «ENTER». – ja72