İç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. Programlama
  4. SDN Programlama Kafe
SDN Programlama Kafe

C# Console Yılan Oyunu

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

}
}
}

Cevabını yaz

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