İçeriğe geç
ShiftDelete.Net
Haber ara/ SDN'ye SorGiriş
Haber Akışı SDNTV İnceleme Forum Yapay Zeka Akıllı Telefon Elektrikli Otomobil Oyun ShiftDelete.Net Global Teknoloji Haberleri Mobil Otomobil Donanım Savunma Bilim Sosyal Medya İnternet Giyilebilir Teknoloji Rehber Ürünler Son dakika Yazarlar
  1. Ana sayfa
  2. Topluluk
  3. Yazılım
  4. Diğer Yazılım Konuları
Diğer Yazılım Konuları

C# Console Yılan Oyunu

yecloop24.06.20220 cevap1.485 görüntüleme
2021'den beri5 mesaj
#1
Ö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:
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();
}

}
}
}

Cevabını yaz

Cevap yazmak için giriş yap ya da üye ol. Eski forum kullanıcı adın ve parolanla girebilirsin.