Генерация 2D лабиринта. Как продолжить после первого шага? - C#
Формулировка задачи:
как мне продолжить рандом, когда после первой ставится рандомно и чтобы продолжалось
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication11 { class Program { static void Main(string[] args) { Random rand = new Random(); int height = 20; int Weight = 20; int[,] maze = new int[height,Weight]; for (int i = 0; i < height; i++) { for (int j = 0; j < Weight; j++) { maze[i, j] = 1; Console.Write(maze[i, j] + " "); } Console.WriteLine(); } int r = rand.Next(height); while (r % 2 == 0) { r = rand.Next(height); } int c = rand.Next(Weight); while (c % 2 == 0) { c = rand.Next(Weight); } Console.WriteLine(); Console.WriteLine(); Console.WriteLine(); maze[r, c] = 0; for (int i = 0; i < height; i++) { for (int j = 0; j < Weight; j++) { Console.Write(maze[i, j] + " "); } Console.WriteLine(); } Console.WriteLine(); int tile = 25; int z = 0; int dir = 0; for (int i = 0; i < 1; i++) { dir = rand.Next(0, 4); if (dir == 0) { maze[r - 1, c] = 0; } if (dir == 1) { maze[r, c - 1] = 0; } if (dir == 2) { maze[r + 1, c] = 0; } if (dir == 3) { maze[r, c + 1] = 0; // break; } } // Console.WriteLine(dir); Console.WriteLine(); Console.WriteLine(); Console.WriteLine(); for (int i = 0; i < height; i++) { for (int j = 0; j < Weight; j++) { Console.Write(maze[i, j] + " "); } Console.WriteLine(); } Console.ReadKey(); } } }
Решение задачи: «Генерация 2D лабиринта. Как продолжить после первого шага?»
textual
Листинг программы
private static void GenerateRandomAtOddIndices(int[,] mas) { Random rand = new Random(); var height = mas.GetLength(0); var weight = mas.GetLength(1); for (int i = 0; i < mas.Length/2; i++) { int r = rand.Next(height); while (r % 2 == 0) { r = rand.Next(height); } int c = rand.Next(weight); while (c % 2 == 0) { c = rand.Next(weight); } mas[r, c] = 0; } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д