1. Anasayfa
  2. Visual Studio C#

C# Dersleri – Köstebek Oyunu

C# Dersleri – Köstebek Oyunu
0

C# derslerimize köstebek oyunu ile devam ediyoruz, peki nedir köstebek oyunu diyorsanız aşağıdaki resim hatırlamanıza yardımcı olur :)
whack-a-mole
şimdi yapacağımız uygulama bu kadar görsel veya detaylı değil ama işin mantığını kavrama açısında önemli ilk olarak aşağıdaki form görüntüsünü oluşturuyoruz..
kostebek1
neler var form üzerinde iki buton, iki label, bir flowLayoutPanel, bir Timer ve bir groupbox içine eklenmiş üç radio buton şimdi kodları yazmadan önce mantığını anlatayım sonra kodları incelersiniz..
Eklediğiniz flowLayoutPanel genişliğine göre belli bir sayıda buton üretmemiz gerekiyor benim uygulamam da 42, üretilen her butona kostebekyuvasi ismini verdim, yine 1 ile 42 arasında rastgele bir değer üretiliyor buna karşılık gelen kostebekyuvasi hangisi ise o butonun zemin rengi kırmızı oluyor, daha eğer kullanıcı rengi tekrar siyah olmadan basarsa skor bir artıyor yanlış butona basarsa bir azalıyor..
kostebekyuvasi

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 kostebekyakalama
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        int skor = 0;
        Random rnd = new Random();
        //www.bilisimogretmeni.com
        private void Form1_Load(object sender, EventArgs e)
        {
            for (int i = 0; i < 42; i++)
            {
                Button kostebekyuvasi = new Button();
                kostebekyuvasi.BackColor = Color.Black;
                kostebekyuvasi.ForeColor = Color.White;
                kostebekyuvasi.Width = 50;
                kostebekyuvasi.Height = 50;
                kostebekyuvasi.Text = (i + 1).ToString();
                flowLayoutPanel1.Controls.Add(kostebekyuvasi);
            }
        }
        private void timer1_Tick(object sender, EventArgs e)
        {
            int rastgele = rnd.Next(1, 42);
            //www.bilisimogretmeni.com    
            foreach (var b in flowLayoutPanel1.Controls)
            {
                Button kostebekyuvasi = b as Button;
                if (kostebekyuvasi.Text == rastgele.ToString())
                {
                   
                    kostebekyuvasi.BackColor = Color.Red;
                    kostebekyuvasi.Click += new EventHandler(kostebekyuvasi_Click);
                }
                else
                {
                    kostebekyuvasi.BackColor = Color.Black;
                }
            }
            label2.Text = skor.ToString();
        }
        void kostebekyuvasi_Click(object sender, EventArgs e)
        {
            Button kostebekyuvasi = sender as Button;
            if (kostebekyuvasi.BackColor == Color.Red)
                skor++;
            else
                skor--;
        }
        //www.bilisimogretmeni.com
        private void button1_Click(object sender, EventArgs e)
        {
            if (radioButton1.Checked) timer1.Interval = 1000;
            if (radioButton2.Checked) timer1.Interval = 500;
            if (radioButton3.Checked) timer1.Interval = 200;
            timer1.Start();
        }
        private void button2_Click(object sender, EventArgs e)
        {
            timer1.Stop();
        }
    }
}
Bu İçeriğe Tepkin Ne Oldu?
  • 0
    ba_ar_l_
    Başarılı
  • 4
    gayet_yi
    Gayet İyi
  • 0
    te_ekk_rler
    Teşekkürler
  • 3
    anlamad_m
    Anlamadım
  • 3
    yetersiz
    Yetersiz
İlginizi Çekebilir
Subscribe
Bildir
guest

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.

0 Yorum
Inline Feedbacks
View all comments