24 Ekim 2015 Cumartesi

C Sharp Form Uygulamalar Yılan Oyunu

UYGULAMAYI İNDİR



KONU : C Sharp ( C# ) Form Uygulamalar çift kişilik ve tek kişilik yılan oyunu hazırlama, mayın tarlası oyunu , c sharp form yılan oyun uygulaması


ETİKETLER : C Sharp Oyun | c sharp oyun örnekleri | c sharp oyun yapma | c sharp oyun kodları | csharp oyun programlama | csharp örnek oyun | csharp örnek projeler | csharp örnek programlar| c sharp örnek kodlar | csharp örnek kodları | c sharp örnekleri | csharp örnek | c sharp oyun programları | c# oyun | c# oyun yapımı | c# oyun programlama | c# oyun kodları | c# oyun örnekleri | | c# oyun örnekleri indir | c# örnek oyun | c# yılan oyunu | c# yılan oyunu yapımı | c# yılan oyunu kodu | c# yılan oyun | c# yılan oyunu kod | c# yılan oyunu kodları





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

namespace Yilan
{
    public partial class YilanForm : Form
    {
        int oyuncuSayisi = 1;
        int maxOyuncuSayisi = 2;
        bool oyunDurum = false;
        Semaphore semaPhore;

        ///          /// Yilan nesneleri         /// 
        Yilan[] yilan;

        ///          /// Yılanın deri renkleri         /// 
        Brush[] fircalar = { Brushes.Blue, Brushes.Green, Brushes.Gray, Brushes.GreenYellow };

        ///          /// Grafik nesnesi         /// 
        Grafik grafik;

        ///          /// Anaform penceresi         /// 
        public YilanForm()
        {
            InitializeComponent();
        }

        private Grafik Grafik
        {
            get
            {
                return grafik;
            }
            set
            {
                grafik = value;
            }
        }

        private Yilan [] Yilan
        {
            get
            {
                return yilan;
            }
            set
            {
                yilan = value;
            }
        }


        ///          /// Form yükleme metodu         /// 
        /// /// private void YilanForm_Load(object sender, EventArgs e)         {             //oyun yüklenirkn puan etiketleri görünmesin             lblBrinciOyuncu.Visible = false;             lblIkinciOyuncu.Visible = false;              //Oyun yüklenirken 2 yılan nesnesini oluştur             Yilan = new Yilan[maxOyuncuSayisi];              //Oyun yüklenirker grafik nesnesini oluştur             Grafik = new Grafik();              //Oyunu bir oyunculu olarak başlat             for (int i = 0; i < maxOyuncuSayisi; i++)             {                 Yilan[i] = new Yilan();             }              this.Text = "Yılan Oyunu";              Grafik.grafikAlaniOlustur();              Grafik.yem.X = -1;             Grafik.yem.Y = -1;             Grafik.yemVarMi = false;              if (Grafik.bmp != null)             {                 oyunAlani.Image = Grafik.bmp;                 oyunAlani.Refresh();             }              semaPhore = new Semaphore(1, 1);         }          ///          /// Timer olayı, yılan grafiğini günceller ve yılanı bir birim         /// Hareket ettirir         ///          /// /// private void oyunTimerTick(object sender, EventArgs e)         {             semaPhore.WaitOne();             for (int i = 0; i < oyuncuSayisi; i++)             {                 //yılanı gittiği yönde bir birim kaydırma                 if (Yilan[i].rota == 1) Yilan[i].yilanSolaGit();                 if (Yilan[i].rota == 2) Yilan[i].yilanSagGit();                 if (Yilan[i].rota == 3) Yilan[i].yilanYukariGit();                 if (Yilan[i].rota == 4) Yilan[i].yilanAsagiGit();                  //yılan alanının sınırları geçildiğinde yılanı diğer taraftan çıkar                 if (Yilan[i].x > 39) Yilan[i].x = 0;                 else if (Yilan[i].x < 0) Yilan[i].x = 40;                  if (Yilan[i].y > 39) Yilan[i].y = 0;                 else if (Yilan[i].y < 0) Yilan[i].y = 40;                  //yilana yeni eklenen birimi yılanın rengi ile boya                 Grafik.YilaniDoldur(Yilan[i].x, Yilan[i].y, Yilan[i].yilanRengi);                  //eklenen birimi kuyruğa ekle                 Yilan[i].alanX[Yilan[i].kuyrukUzunluk] = Yilan[i].x;                 Yilan[i].alanY[Yilan[i].kuyrukUzunluk] = Yilan[i].y;                 Yilan[i].kuyrukUzunluk++;                  //Kuyruğu bir birim azaltmak için yılanın kuyruğundaki son birimi zemin rengine boya                 Grafik.YilaniBosalt(Yilan[i].alanX[Yilan[i].kuyrukUzunluk - Yilan[i].uzunluk],        Yilan[i].alanY[Yilan[i].kuyrukUzunluk - Yilan[i].uzunluk]);                                                   if (Yilan[i].kuyrukUzunluk > 899)                 {                     Yilan[i].kuyrukUzunluk = Yilan[i].uzunluk;                     for (int z = 0; z < Yilan[i].uzunluk; ++z)                     {                         Yilan[i].alanX[Yilan[i].uzunluk - z] = Yilan[i].alanX[900 - z];                         Yilan[i].alanY[Yilan[i].uzunluk - z] = Yilan[i].alanY[900 - z];                     }                 }                  if ((Grafik.yilanYemAldiMi(Yilan[i].x, Yilan[i].y) == false) && (Grafik.yemVarMi == false))                 {                     //yeni yem oluştur ve koordinatını belirle                     Grafik.yemKoordinatBelirle();                     Grafik.yemKoy(Grafik.yem.X, Grafik.yem.Y);                     Grafik.yemVarMi = true;                 }                   if (Grafik.yilanYemAldiMi(Yilan[i].x, Yilan[i].y) == true)                 {                     Grafik.yem.X = -1;                     Grafik.yem.Y = -1;                     Grafik.yemVarMi = false;                     Yilan[i].puan += 1 * Yilan[i].hiz;                     Yilan[i].uzunluk += 1;                     if (i == 0)                         lblBrinciOyuncu.Text = "Birinci Oyuncu PUAN : " + Yilan[i].puan.ToString();                     else if (i == 1)                         lblIkinciOyuncu.Text = "Birinci Oyuncu PUAN : " + Yilan[i].puan.ToString();                     }                  oyunAlani.Image = Grafik.bmp;                 oyunAlani.Refresh();             }               for (int i = 0; i < oyuncuSayisi; i++)             {                 if (Yilan[i].yilanKendisineCarptimi(Grafik.bmp) == true)                 {                     oyunTimer.Enabled = false;                     bekleTimer.Enabled = true;                      if (Yilan[i].bekleint <= 0)                     {                     }                     else                     {                         Yilan[i].bekleint = 20;                     }                 }             }             semaPhore.Release();         }          private void bekleTimerTick(object sender, EventArgs e)         {             for (int i = 0; i < oyuncuSayisi; i++)             {                 Yilan[i].bekleint--;                 if (Yilan[i].bekleint == 0)                 {                     bekleTimer.Enabled = false;                     yilanOyunBitti();                     break;                 }             }         }          public void yilanOyunBitti()         {             oyunDurum = false;             oyunTimer.Interval = 50; //200             oyunTimer.Enabled = oyunDurum;             if(oyuncuSayisi == 1)                 MessageBox.Show(lblBrinciOyuncu.Text,"Oyun Bitti",                                      MessageBoxButtons.OK,MessageBoxIcon.Information);             else                 MessageBox.Show( lblBrinciOyuncu.Text + "\n " + lblIkinciOyuncu.Text,                                     "Oyun Bitti",MessageBoxButtons.OK,MessageBoxIcon.Information);             lblBrinciOyuncu.Text = " PUAN : " + Yilan[0].puan.ToString();             Grafik.grafikAlaniOlustur();             Grafik.yemVarMi = oyunDurum;             oyunTimer.Enabled = oyunDurum;             programToolStripMenuItem.DropDownItems[0].Enabled = oyunDurum;         }          private void yeniOyun()         {              oyunTimer.Interval = 50; //200             oyunTimer.Enabled = false;              Grafik.grafikAlaniOlustur();             Grafik.yemVarMi = false;             for (int i = 0; i < oyuncuSayisi; i++)             {                  Yilan[i].uzunluk = 5;                 Yilan[i].kuyrukUzunluk = 5;                 Yilan[i].x = 5 + i * 5;                 Yilan[i].y = 5 + i * 5;                 Yilan[i].rota = 2 - i;                 Yilan[i].puan = 0;                 Yilan[i].YilanSifirla();                 Yilan[i].yilanRengi = fircalar[i];                              }              oyunDurum = true;             oyunTimer.Enabled = true;         }           private void YilanForm_KeyDown(object sender, KeyEventArgs e)         {             if (e.KeyCode == Keys.Left) Yilan[0].rota = 1;             if (e.KeyCode == Keys.Right) Yilan[0].rota = 2;             if (e.KeyCode == Keys.Up) Yilan[0].rota = 3;             if (e.KeyCode == Keys.Down) Yilan[0].rota = 4;             if (e.KeyCode == Keys.Escape) Application.Exit();               if (e.KeyCode == Keys.S) Yilan[1].rota = 1;             if (e.KeyCode == Keys.F) Yilan[1].rota = 2;             if (e.KeyCode == Keys.E) Yilan[1].rota = 3;             if (e.KeyCode == Keys.D) Yilan[1].rota = 4;               for (int i = 0; i < oyuncuSayisi; i++)             {                 Yilan[i].bekleint = 20;             }                         bekleTimer.Enabled = false;             oyunTimer.Enabled = true;         }          private void birOyuncuToolStripMenuItem_Click(object sender, EventArgs e)         {             oyuncuSayisi = 1;             lblBrinciOyuncu.Visible = true;             lblIkinciOyuncu.Visible = false;             lblBrinciOyuncu.Text = "Birinci Oyuncu PUAN : " + Yilan[0].puan.ToString();              yeniOyun();         }          private void ikiOyuncuToolStripMenuItem1_Click(object sender, EventArgs e)         {             oyuncuSayisi = 2;             lblBrinciOyuncu.Visible = true;             lblIkinciOyuncu.Visible = true;             lblBrinciOyuncu.Text = "Birinci Oyuncu PUAN : " + Yilan[0].puan.ToString();             lblIkinciOyuncu.Text = "İkinci  Oyuncu PUAN : " + Yilan[1].puan.ToString();              yeniOyun();         }          private void hizToolStripMenuItem_DropDownItemClicked(object sender, ToolStripItemClickedEventArgs e)         {             string etiket = e.ClickedItem.Text.Substring(0, 1);              int hiz = -1;             switch (etiket)             {                 case ("1"):                     hiz = 1;                     oyunTimer.Interval = 150;                     break;                 case ("2"):                     hiz = 2;                     oyunTimer.Interval = 130;                     break;                 case ("3"):                     hiz = 3;                     oyunTimer.Interval = 110;                     break;                 case ("4"):                     hiz = 4;                     oyunTimer.Interval = 90;                     break;                 case ("5"):                     hiz = 5;                     oyunTimer.Interval = 80;                     break;                 case ("6"):                     hiz = 6;                     oyunTimer.Interval = 70;                     break;                 case ("7"):                     hiz = 7;                     oyunTimer.Interval = 60;                     break;                 case ("8"):                     hiz = 8;                     oyunTimer.Interval = 50;                     break;                 case ("9"):                     hiz = 9;                     oyunTimer.Interval = 40;                     break;                  default:                     break;              }              for (int i = 0; i < oyuncuSayisi; i++)             {                 Yilan[i].hiz = hiz;             }         }          private void programToolStripMenuItem_DropDownItemClicked(object sender, ToolStripItemClickedEventArgs e)         {             string etiket = e.ClickedItem.Text.Trim();              switch (etiket)             {                 case ("Başla"):                     if (!oyunDurum)                     {                         yeniOyun();                     }                     else                     {                         oyunTimer.Interval = 50;//150                         oyunTimer.Enabled = true;                     }                     break;                 case ("Durdur"):                     oyunTimer.Enabled = false;                     break;                 case ("Yeni Oyun"):                     yeniOyun();                     break;                 default:                     break;             }         }          private void yeniOyunToolStripMenuItem1_DropDownItemClicked(object sender, ToolStripItemClickedEventArgs e)         {             string etiket = e.ClickedItem.Text.Substring(0, 3);              switch (etiket)             {                 case ("Bir"):                     oyuncuSayisi = 1;                     break;                 case ("İki"):                     oyuncuSayisi = 2;                     break;                 default:                     oyuncuSayisi = 1;                     break;             }               yeniOyun();         }          private void yardımToolStripMenuItem_DropDownItemClicked(object sender, ToolStripItemClickedEventArgs e)         {             string etiket = e.ClickedItem.Tag.ToString();              switch (etiket)             {                 case ("0"):                     MessageBox.Show("Oyunu başlatmak için 'Yeni Oyuncu' menüsü seçerek\n"                         +"kaç oyuncu ile oynamak istiyorasanız o alt menüyü tıklayınız.\n\n"+                         "Birinci Oyuncu için yön tuşları atanmıştır."+                         "\nİkinci Oyuncu için ileri:E sağ:S sol:F geri:D Tuşları Atanmıştır.");                     break;                 case ("1"):                     MessageBox.Show(((char)169).ToString() + " 2011 Yılan Oyunu");                     break;                 default:                     MessageBox.Show(((char)169).ToString() + " 2011 Yılan Oyunu");                     break;             }          }       } }   


namespace YilanDll
{

  public  class Grafik
    {
        public Bitmap bmp;
        public Point yem;
        public bool yemVarMi;

        private Brush yemRengi;
        private Graphics grafik;
        private Rectangle dikdortgen;
        private Brush arkaAlan;

        /// 
        /// Grafik Nesnesi Yapıcısı
        /// 
        public Grafik()
        {
            yemRengi = Brushes.Red;//yem kırmızı olacak
            arkaAlan = Brushes.White;//arka plan beyaz olacak
            yem = new Point(); //yem nesnesi
        }

        /// 
        /// yılan derisini belirtilen rank ile doldur
        /// 
        ///         ///         ///         public void YilaniDoldur(int x, int y, Brush yilanderirengi)
        {
            grafik.FillRectangle(yilanderirengi, x * 10, y * 10, 10, 10);
        }

        /// 
        /// Oyun alanındaki yılan derisini boşalt
        /// 
        ///         ///         public void YilaniBosalt(int x, int y)
        {
            grafik.FillRectangle(arkaAlan, x * 10, y * 10, 10, 10);
        }

        /// 
        /// Oyun alanını oluştur
        /// 
        public void grafikAlaniOlustur()
        {
            bmp = new Bitmap(400, 400);
            grafik = Graphics.FromImage(bmp);
            dikdortgen = new Rectangle(0, 0, 400, 400);
            grafik.FillRectangle(arkaAlan, dikdortgen);
        }

        /// 
        /// Yem koy metodu
        /// 
        ///         ///         public void yemKoy(int x, int y)
        {
            grafik.FillRectangle(yemRengi, x * 10, y * 10, 10, 10);
        }

        /// 
        /// yilanın yemi alıp almadığını kontrol eder
        /// 
        ///         ///         /// 
        public bool yilanYemAldiMi(int yilanX, int yilanY)
        {
            bool b = false;

            if ((yem.X == yilanX) && (yem.Y == yilanY))
                b = true;
            else
                b = false;

            return b;
        }

        /// 
        /// Oyun alanına yerleştirilecek yem koordinatını belirler
        /// 
        public void yemKoordinatBelirle()
        {
            List olasiYerlerX = new List();
            List olasiYerlerY = new List();

            for (int iy = 0; iy < 400; iy += 10)
            {
                for (int ix = 0; ix < 400; ix += 10)
                {
                    if ((bmp.GetPixel(ix + 5, iy + 5)).Name == "ffffffff")
                    {
                        olasiYerlerX.Add(ix / 10);
                        olasiYerlerY.Add(iy / 10);
                    }
                }
            }

            Random random = new Random();
            int rnd = random.Next(olasiYerlerX.Count + 1);
            yem.X = olasiYerlerX[rnd];
            Thread.Sleep(25);
            yem.Y = olasiYerlerY[rnd];
        }
    }


    /// 
    /// Yılan nesnesinin sınıfı
    /// 
   public class Yilan
    {
        public Brush yilanRengi;
        public int rota;
        public int uzunluk, kuyrukUzunluk;
        public int x, y, hiz;
        public int puan;
        public int bekleint;
        public int[] alanX = new int[1000];
        public int[] alanY = new int[1000];

        protected Random rasgele;

        /// 
        /// Yılan nesnesi yapıcısı
        /// 
        public Yilan()
        {
            //constructor  
            yilanRengi = Brushes.Blue;
            hiz = 8;
            rasgele = new Random();
        }

        /// 
        /// Yılanı sağ tarafa döndür
        /// 
        public void yilanSagGit()
        {
            this.x += 1;
        }

        /// 
        /// Yılanı sol tarafa döndür
        /// 
        public void yilanSolaGit()
        {
            this.x -= 1;
        }

        /// 
        /// Yılanı yukarı tarafa döndür
        /// 
        public void yilanYukariGit()
        {
            this.y -= 1;
        }

        /// 
        /// Yılanı aşağı tarafa döndür
        /// 
        public void yilanAsagiGit()
        {
            this.y += 1;
        }

        /// 
        /// Yılanın kendisine çarpıp çarpmadığını kontrol et
        /// 
        ///         /// 
        public bool yilanKendisineCarptimi(Bitmap bmp)
        {
            bool durum = false;
            int x = this.x * 10;
            int y = this.y * 10;

            try
            {
                if (rota == 1)
                {
                    if (bmp.GetPixel(x - 5, y + 5).Name.Substring(0, 4) != "ffff")
                    {
                        durum = true;
                    }
                    else
                        durum = false;
                }


                if (rota == 2)
                {
                    if (bmp.GetPixel(x + 15, y + 5).Name.Substring(0, 4) != "ffff")
                    {
                        durum = true;
                    }
                    else
                        durum = false;
                }

                if (rota == 3)
                {
                    if (bmp.GetPixel(x + 5, y - 5).Name.Substring(0, 4) != "ffff")
                    {
                        durum = true;
                    }
                    else
                        durum = false;
                }

                if (rota == 4)
                {
                    if (bmp.GetPixel(x + 5, y + 15).Name.Substring(0, 4) != "ffff")
                    {
                        durum = true;
                    }
                    else
                        durum = false;
                }
            }
            catch (Exception e)
            {
                //e.Message; 
                return false;
            }

            return durum;
        }

        /// 
        /// Yılanın özelliklerini sıfırlar
        /// 
        public void YilanSifirla()
        {
            alanX = null;
            alanY = null;

            alanX = new int[1000];
            alanY = new int[1000];

            for (int i = 0; i < 1000; i++)
            {
                alanX[i] = 0;
                alanY[i] = 0;
            }
        }
    }
}





 

UYGULAMAYI İNDİR