Öncelikle selamlar elimde c# ile Console üzerinde yapılmış bir yılan oyununun kodları var fakat duvarlar ve kendine değince ölme eylemleri yok eklemek istiyorum yardımcı olabilecek arkadaşlara şimdiden teşekkürler.Kodlar şu şekilde:
C#:
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();
}
}
}
}