Я новичок в программировании, и мне был назначен мини-проект. инструктор был очень неясен относительно того, что я должен делать именно так. Все, что я знаю, это то, что это «случайное блуждание», и я не должен использовать метод, мне нужно использовать только циклы, ветвящиеся и генераторы случайных чисел (даже не уверен в этом). Он также должен получить несколько шагов от пользователя и пройти по указанному номеру. В любом случае, я начинаю с очень ограниченным знанием C#. Я много исследовал здесь, а также во многих других местах, без успеха. коды либо очень сложны, либо находятся на других языках. Я написал немного кода. Я не знаю, правильно ли это. , пожалуйста, дайте мне несколько указателей. Ошибок нет, но программа не работает, есть проблема с условиями.условия в алгоритме случайного блуждания
static void Main(string[] args)
{
int row = 100;
int col = 100;
int[,] matrix;
matrix = new int[row, col];
int n;
Console.WriteLine("Enter the number of steps:");
n = int.Parse(Console.ReadLine());
const int up = 1;
const int down = 2;
const int left = 3;
const int right = 4;
int number=0;
for (int i=0;i<100;i++)
{
for (int j = 0; j < 100; j++)
matrix[i, j] = number;
}
Random randomdirection = new Random();
for (int counter = 0; counter < n; counter++)
{
int direction = randomdirection.Next(1, 5);
while (direction == 1)
{
if ((++col) < 100 && matrix[row, ++col] == 0)
{
matrix[row, ++col] = ++number;
}
else
break;
}
while (direction == 2)
{
if ((--col) < 100 && matrix[row, --col] == 0)
{
matrix[row, --col] = ++number;
}
else
break;
}
while (direction == 3)
{
if ((--row) < 100 && matrix[--row, col] == 0)
{
matrix[--row, col] = ++number;
}
else
break;
}
while (direction == 4)
{
if ((++row) < 100 && matrix[++row,col] == 0)
{
matrix[++row,col] = ++number;
}
else
break;
}
}
for (int i = 0; i < row; i++)
{
for (int j = 0; j < col; j++)
Console.WriteLine(matrix[i, j]);
}
Console.ReadKey();
}
Это назначение: Пьяницы начинает ходить без цели, начиная с фонарным столбом. На каждом шагу времени пьяница забывает, где он или она, и делает один шаг наугад: север, восток, юг или запад, с вероятностью 25%. Как далеко выйдет пьяница из фонарного столба после N шагов? Это очень неполно. Мы не изучали классы и методы, поэтому логически мы не должны их использовать. я считаю, что использовать массивы, циклы и ветвления. Я сам написал код. вот почему это так испортилось.
изменил его следующим образом: кажется, что я не вижу проблемы: ((
static void Main(string[] args)
{
Random randomObject = new Random();
int randomDirection;
int[,] mainarray;
int row=10;
int col=10;
mainarray=new int[row,col];
int number=0;
for (int b=0;b<row;b++)
{
for (int c=0;c<col;c++)
mainarray[b,c]=number;
}
while (true)
{
int n;
Console.WriteLine("Enter the number of steps: ");
n = Convert.ToInt32(Console.ReadLine());
for (int i = 0; i < n; i++)
{
randomDirection = randomObject.Next(1, 5);
if (randomDirection == 1 && row < 0 && row < 10)
mainarray[++row, col] = ++number;
if (randomDirection == 2 && row < 0 && row < 10)
mainarray[--row, col] = ++number;
if (randomDirection == 3 && col < 0 && col < 10)
mainarray[row, ++col] = ++number;
if (randomDirection == 4 && col < 0 && col < 10)
mainarray[row, --col] = ++number;
}
for (int i = 0; i < row; i++)
{
for (int j = 0; j < col; j++)
Console.Write(mainarray[i,j]);
}
}
Console.ReadKey();
}
Вы бы хорошо объяснили, чего хотите достичь –
Откуда у вас этот код? Вам действительно лучше, запустив себя, потому что я на 100% уверен, что вы не пишете этот код. Какой беспорядок ... – Joetjah
'Я не должен использовать метод 'это ваша интерпретация или требование от инструктора? 'есть проблема с условиями. Каково условие и как ваша логика' random walk' хочет течь? – Fendy