Favorilerine Ekle | Giriş Sayfan Yap | Tavsiye Et

 

Kurs Tanıtım Sayfası | Süper Üye Kimdir? | Menü Tasarımı Konulu Örnek Ders
09.09.2010 Kod İndir| Hazır Kodlar | Makaleler| İpuçları | VB .NET Kursu | Dersler | Forum 38.107.191.81   
    Alt Bölümler | Servisler
    Merhaba Misafir
    Anasayfa » Forum Anasayfa » Kategori: C/Visual C++/C#
Üye Girişi
Kullanıcı Adı:  
Şifre : 
Kaydet ?
Siteden tam olarak faydalanabilmek için üye olmalısınız.
Unuttuğunuz şifrenizi öğrenebilmek için kayıt sırasında verdiğiniz Hatırlatma Cevabı'nı bilmeniz gereklidir.
Şifre hatırlatma işlevini sadece 3 defa kullanma hakkınız vardır.
Kullanıcı adını ve şifresini unutan üyelere email ile yardım verilmez.

Aktivasyon Gelmedi mi?Aktivasyon mesajınız email adresinize gelmedi mi?
Buraya tıklayarak bir kez daha aktivasyon mesajı gönderilmesini sağlayabilirsiniz.
Lütfen email hesabınızın BULK ve SPAM klasörlerini de kontrol ediniz.
Rastgele Makale

dos tan setup ?ifresi s?f?rlama

Yazar: demiralican
setap ?ifrelerini dos ortam?ndan s?f?rlaya bilirsiniz


Email Girişi
Webmasterlar
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;
    }
}

Üyeye Özelden Mesaj At konyalim42 | 21.10.2009 13:42

internette chess engine şeklinde arattırırsan open source olarak çok fazla kod da bulabilirsin.

Üyeye Özelden Mesaj At xxxmcs | 17.01.2010 12:32

Tüm Kategoriler | C/Visual C++/C# | C/Visual C++/C#  1. Sayfa
© Hakan Ersöz 2000-2010 | Üyelik Sözleşmesi | | Ödeme Bildirimi
Sitemizden yenilikleri hemen öğrenin, pop upları engelleyin, chat yapın... ToolBarımızı indirin:
Vasicmaster Toolbar'ı indirin