A więc tworze grę w której gracz sam wybiera wielkość planszy mam pewien problem z tablica globalna. Ponieważ nie zapisuje ona zmiennej jaką podał gracz i automatycznie przypisuje jej zero. Wszystko działa normalnie jeśli Y i X przypisze wartość od razu ale nie taki zamysł. Wiem że mogę przypisać tablice do maina itp ale chciałbym zrozumieć dlaczego to nie działa.
kod:
using System;
namespace Gra_0
{
class Program
{
static int X { get; set; }
static int Y { get; set; }
static void Main(string[] args)
{
do
{
Menu();
for (int i = 0; ; i++)
{
Console.WriteLine(X);
//Wyświetla taką wartość jaką podałem
Console.WriteLine(Y);
//Wyświetla taką wartość jaką podałem
Console.WriteLine(calaMapa.Length);
//Wyświetla 0
Console.ReadKey();
}
} while (true);
}
public static void Menu()
{
Console.WriteLine("\n\n Wybierz 1 aby rozpocząć grę");
Console.WriteLine(" Wybierz 2 aby zobaczyć sale chwały");
char wybor=Console.ReadKey().KeyChar;
switch (wybor)
{
case '1':
Console.Clear();
Console.Write("\n\n Podaj Szerokość mapy: ");
X = int.Parse(Console.ReadLine());
Console.Clear();
Console.Write("\n\n Podaj Wysokość mapy: ");
Y = int.Parse(Console.ReadLine());
Console.Clear();
TworzenieMapy();
break;
case '2':
Console.WriteLine("Work in progress");
break;
}
}
readonly static string[] calaMapa = new string[Y];
readonly static string[,] mapa = new string[X, Y];
//-----------------------------------------------------------------------------------------------
//MAPA MAPA
public static void TworzenieMapy()
{
for (int j = 0; j < mapa.GetLength(0); j++)
{
//Tworzenie granicy gornej czesci mapy
calaMapa[0] += mapa[j, 0] = "#";
}
for (int j = 1; j < calaMapa.Length - 1; j++)
{
//Tworzenie srodka mapy
calaMapa[j] += mapa[j - 1, j] = "#";
for (int k = 1; k < mapa.GetLength(0) - 1; k++)
{
calaMapa[j] += mapa[k, j] = " ";
}
calaMapa[j] += mapa[calaMapa.Length, j] = "#";
}
for (int j = 0; j < mapa.GetLength(0); j++)
{
//Tworzenie granicy dolnej czesci mapy
calaMapa[mapa.GetLength(1) - 1] += mapa[j, mapa.GetLength(1) - 1] = "#";
}
}
//Wyswietlanie mapy
public static void WyswietlanieMapy()
{
Console.WriteLine("\n\n");
for (int i = 0; i < calaMapa.Length; i++)
{
Console.Write(" ");
Console.WriteLine(calaMapa[i]);
}
}
}
}