msHOWTO

10 Nisan 2012 Salı

C# Adam Asmaca Oyunu

Merhaba arkadaşlar.Bu makalemde C# da yapmış olduğum adam asmaca oyununun kodlarını sizlerle paylaşacağım . Formunuza 1 adet buton (text i başla) 1 adet flowlayoutpanel 1 adet panel ve 6 adet picturebox nesnesi ekleyın.Formun tasarımı aşağıdaki şekilde olacaktır.


ve aşağıdaki kodları kod sayfanıza olduğu gibi yapıştırırsanız sorunsuz çalışacaktır. İyi eğlenceler...Tek yapmanız gereken kelimeler isimli diziye istediğiniz kadar kelime eklemek olacaktır..



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 AdamAsmacaApplication
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        string[] harfler = { "A", "B", "C", "Ç", "D", "E", "F", "G", "Ğ", "H", "I", "İ", "J", "K", "L", "M", "N", "O", "Ö", "P", "R", "S", "Ş", "T", "U", "Ü", "V", "Y", "Z" };
        string[] kelimeler = { "ARABA", "BUZDOLABI", "AYAKKABI", "TELEVİZYON" };

        private void Form1_Load(object sender, EventArgs e)
        {
            for (int i = 0; i < harfler.Length; i++)
            {
                Button btn = new Button();
                btn.Size = new Size(35, 35);
                btn.Text = harfler[i];
                btn.BackColor = Color.White;
                btn.Enabled = true;
                btn.Click += new EventHandler(tahinEt);
                flowLayoutPanel2.Controls.Add(btn);
            }

        }
        int yanlisSayisi = 0;
        int acilanHarfSayisi = 0;
        void tahinEt(object sender, EventArgs e)
        {
            if (acilanHarfSayisi==kelime.Length)
            {
                return;
            }

            if (yanlisSayisi==6)
            {
                return;
            }
         
            int sayac = 0;
            Button btn = sender as Button;
            foreach (Control lbl in panel1.Controls)
            {
                if (btn.Text == lbl.Text)
                {
                    lbl.Visible = true;
                    acilanHarfSayisi++;
                    sayac++;
                }


            }
            if (sayac==0)
            {
                yanlisSayisi++;
                switch (yanlisSayisi)
                {
                    case 1: pictureBox1.Visible = true; break;
                    case 2: pictureBox2.Visible = true; break;
                    case 3: pictureBox3.Visible = true; break;
                    case 4: pictureBox4.Visible = true; break;
                    case 5: pictureBox5.Visible = true; break;
                  
                    default:
                        break;
                }
            }
            btn.BackColor = Color.Red;
            btn.Enabled = false;

            if (acilanHarfSayisi == kelime.Length)
            {
                MessageBox.Show("Tebrikler bildiniz.");
                return;
            }
            if (yanlisSayisi == 6)
            {
                foreach (Control lbl in panel1.Controls)
                {
                    if (lbl.Text != "_")
                    {
                        lbl.Visible = true;
                    }
                }
                pictureBox6.Visible = true;
                MessageBox.Show("Üzgünüm.Kaybettiniz.");
                return;
            }
        
        }
        string kelime;
        private void button1_Click(object sender, EventArgs e)
        {
            yanlisSayisi = 0;
            acilanHarfSayisi = 0;
            foreach (Control pbx in this.Controls)
            {
                if (pbx is PictureBox)
                {
                    pbx.Visible = false;
                }
            }
            yanlisSayisi = 0;
            gel:
            foreach (Control lbl in panel1.Controls)
            {
                lbl.Dispose();
                goto gel;
            }

            foreach (Control btn in flowLayoutPanel2.Controls)
            {
                btn.BackColor = Color.White;
                btn.Enabled = true;
            }

            Random rnd = new Random();
            int kelimeNo = rnd.Next(0, 4);
            kelime = kelimeler[kelimeNo];
            for (int i = 1; i < kelime.Length + 1; i++)
            {
                Label lblHarf = new Label();
                lblHarf.Font = new Font("Arial", 20);
                lblHarf.Text = kelime[i - 1].ToString();
                lblHarf.Height = 50;
                lblHarf.Width = 30;
                lblHarf.Location = new Point((i * lblHarf.Width) + 50, 50);
                lblHarf.Visible = false;
                panel1.Controls.Add(lblHarf);

                Label lbl = new Label();
                lbl.Text = "_";
                lbl.Font = new Font("Arial", 20);
                lbl.Height = 30;
                lbl.Width = 30;
                lbl.Location = new Point((i * lbl.Width) + 50, 80);
                panel1.Controls.Add(lbl);
            }
        }

        private void panel1_Paint(object sender, PaintEventArgs e)
        {

        }
    }
}




2 yorum:

  1. lbl.Location = new Point((i * lbl.Width) + 50, 80); bu satırda kod ne yapıyor acaba

    YanıtlaSil
  2. abi 'Form1' türü veya ad alanı adı bulunamadı (bir using yönergeniz veya derleme başvurunuz mu eksik?)
    die hata verio napim

    YanıtlaSil