10 Nisan 2012 Salı

C#'da Adam Asmaca Oyunu

Merhaba arkadaşlar hepimizin bildiği adam asmaca oyunun bir örneğini yaptım ve sizlerle paylaşıyorum umarım yardımcı olabilmişimdir.


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

namespace AdamAsmaca
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        string[] Kelimeler = { "ARABA", "BUZDOLABI" };
        char[] Harfler = { 'A', 'B', 'C', 'Ç', 'D', 'E', 'F', 'G', 'Ğ', 'H', 'I', 'İ', 'J', 'K', 'L', 'M', 'N', 'O', 'Ö', 'P', 'R', 'S', 'Ş', 'T', 'U', 'Ü', 'V', 'Y', 'Z' };
        Random rnd = new Random();
        private void Form1_Load(object sender, EventArgs e)
        {



        }

        private void KelimeYarat()
        {


        silme:
            foreach (Control item in flowLayoutPanel1.Controls)
            {
                if (item is Button)
                {
                    if (Convert.ToInt32(item.Tag) == 0)
                    {
                        item.Dispose();
                        goto silme;
                    }
                }

            }

        git:
            foreach (Control item in this.Controls)
            {
                if (item is Label)
                {
                    if (Convert.ToInt32(item.Tag) == 0)
                    {
                        item.Dispose();
                        goto git;

                    }

                }
            }
            var kelimeNo = rnd.Next(0, Kelimeler.Length);
            this.Tag = kelimeNo;
            for (int i = 0; i < Kelimeler[kelimeNo].Length; i++)
            {
                Label lbl = new Label();
                lbl.Size = lblOrnek.Size;
                lbl.Top = 80;
                lbl.Left = 280 + (i * 34);
                lbl.Text = lblOrnek.Text;
                lbl.Font = lblOrnek.Font;
                this.Controls.Add(lbl);
            }



            for (int i = 0; i < Harfler.Length; i++)
            {
                Button btn = new Button();
                btn.Text = Harfler[i].ToString();
                btn.Size = btnOrnek.Size;
                btn.BackColor = Color.White;
                btn.Click += new EventHandler(btn_Click);
                btn.Tag = 0;
                flowLayoutPanel1.Controls.Add(btn);
            }

        }
        int yanlis = 0;
        int bulunan = 0;
        void btn_Click(object sender, EventArgs e)
        {
            bool deger = false;
            Button Tiklanan = sender as Button;
            Tiklanan.Enabled = false;
            var sayac = 0;


            char[] HarfHarf = Kelimeler[Convert.ToInt32(this.Tag)].ToCharArray();

            foreach (var item in HarfHarf)
            {
                if (item == Convert.ToChar(Tiklanan.Text))
                {
                    var lblHArf = new Label();
                    lblHArf.Top = 70;
                    lblHArf.Left = (sayac * 33) + 285;
                    lblHArf.Size = lblHarfOrnek.Size;
                    lblHArf.Font = lblHarfOrnek.Font;
                    lblHArf.Text = item.ToString();
                    this.Controls.Add(lblHArf);
                    lblHArf.BringToFront();
                    deger = true;
                    bulunan++;
                }

                sayac++;
            }

            if (deger == false)
            {
                switch (yanlis)
                {
                    case 0: pictureBox1.Visible = true; break;
                    case 1: pictureBox2.Visible = true; break;
                    case 2: pictureBox3.Visible = true; break;
                    case 3: pictureBox4.Visible = true; break;
                    case 4: pictureBox5.Visible = true; break;
                    case 5: pictureBox6.Visible = true;
                        MessageBox.Show("Tekrar Dene !!!");
                        KelimeYarat();
                        break;
                    default:
                        break;
                }
                yanlis++;
            }
            if (bulunan == HarfHarf.Length)
            {

                MessageBox.Show("Helal Sana !!!");
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {

            yanlis = 0;
            bulunan = 0;
            pictureBox1.Visible = false;
            pictureBox2.Visible = false;
            pictureBox3.Visible = false;
            pictureBox4.Visible = false;
            pictureBox5.Visible = false;
            pictureBox6.Visible = false;

            KelimeYarat();
        }
    }
}


Hiç yorum yok:

Yorum Gönder