Oyun



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