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


5 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