Yılan oyunun
















































/*Küçük bir yılan oyunu :)*/

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Yılan_oyunu
{
    public partial class Form1 : Form
    {
        Yilan yılan;
        Yilan.YilanYonu yön=Yilan.YilanYonu.sağa;
        Yem Kucukyem;
        Random q = new Random();
     
 
        int[] sayilar = new int[30];
        public int puan = 0;
        bool basıldığıan = false;
        public Form1()
        {
         
         
            for(int i=0;i<sayilar.Length;i++)
            {
                sayilar[i]=i*10;
            }
            InitializeComponent();
            this.BackColor = Color.Lime;
            yılan=new Yilan();
            this.Paint += Form1_Paint;
            this.KeyDown += Form1_KeyDown;
           Kucukyem=new Yem(new Point(ONLUKSAYİLAR[q.Next(0,29)],ONLUKSAYİLAR[q.Next(0,29)]), new Size(10,10),10);
        }

       void Form1_Paint(object sender, PaintEventArgs e)
        {

            if (yılan.YilanKare[0].IntersectsWith(Kucukyem.yemKare))
            {
                Kucukyem.YemPozisyonDeğişimi(new Point(sayilar[q.Next(0, 29)], sayilar[q.Next(0, 29)]));
                yılan.BüyüklükDegişimi(yılan.YilanKare.Length+1);
                puan += Kucukyem.Puan;
                label1.Text = "Puan=" + puan.ToString();
            }
     
            Kucukyem.YemÇiz(e.Graphics);
            yılan.YilaÇiz(e.Graphics);
           //Yılan kendisine ve kareye çarptığı zaman oyundan çıkılıyor
            for (int i = 1; i < yılan.YilanKare.Length; i++)
            {
            if(yılan.YilanKare[0].IntersectsWith(yılan.YilanKare[i])||yılan.YilanKare[0].X<0||yılan.YilanKare[0].X>300||yılan.YilanKare[0].Y<0||yılan.YilanKare[0].Y>300)
            {
                timer1.Stop();
                label2.Text = "Yılan Fişmkan oldu :(\n"+"Toplam Puanınız="+puan;
                MessageBox.Show("Bir daha ki sefere kesin olacak ", "Oyun Bitti",

    MessageBoxButtons.OK, MessageBoxIcon.Warning);
               this.Close();
             
             
            }
            }
        }

        void Form1_KeyDown(object sender, KeyEventArgs e)
       {
           if (e.KeyData == Keys.Left && yön != Yilan.YilanYonu.sağa && basıldığıan == false)
              {
                  yön=Yilan.YilanYonu.sola;
                  basıldığıan = true;
              }
            if(e.KeyData==Keys.Right && yön!=Yilan.YilanYonu.sola && basıldığıan==false)
              {
                  yön=Yilan.YilanYonu.sağa;
                  basıldığıan = true;
              }
            if (e.KeyData == Keys.Up && yön != Yilan.YilanYonu.aşaği && basıldığıan == false)
              {
                  yön=Yilan.YilanYonu.yukari;
                  basıldığıan = true;
              }
            if (e.KeyData == Keys.Down && yön != Yilan.YilanYonu.yukari && basıldığıan == false)
           {
               yön = Yilan.YilanYonu.aşaği;
               basıldığıan = true;
           }
       }
   
        //Burda yılanı kontrol ediyoruz yani yön veriyoruz
        private void timer1_Tick(object sender, EventArgs e)
        {
            if (yön == Yilan.YilanYonu.yukari)
            {
                yılan.Yukarigit();
            }
            if (yön == Yilan.YilanYonu.aşaği)
            {
                yılan.Aşağigit();
            }
            if (yön == Yilan.YilanYonu.sağa)
            {
                yılan.Sağagit();
            }
            if (yön == Yilan.YilanYonu.sola)
            {
                yılan.Solagit();
            }
            this.Invalidate();
            basıldığıan = false;
        }

         void Form1_Point(object sender, Point e)
        {

        }

         private void Form1_Load(object sender, EventArgs e)
         {

         }

   

       
    }
    //yılan kılasımız.....
    public class Yilan {
   
    private int x, y, genislik,yukseklik;
    private SolidBrush firca;
    private Rectangle[] yilanKare;

    public SolidBrush Firca
    {

        get
        {
            return firca;
        }
   
    }
    public Rectangle[] YilanKare
    {
        get
        {
            return yilanKare;
        }
   
    }
 
        public Yilan()
        {
        x=20;
        y=0;
            genislik=10;
                yukseklik=10;
            firca =new SolidBrush(Color.Black);
            yilanKare=new Rectangle[3];

            for (int i = 0; i < yilanKare.Length; i++)
            {
                yilanKare[i] = new Rectangle(x, y, genislik, yukseklik);
             
                x = 10;
            }
         
        }
        //burda yılanı çiziyoruz
        public void YilaÇiz(Graphics kagit)
        {
            for (int i = 0; i < yilanKare.Length; i++)
            {
             
                kagit.FillRectangle(firca, yilanKare[i]);
           
            }
     
        }
        public void Aşağigit()
        {
         
            for (int i = yilanKare.Length-1; i>0 ; i--)
            {
                yilanKare[i] = yilanKare[i - 1];
            }
        yilanKare[0].Y+=10;
        }
        public void Yukarigit()
        {

            for (int i = yilanKare.Length-1; i > 0; i--)
            {
                yilanKare[i] = yilanKare[i - 1];
            }
            yilanKare[0].Y -= 10;
        }
        public void Sağagit()
        {

            for (int i = yilanKare.Length-1; i > 0; i--)
            {
                yilanKare[i] = yilanKare[i - 1];
            }
            yilanKare[0].X += 10;
        }
        public void Solagit()
        {

            for (int i = yilanKare.Length-1; i > 0; i--)
            {
                yilanKare[i] = yilanKare[i - 1];
            }
            yilanKare[0].X -= 10;
        }
        public void BüyüklükDegişimi(int YeniBüyükülk)
        {
            Array.Resize(ref yilanKare, YeniBüyükülk);
        }
        public enum YilanYonu
        {
        aşaği,yukari, sağa ,sola
        }
  }

   //yem klasımızı oluşturuyoruz
    public class Yem
    {
        Size Büyüklük;
        Point Pozisyon;
        int x, y, yüseklik, genişlik;
        SolidBrush firca;
        Rectangle yem;
        int puan;
        public int Puan
        {
            get
            {
                return puan;
            }
        }
        public Rectangle yemKare
        {
            get
            {
                return yem;
            }
        }
        public Yem(Point pozisyon, Size büyüklük, int puan)
        {
            this.Pozisyon = pozisyon;
            this.Büyüklük = büyüklük;
            firca = new SolidBrush(Color.Red);
            this.puan = puan;
        }
        //burda yemi çiziyoruz
        public void YemÇiz(Graphics kagit)
        {
            yem = new Rectangle(Pozisyon, Büyüklük);
            kagit.FillRectangle(firca,yem);
        }
        public void YemPozisyonDeğişimi(Point yeniPozisyon)
    {
        Pozisyon = yeniPozisyon;
    }
     
    }
}

Yorumlar

Bu blogdaki popüler yayınlar

Histogram Eşitleme

Dinamik Label Ve Button Oluşturma