Yardım C# Console Yılan Oyunu

Bu konuyu okuyanlar

yecloop

Öğrenci
Katılım
12 Haziran 2021
Mesajlar
5
Reaksiyon puanı
0
Puanları
1
Yaş
24
Öncelikle okuyan ve yardımcı olmak isteyen herkese teşekkürler ve selamlar.C# Console üzerine yapılan bir yılan oyununda duvarlara ve kendine temas edince ölmesini ardından oyunun bitmesini istiyorum birkaç deneme yaptım fakat başarılı olamadım konuda bilgili arkadaşlar yardımcı olurlarsa çok sevinirim.Kodlar şu şekilde:


using System;
using System.Security.Policy;
using System.Threading;

namespace DateFunctions
{
internal class Snake
{

int Height = 20;
int Width = 30;

int[] X = new int[50];
int[] Y = new int[50];

int fruitX;
int fruitY;

int parts = 3;


private ConsoleKeyInfo key_Info = new ConsoleKeyInfo();
char key = '*';

Random rnd = new Random();

Snake()
{
X[0] = 5;
Y[0] = 5;
Console.CursorVisible = false;
fruitX = rnd.Next(2, (Width - 2));
fruitY = rnd.Next(2, (Height - 2));
}

public void WriteBoard()
{
Console.Clear();
for (int i = 1; i <= (Width + 2); i++)
{
Console.SetCursorPosition(i, 1);
Console.Write("-");
}
for (int i = 1; i <= (Width + 2); i++)
{
Console.SetCursorPosition(i, (Height + 2));
Console.Write("-");
}
for (int i = 1; i <= (Height + 1); i++)
{
Console.SetCursorPosition(1, i);
Console.Write("|");
}
for (int i = 1; i <= (Height + 1); i++)
{
Console.SetCursorPosition((Width + 2), i);
Console.Write("|");
}
}

private static void GameOver()
{
throw new NotImplementedException();

}

public void WritePoint(int x, int y)
{
Console.SetCursorPosition(x, y);
Console.Write("*");
}

public void Input()
{
if (Console.KeyAvailable)
{
key_Info = Console.ReadKey(true);
key = key_Info.KeyChar;
}
}

public void Logic()
{
if (X[0] == fruitX)
{
if (Y[0] == fruitY)
{
parts++;
fruitX = rnd.Next(2, (Width - 2));
fruitY = rnd.Next(2, (Height - 2));
}
}

for (int i = parts; i > 1; i--)
{
X[i - 1] = X[i - 2];
Y[i - 1] = Y[i - 2];
}

switch (key)
{
case 'w':
Y[0]--;
break;
case 's':
Y[0]++;
break;
case 'a':
X[0]--;
break;
case 'd':
X[0]++;
break;
}

for (int i = 0; i <= (parts - 1); i++)
{
WritePoint(X, Y);
WritePoint(fruitX, fruitY);
}
Thread.Sleep(100);
}


public static void Main(string[] args)
{
Snake snake = new Snake();
while (true)
{
snake.WriteBoard();
snake.Input();
snake.Logic();
}

}
}
}
 
Üst