Kaydol:
Kayıt Yorumları
(
Atom
)
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 C_Sharp_Form_Var_Misin_Yok_Musun_Oyunu { public partial class Form1 : Form { const int kutuSayisi = 24; const int maxOdulTutari = 240000; Button oncekiButon = null; int rasgeneSayi; int[] kutular; int[] oduller; List< int > kutuNumaralar; public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { //var mısın yok musun oyunu için 24 kutum olsun istenirse arttırılabilir kutular = new int[kutuSayisi]; oduller = new int[kutuSayisi]; kutuNumaralar = new List(); //Oyunu başlat yeniOyunBaslat(); } //Bu metot ile oluşturduğum 24 kutuyu kutular dizisine rasgele ekleyeceğim. //Böylece ödülleri rasgele dağıtmış olacağım. private void odulleriKutularaRasgeleDagit() { Random rnd = new Random(); for (int i = 0; i < kutuSayisi; i++) { //0 ile kutuSayisi arasinda rasgele kutu seç rasgeneSayi = rnd.Next(0, kutuNumaralar.Count); kutular[i] = kutuNumaralar[rasgeneSayi]; kutuNumaralar.Remove(kutuNumaralar[rasgeneSayi]); } } //ödülleri küçükten büyüğe doğru sırası ile oduller dizisine ekliyorum. private void odulleriDoldur() { for (int i = 0; i < kutuSayisi; i++) { oduller[i] = (maxOdulTutari / kutuSayisi) * i; } } //Kutu nuramaraları sırasıyla oluşturup kutuNumarala listine ekliyorum private void kutuNumaralaeiOlustur() { for (int i = 0; i < kutuSayisi; i++) { kutuNumaralar.Add(i); } } //Bu metot ile kullanılacak olan kutuları dinamik olarak forma ekliyorum. //Kutuları butonlardan oluşturdum. Butona tıklanınca bu butonun daha önce //atadığım ödül miktarını gösteceğim. Eğer miktar büyükse arka plan kırmızı //eğer ödül miktarı küçük ise arka plan mavi renk olarak göstereceğim. //ilk forma butonlar yüklendiğinde beyaz renk ile yerleştireceğim. private void gorselButonlariOlusturYerlestir() { int a = 50; List< Button > gorselKutular = new List< Button >(); for (int i = 0; i < kutuSayisi; i++) { Button gorselKutu = new Button(); gorselKutu.Location = new System.Drawing.Point(75 * (i % 6) + 15, 50 * (i / 6) + 15 + a); gorselKutu.Name = i.ToString(); gorselKutu.BackColor = Color.White; gorselKutu.FlatStyle = FlatStyle.Flat; gorselKutu.Size = new System.Drawing.Size(75, 50); gorselKutu.TabIndex = 0; gorselKutu.Text = ""; gorselKutu.UseVisualStyleBackColor = true; gorselKutu.Click += new EventHandler(gorselKutu_Click); this.Controls.Add(gorselKutu); } } //Kutuları açmak için butona tıklama olayı tetiklenecek. Burada butona atanan //değer butonun text kısmına yazdırağım. Arka plan rengini de bu kutudaki //ödül miktarının büyüklüğüne göre kırmızı veya mavi olarak göstereceğim void gorselKutu_Click(object sender, EventArgs e) { Button gorselKutu = sender as Button; int deger = oduller[kutular[int.Parse(gorselKutu.Name)]]; gorselKutu.Text = deger.ToString(); if (deger <= maxOdulTutari / 2) gorselKutu.BackColor = Color.Blue; else gorselKutu.BackColor = Color.Red; if (oncekiButon != null) { oncekiButon.FlatAppearance.BorderSize = 1; } gorselKutu.FlatAppearance.BorderSize = 5; oncekiButon = gorselKutu; } //Oyuna yeniden başlamak için bu butonu kullanacağım private void btnYenidenBasla_Click(object sender, EventArgs e) { yeniOyunBaslat(); } private void kutulariTemizle() { this.Controls.Clear(); this.Controls.Add(this.btnYenidenBasla); } private void yeniOyunBaslat() { kutuNumaralar.Clear(); kutulariTemizle(); kutuNumaralaeiOlustur(); odulleriDoldur(); odulleriKutularaRasgeleDagit(); gorselButonlariOlusturYerlestir(); } } }
Hiç yorum yok :
Yorum Gönder