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;
            }

        }
 
    }
}



UYGULAMAYI İNDİR


6 yorum :

  1. Sayfanızdaki uygulamalar çok iyi olmuş daha iyilerinide bekliyoruz

    YanıtlaSil
  2. Sayfadaki uygulamalar öğrencilere çok faydalı daha fazla uygulama olmasını istiyoruz

    YanıtlaSil
  3. Paylaşmak istediğiniz uygulamalar varsa buradan payşaiabilirisiniz...
    fatih.kral@gmail.com

    YanıtlaSil
  4. nasıl oluyor anlamadım sürekli bir aynı hat bir hatadan onlarca çıkıor ben böyle işi amk

    YanıtlaSil
  5. Form demişsiniz ama formdaki kodlar yok. Lütfen onlarla beraber koyar mısınız?
    Böylelikle daha net anlayabiliriz.
    Teşekkürler

    YanıtlaSil