YILAN OYUNU YAPIMI
Yılan Oyununu Buradan İndirebilirsiniz
Destekleriniz İçin İzleyiciler'e katılmanız yeterli
NOT: Yılanın kendisi ile çarpışma sorunu çözüldü. Ana programda public void collision() metodunda
if (yilan.YilanRec[0].IntersectsWith(yilan.YilanRec[i])) satırı düzeltildi
YAPIMI
Programın Yapımı Visual Studio 2013 C# programında gerçekleştirildi
Program Ana Ekranı
Yilan İsimli Class
class Yilan
{
private Rectangle[] yilanRec;
public SolidBrush firca=new SolidBrush(Color.DarkBlue);
private int x, y, genislik, yukseklik;
public Rectangle[] YilanRec
{
get { return yilanRec; }
}
public Yilan()
{
yilanRec = new Rectangle[4];
x = 50;
y = 30;
genislik = 10;
yukseklik = 10;
for (int i = 0; i < yilanRec.Length; i++)
{
yilanRec[i] = new Rectangle(x, y, genislik,
yukseklik);
x -= 10;
}
}
public void yilanciz(Graphics sayfa)
{
foreach (Rectangle rec in yilanRec)
{
sayfa.FillRectangle(firca,rec);
}
}
public void yilanciz()
{
for (int i = yilanRec.Length - 1; i > 0; i--)
{
yilanRec[i] = yilanRec[i - 1];
}
}
public void AsaDon()
{
yilanciz();
yilanRec[0].Y += 10;
}
public void YukDon()
{
yilanciz();
yilanRec[0].Y -= 10;
}
public void SolDon()
{
yilanciz();
yilanRec[0].X -= 10;
}
public void SagDon()
{
yilanciz();
yilanRec[0].X += 10;
}
public void YilanBuyu()
{
List<Rectangle> rec = yilanRec.ToList();
rec.Add(new Rectangle(yilanRec[yilanRec.Length
- 1].X, yilanRec[yilanRec.Length - 1].Y, genislik, yukseklik));
yilanRec = rec.ToArray();
}
}
Yem İsimli Class
class Yem
{
private int x, y,genislik,
yukseklik;
public SolidBrush firca = new SolidBrush(Color.DarkRed);
public Rectangle yemRec;
public Yem(Random rndYem)
{
x = rndYem.Next(0, 29) * 10;
y = rndYem.Next(0, 29) * 10;
firca = new SolidBrush(Color.DarkRed);
genislik = 10;
yukseklik=10;
yemRec = new Rectangle(x, y, genislik,
yukseklik);
}
public void yemKonum(Random rndYem)
{
x = rndYem.Next(0, 29) * 10;
y = rndYem.Next(0, 29) * 10;
}
public void yemCiz(Graphics sayfa)
{
yemRec.X = x;
yemRec.Y = y;
sayfa.FillRectangle(firca,yemRec);
}
}
Ana Program
Random rndYem
= new Random();
Graphics sayfa;
Yilan yilan = new Yilan();
Yem yem;
bool sol = false;
bool sag = false;
bool yuk = false;
bool asa = false;
int puan = 0;
public Form1()
{
InitializeComponent();
yem = new Yem(rndYem);
this.Paint += new PaintEventHandler(Form1_Paint);
this.KeyDown += new KeyEventHandler(Form1_KeyDown);
}
private void Form1_Paint(object sender, PaintEventArgs e)
{
sayfa = e.Graphics;
yem.yemCiz(sayfa);
yilan.yilanciz(sayfa);
}
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyData == Keys.Enter)
{
timer1.Enabled = true;
bilisimkitabi.Text = "";
sp.Text = "";
asa = false;
yuk = false;
sol = false;
sag = true;
}
if (e.KeyData == Keys.Down && yuk == false)
{
asa = true;
yuk = false;
sol = false;
sag = false;
}
if (e.KeyData == Keys.Up && asa == false)
{
asa = false;
yuk = true;
sol = false;
sag = false;
}
if (e.KeyData == Keys.Left && sag== false)
{
asa = false;
yuk = false;
sol = true;
sag = false;
}
if (e.KeyData == Keys.Right && sol== false)
{
asa = false;
yuk = false;
sol = false;
sag = true;
}
}
private void timer1_Tick(object sender, EventArgs e)
{
toolStripStatusLabel2.Text = Convert.ToString(puan);
if (asa == true)
{
yilan.AsaDon();
}
if (yuk == true)
{
yilan.YukDon();
}
if (sag == true)
{
yilan.SagDon();
}
if (sol == true)
{
yilan.SolDon();
}
this.Invalidate();
collision();
for (int i = 0; i < yilan.YilanRec.Length; i++)
{
if (yilan.YilanRec[i].IntersectsWith(yem.yemRec))
{
puan += 1;
yilan.YilanBuyu();
yem.yemKonum(rndYem);
}
}
}
public void collision()
{
for (int i = 1; i < yilan.YilanRec.Length; i++)
{
if (yilan.YilanRec[0].IntersectsWith(yilan.YilanRec[i]))
{
restart();
}
}
if (yilan.YilanRec[0].X < 0 || yilan.YilanRec[0].X >
290)
{
restart();
}
if (yilan.YilanRec[0].Y < 0 || yilan.YilanRec[0].Y >
290)
{
restart();
}
}
public void restart()
{
timer1.Enabled = false;
MessageBox.Show("Oyun
Bitti"+" "+"Puanınız="+puan);
toolStripStatusLabel2.Text = "0";
puan = 0;
sp.Text = "Enter'a Bas";
bilisimkitabi.Text = "http://www.bilisimkitabi.net";
yilan = new Yilan();
}
private void beyazToolStripMenuItem_Click(object sender, EventArgs e)
{
this.BackColor = Color.White;
}
private void kırmızıToolStripMenuItem_Click(object sender, EventArgs e)
{
this.BackColor = Color.Red;
}
private void maviToolStripMenuItem_Click(object sender, EventArgs e)
{
this.BackColor = Color.Blue;
}
private void yeşilToolStripMenuItem_Click(object sender, EventArgs e)
{
this.BackColor = Color.OliveDrab;
}
private void siyahToolStripMenuItem_Click(object sender, EventArgs e)
{
yilan.firca = new SolidBrush(Color.Black);
}
private void maviToolStripMenuItem1_Click(object sender, EventArgs e)
{
yilan.firca = new SolidBrush(Color.DarkBlue);
}
private void sarıToolStripMenuItem_Click(object sender, EventArgs e)
{
yilan.firca = new SolidBrush(Color.Yellow);
}
private void kırmızıToolStripMenuItem1_Click(object sender, EventArgs e)
{
yilan.firca = new SolidBrush(Color.Red);
}
private void siyahToolStripMenuItem1_Click(object sender, EventArgs e)
{
yem.firca = new SolidBrush(Color.Black);
}
private void beyazToolStripMenuItem1_Click(object sender, EventArgs e)
{
yem.firca = new SolidBrush(Color.White);
}
private void maviToolStripMenuItem2_Click(object sender, EventArgs e)
{
yem.firca = new SolidBrush(Color.Blue);
}
private void sarıToolStripMenuItem1_Click(object sender, EventArgs e)
{
yem.firca = new SolidBrush(Color.Yellow);
}
private void timer2_Tick(object sender, EventArgs e)
{
DateTime a;
a = DateTime.Now;
toolStripStatusLabel3.Text =
a.ToString();
}
}
Hiç yorum yok:
Yorum Gönder