Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace P00
- {
- class Program
- {
- // m - a táblázat mérete - változtatható
- static int m = 15;
- // arány - azt határozza meg, hogy mennyi legyen a falmennyiség (0 - full fal, m*m-2 vagy -1 üresség , elfogadható 2.4)
- static double arany = 2.4;
- static int[,] T = new int[m, m];
- static int[,] H = new int[m, m];
- static int Aoszlop, Asor, Boszlop, Bsor;
- static void beallitasok()
- {
- Random vszam = new Random();
- int poszlop, psor;
- for (int sor = 0; sor < m; sor++)
- {
- for (int oszlop = 0; oszlop < m; oszlop++)
- {
- T[oszlop, sor] = 0;
- H[oszlop, sor] = 0;
- }
- }
- //
- for (int db = 0; db <= m*m/arany-1; db++)
- {
- poszlop = vszam.Next(m); psor = vszam.Next(m);
- while (T[poszlop, psor] != 0)
- {
- poszlop = vszam.Next(m); psor = vszam.Next(m);
- }
- T[poszlop, psor] = 1;
- }
- Aoszlop = vszam.Next(m); Asor = vszam.Next(m);
- H[Aoszlop, Asor] = 1;
- poszlop = vszam.Next(m); psor = vszam.Next(m);
- while (poszlop==Aoszlop && psor==Asor)
- {
- poszlop = vszam.Next(m); psor = vszam.Next(m);
- }
- Boszlop = poszlop; Bsor = psor;
- T[Aoszlop, Asor] = 0;
- T[Boszlop, Bsor] = 0;
- }
- static void labkep()
- {
- for (int sor = 0; sor < m; sor++)
- {
- for (int oszlop = 0; oszlop < m; oszlop++)
- {
- if (T[oszlop, sor]==0)
- {
- Console.Write(" ");
- }
- else
- {
- Console.Write("██");
- }
- }
- Console.WriteLine();
- }
- Console.ForegroundColor = ConsoleColor.Yellow;
- Console.SetCursorPosition(Aoszlop * 2 , Asor); Console.Write(" A");
- Console.SetCursorPosition(Boszlop * 2 , Bsor); Console.Write(" B");
- Console.SetCursorPosition(0, m+1);
- Console.ForegroundColor = ConsoleColor.Gray;
- }
- static void feldolgozas()
- {
- int R = 0;
- bool rak = true;
- while (rak) {
- R++;
- rak = false;
- for (int sor = 0; sor < m; sor++)
- {
- for (int oszlop = 0; oszlop < m; oszlop++)
- {
- // fenn
- if (sor - 1 >= 0 && H[oszlop, sor] == R && T[oszlop, sor - 1] == 0 && H[oszlop, sor - 1] == 0)
- {
- H[oszlop, sor - 1] = R + 1;
- rak = true;
- }
- // lenn
- if (sor + 1 < m && H[oszlop, sor] == R && T[oszlop, sor + 1] == 0 && H[oszlop, sor + 1] == 0)
- {
- H[oszlop, sor + 1] = R + 1;
- rak = true;
- }
- // balra
- if (oszlop - 1 >= 0 && H[oszlop, sor] == R && T[oszlop - 1, sor] == 0 && H[oszlop - 1, sor] == 0)
- {
- H[oszlop - 1, sor] = R + 1;
- rak = true;
- }
- // jobbra
- if (oszlop + 1 < m && H[oszlop, sor] == R && T[oszlop + 1, sor] == 0 && H[oszlop + 1, sor] == 0)
- {
- H[oszlop + 1, sor] = R + 1;
- rak = true;
- }
- }
- }
- }
- }
- static void lab2kep()
- {
- for (int sor = 0; sor < m; sor++)
- {
- for (int oszlop = 0; oszlop < m; oszlop++)
- {
- if (H[oszlop, sor] > 0)
- {
- Console.SetCursorPosition(oszlop * 2, sor + m + 1); Console.Write("{0,2}",H[oszlop, sor]);
- }
- else
- {
- if (T[oszlop, sor]==0)
- {
- Console.SetCursorPosition(oszlop * 2, sor + m + 1); Console.Write(" ");
- }
- else
- {
- Console.SetCursorPosition(oszlop * 2, sor + m + 1); Console.Write("██");
- }
- }
- }
- }
- Console.ForegroundColor = ConsoleColor.Yellow;
- Console.BackgroundColor = ConsoleColor.Red;
- Console.SetCursorPosition(Aoszlop * 2, Asor + m + 1); Console.Write(" 1");
- Console.SetCursorPosition(Boszlop * 2, Bsor + m + 1); Console.Write(" {0}",H[Boszlop, Bsor]);
- Console.BackgroundColor = ConsoleColor.Black;
- Console.SetCursorPosition(0, 2 * m + 2);
- }
- static void Main(string[] args)
- {
- beallitasok();
- labkep();
- feldolgozas();
- lab2kep();
- if (H[Boszlop, Bsor] != 0)
- {
- Console.WriteLine("A B pozíció elérhető, {0} lépéssel", H[Boszlop, Bsor] - 1);
- }
- else
- {
- Console.WriteLine("A B pozíció nem érhető el...");
- }
- Console.ReadKey();
- }
- }
- }
Add Comment
Please, Sign In to add comment