Program pomimo nadpisania w tablicy mapa[] literą "P" nie wyświetla jej. Cały czas wyświetla to co zostało ustawione na początku. Z góry dziękuje za wszelką pomoc.
linijka 80
kod:
using System;
namespace Gra_0
{
class Program
{
static void Main(string[] args)
{
for (; ; )
{
Console.Clear();
//Tworzenie mapy
Console.WriteLine("\n Pamiętaj że szerokośc musi być wieksza od wysokosci!!!");
Console.Write("\n\n Podaj Szerokość mapy: ");
int mX = int.Parse(Console.ReadLine());
Console.Clear();
Console.Write("\n Podaj Wysokość mapy: ");
int mY = int.Parse(Console.ReadLine());
Console.Clear();
//Tworzenie podstawowych zmiennych
string[] calaMapa = new string[mY];
string[,] mapa = new string[mX, mY];
int pX = 1;
int pY = 1;
int aX = mX - 2;
Random random = new Random();
int aY = random.Next(0, mY - 1);
//Points rounds
int points = 0;
int rounds = 0;
TworzenieMapy(mapa, calaMapa, pX, pY);
//Uruchamianie funkcji
for (; ; points++, rounds++)
{
WyswietlanieMapy(calaMapa, mapa, ref pX, ref pY);
RuchGracza(calaMapa, mapa, ref pX, ref pY);
if (SprawdzaniePrzegranej(ref pX, ref pY, ref aX, ref aY) == 1)
break;
RuchStrzaly(ref aX, ref aY);
Console.Clear();
}
Wynik(rounds, points);
}
}
//-------------------------------------------------------------------------------
//MAPA MAPA tworzenie
public static void TworzenieMapy(string[,] mapa, string[] calaMapa, int pX, int pY)
{
for (int i = 0; i < mapa.GetLength(0); i++)
{
//Tworzenie granicy gornej czesci mapy
calaMapa[0] += mapa[i, 0] = "=";
}
for (int i = 1; i < calaMapa.Length - 1; i++)
{
//Tworzenie srodka mapy
calaMapa[i] += mapa[i - 1, i] = "|";
for (int k = 1; k < mapa.GetLength(0) - 1; k++)
{
calaMapa[i] += mapa[k, i] = " ";
}
calaMapa[i] += mapa[calaMapa.Length, i] = "|";
}
for (int i = 0; i < mapa.GetLength(0); i++)
{
//Tworzenie granicy dolnej czesci mapy
calaMapa[mapa.GetLength(1) - 1] += mapa[i, mapa.GetLength(1) - 1] = "=";
}
}
//Wyswietlanie mapy, ruchu gracza, ruchu strzaly
public static void WyswietlanieMapy(string[] calaMapa, string[,] mapa, ref int pX, ref int pY)
{
mapa[pX, pY] = "P";
Console.WriteLine("\n\n");
for (int i = 0; i < calaMapa.Length; i++)
{
Console.Write(" ");
Console.WriteLine(calaMapa[i]);
}
mapa[pX, pY] = " ";
}
//Sprawdzanie czy gracz może sie ruszyć
public static void RuchGracza(string[] calaMapa, string[,] mapa, ref int pX, ref int pY)
{
Console.Write("\n\n Ruszaj sie: ");
wybor:
char wybor = Console.ReadKey().KeyChar;
switch (wybor)
{
case 'w':
while (true)
{
if (pY + 1 == mapa.GetLength(1))
{
goto wybor;
}
pY++;
break;
}
break;
case 's':
while (true)
{
if (pY - 1 == mapa.GetLength(1))
{
goto wybor;
}
pY--;
break;
}
break;
case 'a':
while (true)
{
if (pX - 1 == 0)
{
goto wybor;
}
pX--;
break;
}
break;
case 'd':
while (true)
{
if (pX + 1 == mapa.GetLength(0) - 1)
{
goto wybor;
}
pX++;
break;
}
break;
default:
Console.WriteLine("Nie trafiłeś w klawiature chyba");
break;
}
}
public static void RuchStrzaly(ref int aX, ref int aY)
{
}
//Sprawdzanie przegranej
public static int SprawdzaniePrzegranej(ref int pX, ref int pY, ref int aX, ref int aY)
{
if ((pX == aX) && (pY == aY))
{
return 1;
}
return 0;
}
//Wynik
public static void Wynik(int rounds, int points)
{
Console.WriteLine("Niestety ale to już koniec");
Console.WriteLine("Udalo ci się przetrwać: {0} rund oraz zdobyć: {1} punktów", rounds, points);
}
}
}