|
Sitenize Ekleyin!
Sitenizde "Son Eklenen 10 Visual Basic Yazısı"'nı göstermek ve içeriğini zenginleştirmek için buraya tıklayınız.
Vbasicmaster.com'a link verin! Aşağıdaki minik banneri sitenize eklemek için tıklayın!
|
Çevrimiçi Üyeler
kenanyaz feb123

Üye Sayısı:     
Ziyaretçiler nerede?
| |
|
"stranç oyunu"
#endregion
using System; using System.Collections; using System.Drawing;
abstract class tas { public tas(byte x, byte y) { this.x = x; this.y = y; timer = false; xduzeltme = anaForm.xduzeltme; yduzeltme = anaForm.yduzeltme; } public byte YER { get { return (byte)(this.x+this.y*8); } }
public enum TASTURU : byte { BOS, PIYON, KALE, AT, FIL, SAH, VEZIR }; public enum TASRENGI : byte { BEYAZ, SIYAH }
public int xduzeltme; public int yduzeltme;
public TASTURU tasTuru; public TASRENGI tasRengi; public byte x,y; public bool timer; public int saydamlik=0; public bool maviVEYAkirmizi=true;
abstract public ArrayList yollari(); abstract public bool yiyebilir_mi(byte yer); abstract public bool gidebilir_mi(byte yer);
public void ciz() { //ÇİZİM İÇİN GEREKLİ KOORDİNATLARIN HESAPLANMASI int xkoord = x * 80 + xduzeltme; int ykoord = y * 80 + yduzeltme;
//TAHTANIN BOŞ ALANININ ÇİZİMİ if ( (x + y) % 2 == 0 ) anaForm.g.DrawImage(resimler.imgDizisi[0], new Rectangle(xkoord, ykoord, 80, 80)); else anaForm.g.DrawImage(resimler.imgDizisi[1], new Rectangle(xkoord, ykoord, 80, 80));
//MAVİ VEYA KIRMIZI RENKTE ARKA BÖLÜMÜN ÇİZİMİ if (this.maviVEYAkirmizi) anaForm.g.FillRectangle(new SolidBrush(Color.FromArgb(saydamlik, 0, 0, 255)), new Rectangle(xkoord + 2, ykoord + 2, 76, 76)); else anaForm.g.FillRectangle(new SolidBrush(Color.FromArgb(saydamlik, 255, 0, 0)), new Rectangle(xkoord + 2, ykoord + 2, 76, 76));
//TAŞ TÜRÜ BOŞ İSE BU KADAR İŞ YETERLİ if (this.tasTuru == TASTURU.BOS) return;
//TAŞ TÜRÜ VE RENGİNE GÖRE DOĞRU RESİMLERİN ÇİZİMİ if (this.tasRengi == TASRENGI.BEYAZ) anaForm.g.DrawImage(resimler.imgDizisi[(byte)this.tasTuru * 2], new Rectangle(xkoord, ykoord, 80, 80)); else anaForm.g.DrawImage(resimler.imgDizisi[(byte)this.tasTuru * 2 + 1], new Rectangle(xkoord, ykoord, 80, 80)); } }
class bostas : tas { public bostas(byte x, byte y) : base(x,y) { tasTuru = TASTURU.BOS; } public override ArrayList yollari() { return new ArrayList(); } public override bool yiyebilir_mi(byte yer) { ArrayList al = this.yollari(); int i, sayac = al.Count;
for (i = 0; i < sayac; i++) { if ((byte)(al[i]) == yer) return true; }
return false; } public override bool gidebilir_mi(byte yer) { return this.yiyebilir_mi(yer); } }
class piyon : bostas { public piyon(byte x, byte y) : base(x,y) { tasTuru = TASTURU.PIYON; } public override ArrayList yollari() { int yon; if (this.tasRengi == TASRENGI.BEYAZ) yon = 1; else yon = -1;
ArrayList al = new ArrayList(); bostas b;
int koodr = this.x + this.y * 8;
if (this.x != 0) { b = (bostas)anaForm.oyunSahasi[koodr - 1 + yon * 8]; if ((b.tasTuru != TASTURU.BOS) && (b.tasRengi != this.tasRengi)) al.Add((byte)(koodr - 1 + yon * 8)); } if (this.x != 7) { b = (bostas)anaForm.oyunSahasi[koodr + 1 + yon * 8]; if ((b.tasTuru != TASTURU.BOS) && (b.tasRengi != this.tasRengi)) al.Add((byte)(koodr + 1 + yon * 8)); }
b = (bostas)anaForm.oyunSahasi[koodr + yon * 8]; if( b.tasTuru == TASTURU.BOS ) { al.Add( (byte)(koodr+yon*8) );
if( (yon == 1 && this.y == 1) || (yon == -1 && this.y == 6) ) { b = (bostas)anaForm.oyunSahasi[koodr + yon * 16]; if( b.tasTuru == TASTURU.BOS ) al.Add( (byte)(koodr + yon * 16) ); } }
return al; } public override bool yiyebilir_mi(byte yer) { int yon; if ( this.tasRengi == TASRENGI.BEYAZ ) yon = 1; else yon = -1;
int koodr = this.x + this.y * 8;
if ( this.x != 0 && koodr - 1 + yon * 8 == yer ) return true; if ( this.x != 7 && koodr + 1 + yon * 8 == yer) return true;
return false; } public override bool gidebilir_mi(byte yer) { int yon; if (this.tasRengi == TASRENGI.BEYAZ) yon = 1; else yon = -1;
int koodr = this.x + this.y * 8;
bostas b = (bostas)anaForm.oyunSahasi[koodr + yon * 8]; if (b.tasTuru == TASTURU.BOS) { if (koodr + yon * 8 == yer) return true;
b = (bostas)anaForm.oyunSahasi[koodr + yon * 16];
if (b.tasTuru == TASTURU.BOS) { if ((yon == 1 && this.y == 1) || (yon == -1 && this.y == 6)) { if (koodr + yon * 16 == yer) return true; } } }
return false; } }
class kale : bostas { public kale(byte x, byte y) : base(x, y) { tasTuru = TASTURU.KALE ; } public override ArrayList yollari() { ArrayList al = new ArrayList(); bostas b; byte koodr; byte xx, yy;
xx = this.x; yy = this.y; for (int i = 1; xx + i < 8; i++) { koodr = (byte)(xx + i + yy * 8); b = (bostas)anaForm.oyunSahasi[koodr]; if (b.tasTuru == TASTURU.BOS) { al.Add((byte)(koodr)); } else { if (b.tasRengi != this.tasRengi) { al.Add((byte)(koodr)); } break; } }
xx = this.x; yy = this.y; for (int i = 1; yy + i < 8; i++) { koodr = (byte)(xx + (yy+i) * 8); b = (bostas)anaForm.oyunSahasi[koodr]; if (b.tasTuru == TASTURU.BOS) { al.Add((byte)(koodr)); } else { if (b.tasRengi != this.tasRengi) { al.Add((byte)(koodr)); } break; } }
xx = this.x; yy = this.y; for (int i = -1; xx + i >= 0; i--) { koodr = (byte)(xx + i + yy * 8); b = (bostas)anaForm.oyunSahasi[koodr]; if (b.tasTuru == TASTURU.BOS) { al.Add((byte)(koodr)); } else { if (b.tasRengi != this.tasRengi) { al.Add((byte)(koodr)); } break; } }
xx = this.x; yy = this.y; for (int i = -1; yy + i >= 0; i--) { koodr = (byte)(xx + (yy + i) * 8); b = (bostas)anaForm.oyunSahasi[koodr]; if (b.tasTuru == TASTURU.BOS) { al.Add((byte)(koodr)); } else { if (b.tasRengi != this.tasRengi) { al.Add((byte)(koodr)); } break; } }
return al; } }
class at : bostas { public at(byte x, byte y) : base(x, y) { tasTuru = TASTURU.AT ; } public override ArrayList yollari() { ArrayList al = new ArrayList(); bostas b; byte koodr; int xx=0, yy=0;
int s = 0; while (true) { switch (s) { case 0: xx = this.x + 1; yy = this.y + 2; break; case 1: xx = this.x + 1; yy = this.y - 2; break; case 2: xx = this.x + 2; yy = this.y + 1; break; case 3: xx = this.x + 2; yy = this.y - 1; break; case 4: xx = this.x - 1; yy = this.y + 2; break; case 5: xx = this.x - 1; yy = this.y - 2; break; case 6: xx = this.x - 2; yy = this.y + 1; break; case 7: xx = this.x - 2; yy = this.y - 1; break; } if ((xx >= 0 && xx <= 7) && (yy >= 0 && yy <= 7)) { koodr = (byte)(xx + yy * 8); b = (bostas)anaForm.oyunSahasi[koodr]; if ( b.tasTuru == TASTURU.BOS ) al.Add((byte)(koodr)); else if ( b.tasRengi != this.tasRengi ) al.Add((byte)(koodr)); } if (s == 7) break; s++; } return al; } }
class fil : bostas { public fil(byte x, byte y) : base(x, y) { tasTuru = TASTURU.FIL ; } public override ArrayList yollari() { ArrayList al = new ArrayList(); bostas b; byte koodr; byte xx, yy;
xx = this.x; yy = this.y; for (int i = 1; xx + i < 8 && yy + i < 8; i++) { koodr = (byte)(xx + i + (yy + i) * 8); b = (bostas)anaForm.oyunSahasi[koodr]; if (b.tasTuru == TASTURU.BOS) { al.Add((byte)(koodr)); } else { if (b.tasRengi != this.tasRengi) { al.Add((byte)(koodr)); } break; } }
xx = this.x; yy = this.y; for (int i = 1; xx + i < 8 && yy - i >= 0; i++) { koodr = (byte)(xx + i + (yy - i) * 8); b = (bostas)anaForm.oyunSahasi[koodr]; if (b.tasTuru == TASTURU.BOS) { al.Add((byte)(koodr)); } else { if (b.tasRengi != this.tasRengi) { al.Add((byte)(koodr)); } break; } }
xx = this.x; yy = this.y; for (int i = 1; xx - i >= 0 && yy - i >= 0; i++) { koodr = (byte)(xx - i + (yy - i) * 8); b = (bostas)anaForm.oyunSahasi[koodr]; if (b.tasTuru == TASTURU.BOS) { al.Add((byte)(koodr)); } else { if (b.tasRengi != this.tasRengi) { al.Add((byte)(koodr)); } break; } }
xx = this.x; yy = this.y; for (int i = 1; xx - i >= 0 && yy + i < 8; i++) { koodr = (byte)(xx - i + (yy + i) * 8); b = (bostas)anaForm.oyunSahasi[koodr]; if (b.tasTuru == TASTURU.BOS) { al.Add((byte)(koodr)); } else { if (b.tasRengi != this.tasRengi) { al.Add((byte)(koodr)); } break; } }
return al ; } }
class sah : bostas { public sah(byte x, byte y) : base(x, y) { tasTuru = TASTURU.SAH ; } public ArrayList yollar() { ArrayList al = new ArrayList(); bostas b; byte koodr; int xx = 0, yy = 0;
int s = 0; while (true) { switch (s) { case 0: xx = this.x + 1; yy = this.y + 0; break; case 1: xx = this.x + 1; yy = this.y - 1; break; case 2: xx = this.x + 0; yy = this.y - 1; break; case 3: xx = this.x - 1; yy = this.y - 1; break; case 4: xx = this.x - 1; yy = this.y + 0; break; case 5: xx = this.x - 1; yy = this.y + 1; break; case 6: xx = this.x + 0; yy = this.y + 1; break; case 7: xx = this.x + 1; yy = this.y + 1; break; } if ((xx >= 0 && xx <= 7) && (yy >= 0 && yy <= 7)) { koodr = (byte)(xx + yy * 8); b = (bostas)anaForm.oyunSahasi[koodr]; if (b.tasTuru == TASTURU.BOS) al.Add((byte)(koodr)); else if (b.tasRengi != this.tasRengi) al.Add((byte)(koodr)); } if (s == 7) break; s++; }
return al; } public override ArrayList yollari() { ArrayList al = this.yollar();
bostas b = new bostas(0, 0);
if (this.tasRengi == TASRENGI.BEYAZ) { if (anaForm.rokYapabilir1) { b=(bostas)anaForm.oyunSahasi[4]; if (b.tasTuru == TASTURU.BOS) { b = (bostas)anaForm.oyunSahasi[5]; if (b.tasTuru == TASTURU.BOS) { b = (bostas)anaForm.oyunSahasi[6]; if (b.tasTuru == TASTURU.BOS) { b = (bostas)anaForm.oyunSahasi[7]; if (b.tasTuru == TASTURU.KALE) { al.Add((byte)6); } } } } } if (anaForm.rokYapabilir2) { b = (bostas)anaForm.oyunSahasi[2]; if (b.tasTuru == TASTURU.BOS) { b = (bostas)anaForm.oyunSahasi[1]; if (b.tasTuru == TASTURU.BOS) { b = (bostas)anaForm.oyunSahasi[0]; if (b.tasTuru == TASTURU.KALE) { al.Add((byte)1); } } } } } else { if (anaForm.rokYapabilir3) { b = (bostas)anaForm.oyunSahasi[60]; if (b.tasTuru == TASTURU.BOS) { b = (bostas)anaForm.oyunSahasi[61]; if (b.tasTuru == TASTURU.BOS) { b = (bostas)anaForm.oyunSahasi[62]; if (b.tasTuru == TASTURU.BOS) { b = (bostas)anaForm.oyunSahasi[63]; if (b.tasTuru == TASTURU.KALE) { al.Add((byte)62); } } } } } if (anaForm.rokYapabilir4) { b = (bostas)anaForm.oyunSahasi[58]; if (b.tasTuru == TASTURU.BOS) { b = (bostas)anaForm.oyunSahasi[57]; if (b.tasTuru == TASTURU.BOS) { b = (bostas)anaForm.oyunSahasi[56]; if (b.tasTuru == TASTURU.KALE) { al.Add((byte)57); } } } } }
return al; } public override bool yiyebilir_mi(byte yer) { ArrayList al = this.yollar(); int i, sayac = al.Count;
for (i = 0; i < sayac; i++) { if ((byte)(al[i]) == yer) return true; }
return false; } public override bool gidebilir_mi(byte yer) { ArrayList al = this.yollari(); int i, sayac = al.Count;
for (i = 0; i < sayac; i++) { if ((byte)(al[i]) == yer) return true; }
return false; } }
class vezir : bostas { public vezir(byte x, byte y) : base(x, y) { tasTuru = TASTURU.VEZIR ; } public override ArrayList yollari() { ArrayList al1=new ArrayList(), al2=new ArrayList();
fil f = new fil(this.x, this.y); f.tasTuru = this.tasTuru; f.tasRengi = this.tasRengi; al1 = f.yollari();
kale k = new kale(this.x, this.y); k.tasTuru = this.tasTuru; k.tasRengi = this.tasRengi; al2 = k.yollari();
for (int i = 0; i < al2.Count; i++) al1.Add(((byte)al2[i]));
return al1; } }
konyalim42 | 21.10.2009 13:42
|
internette chess engine şeklinde arattırırsan open source olarak çok fazla kod da bulabilirsin.
xxxmcs | 17.01.2010 12:32 |
|
Tüm Kategoriler |
C/Visual C++/C# |
C/Visual C++/C# 1. Sayfa
|
|