private void buttonYukle_Click(object sender, EventArgs e) { int satir = int.Parse (textBoxSatir.Text); int kolon = int.Parse(textBoxKolon.Text);
for (int i = 0; i < satir; i++) { for (int j = 0; j < kolon; j++) {
TextBox yenitextBox = new TextBox(); yenitextBox.Location = new System.Drawing.Point(i * 120 + 100, 100 + j * 30); yenitextBox.Name = i + " * " + j; yenitextBox.Size = new System.Drawing.Size(100, 20); yenitextBox.TabIndex = 1;
this.Controls.Add(yenitextBox); } } } TextBox[,] alanlar;
private void Form_oyun_Load(object sender, EventArgs e) { alanlar = new TextBox[Form_giriş.satır_sayısı,Form_giriş.sütun_sayısı];
for (int i = 0; i < Form_giriş.satır_sayısı; i++) { for (int j = 0; j < Form_giriş.sütun_sayısı; j++) {
TextBox yenitextBox = new TextBox(); yenitextBox.Location = new System.Drawing.Point(i * 25 + 100, 100 + j * 25); yenitextBox.Name = i + " * " + j; yenitextBox.Size = new System.Drawing.Size(20, 20); yenitextBox.TabIndex = 1; yenitextBox.BorderStyle = BorderStyle.FixedSingle; yenitextBox.KeyPress += new KeyPressEventHandler(yenitextBox_KeyPress);
this.Controls.Add(yenitextBox); alanlar [i,j] = yenitextBox; } } }
void yenitextBox_KeyPress(object sender, KeyPressEventArgs e) { TextBox text =sender as TextBox; if (text.TextLength > 1) e.Handled = true;
else {
/// sos pyunu algoritması } }21 Mayıs 2014 18:17 tarihinde Muhammet Rıza Rızaoğlu yazdı:Hocam asıl yapmak istediğim bir sos oyunu.Numericupdownlar ile girilen matris boyutu kadar textbox oluşması tamam.
Bu oluşan textboxlarla sos oyunu yapmam lazım. O yüzden textboxlara erişip kontrol etmem lazım.
Ekte projeyi gönderiyorum.Yardımcı olabilirseniz çok sevinirim...
Teşekkürler21 Mayıs 2014 18:08 tarihinde c sharp uygulamalar yazdı:
for (int i = 0; i < Form_giriş.satır_sayısı; i++) { for (int j = 0; j < Form_giriş.sütun_sayısı; j++) { bool sosOlduMu = false;
try { if (alanlar[i, j].Text == "S" && alanlar[i, j + 1].Text == "O" && alanlar[i, j + 2].Text == "S") sosOlduMu = true; } catch (Exception) { } try { if (alanlar[i, j].Text == "S" && alanlar[i, j - 1].Text == "O" && alanlar[i, j - 2].Text == "S") sosOlduMu = true; } catch (Exception) { } try { if (alanlar[i, j].Text == "S" && alanlar[i + 1, j].Text == "O" && alanlar[i + 2, j].Text == "S") sosOlduMu = true; } catch (Exception) { } try { if (alanlar[i, j].Text == "S" && alanlar[i - 1, j].Text == "O" && alanlar[i - 2, j].Text == "S") sosOlduMu = true; } catch (Exception) { } try { if (alanlar[i, j].Text == "S" && alanlar[i + 1, j + 1].Text == "O" && alanlar[i + 2, j + 2].Text == "S") sosOlduMu = true; } catch (Exception) { } try { if (alanlar[i, j].Text == "S" && alanlar[i + 1, j - 1].Text == "O" && alanlar[i + 2, j - 2].Text == "S") sosOlduMu = true; } catch (Exception) { } try { if (alanlar[i, j].Text == "S" && alanlar[i - 1, j - 1].Text == "O" && alanlar[i - 2, j - 2].Text == "S") sosOlduMu = true; } catch (Exception) { } try { if (alanlar[i, j].Text == "S" && alanlar[i - 1, j + 1].Text == "O" && alanlar[i - 2, j + 2].Text == "S")
sosOlduMu = true; } catch (Exception) { }
if (sosOlduMu) { break; MessageBox.Show("SOS"); } } }Hocam oyunu algoritma kısmını şöyle yaptım ama dizinin dışına çıkıyor.Bunu nasıl engelleyebilirim?
for (int i = 0; i < Form_giriş.satır_sayısı; i++){for (int j = 0; j < Form_giriş.sütun_sayısı; j++){
if((alanlar[i,j].Text=="S" && alanlar[i,j+1].Text=="O" && alanlar[i,j+2].Text=="S")||(alanlar[i,j].Text=="S" && alanlar[i,j-1].Text=="O" && alanlar[i,j-2].Text=="S")||(alanlar[i,j].Text=="S" && alanlar[i+1,j].Text=="O" && alanlar[i+2,j].Text=="S")||(alanlar[i,j].Text=="S" && alanlar[i-1,j].Text=="O" && alanlar[i-2,j].Text=="S")||(alanlar[i,j].Text=="S" && alanlar[i+1,j+1].Text=="O" && alanlar[i+2,j+2].Text=="S")||(alanlar[i,j].Text=="S" && alanlar[i+1,j-1].Text=="O" && alanlar[i+2,j-2].Text=="S")||(alanlar[i,j].Text=="S" && alanlar[i-1,j-1].Text=="O" && alanlar[i-2,j-2].Text=="S")||(alanlar[i,j].Text=="S" && alanlar[i-1,j+1].Text=="O" && alanlar[i-2,j+2].Text=="S")){MessageBox.Show("SOS");}}}
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 sos{ public partial class Form_oyun : Form {
int birinci_oyuncu = 0, ikinci_oyuncu = 0; public Form_oyun() { InitializeComponent(); } TextBox[,] alanlar; private void Form_oyun_Load(object sender, EventArgs e) {
alanlar = new TextBox[Form_giriş.satır_sayısı, Form_giriş.sütun_sayısı];
for (int i = 0; i < Form_giriş.satır_sayısı; i++) { for (int j = 0; j < Form_giriş.sütun_sayısı; j++) {
TextBox yenitextBox = new TextBox(); yenitextBox.Location = new System.Drawing.Point(100 + j * 25, i * 25 + 100); yenitextBox.Name = i + " * " + j; yenitextBox.Size = new System.Drawing.Size(20, 20); yenitextBox.TabIndex = 1; yenitextBox.BorderStyle = BorderStyle.FixedSingle; yenitextBox.KeyUp += new KeyEventHandler(yenitextBox_KeyUp); this.Controls.Add(yenitextBox); alanlar[i, j] = yenitextBox;
} } }
void yenitextBox_KeyUp(object sender, KeyEventArgs e) { this.Focus(); TextBox text = sender as TextBox; label1.Focus();
if (text.TextLength > 1) text.Text = text.Text.Substring(0, 1); else { text.Text = text.Text.ToUpper(); MessageBox.Show("SOS :" + text.Text + " OYUNCUSU OYUNUU KAZANDI.", "TEBRİKLER", MessageBoxButtons.OK, MessageBoxIcon.Information); break; } } } } } }
}