using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
namespace chess_khodam
{
public class Bishop : Stone, Istone
{
public Bishop(int i, int j, Color c, Frm_chess f)
: base(i, j, c, f)
{
x = i;
y = j;
color = c;
form = f;
}
#region Istone Members
public bool check(int i, int j)
{
Stone s = new Stone(i, j, (form.btn[i, j].ImageIndex <= 15) ? Color.White : Color.Black, form);
if ((this != s) || (form.btn[i, j].Image == null))
{
if(((form.btn[x,y].ImageIndex<=6) &&(form.btn[i, j].ImageIndex != 28)) || ((form.btn[x,y].ImageIndex>6) &&(form.btn[i, j].ImageIndex != 4)))
{
if((i>x) && (j>y))
{
int m=x;
int k=y;
int check = 0;
for(m=m+1, k=k+1; (m<i)&& (k<j); m++, k++)
{
if (form.btn[m, k].Image == null)
{
check++;
}
}
if ((check == (Math.Abs(x - i + 1))) && (check == (Math.Abs(y - j + 1))))
return true;
}
if ((i > x) && (j < y))
{
int m = x;
int k = y;
int check = 0;
for (m = m + 1, k = k - 1; (m < i) && (k > j); m++, k--)
{
if (form.btn[m, k].Image == null)
{
check++;
}
}
if ((check == (Math.Abs(x - i+1))) && (check == (Math.Abs(y - j-1))))
return true;
}
if ((i < x) && (j < y))
{
int m = x;
int k = y;
int check = 0;
for (m = m - 1, k = k - 1; (m > i) && (k > j); m--, k--)
{
if (form.btn[m, k].Image == null)
{
check++;
}
}
if ((check == (Math.Abs(x - i-1))) && (check == (Math.Abs(y - j-1))))
return true;
}
if ((i < x) && (j > y))
{
int m = x;
int k = y;
int check = 0;
for (m = m - 1, k = k + 1; (m > i) && (k < j); m--, k++)
{
if (form.btn[m, k].Image == null)
{
check++;
}
}
if ((check == (Math.Abs(x - i-1))) && (check == (Math.Abs(y - j+1))))
return true;
}
}
}
return false;
}
public bool Move(int i, int j)
{
if (check(i, j))
{
form.btn[i, j].ImageIndex = form.btn[x, y].ImageIndex;
form.btn[x, y].ImageIndex = -1;
form.player = (form.player == 1) ? 2 : 1;
return true;
}
return false;
}
#endregion
}
}
Castle:
using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
namespace chess_khodam
{
public class Castle : Stone, Istone
{
public Castle(int i, int j, Color c, Frm_chess f):base(i,j,c,f)
{
x = i;
y = j;
color = c;
form = f;
}
#region Istone Members
public bool check(int i, int j)
{
Stone s = new Stone(i, j, (form.btn[i, j].ImageIndex <= 15) ? Color.White : Color.Black,form );
if (((this != s) || (form.btn[i,j].Image ==null )) && ((x == i) && (Math.Abs(y - j) > 0)) || ((y == j) && (Math.Abs(x - i) > 0)))
{
if ((x>i) && (y==j) && ((form.btn[i,j].ImageIndex!=4) || (form.btn[i,j].ImageIndex!=28)) )
{
int check = 0;
int m=x;
for(int k=m-1; k>i; k--)
if ((form.btn[k, y].Image == null))
{
check++;
}
if(check == (Math.Abs(m-i-1)))
return true ;
}
if ((x < i) && (y == j) && ((form.btn[i, j].ImageIndex != 4) || (form.btn[i, j].ImageIndex != 28)))
{
int check = 0;
int m = x;
for (int k = m + 1; k < i; k++)
if ((form.btn[k, y].Image == null))
{
check++;
}
if (check == (Math.Abs(m - i + 1)))
return true;
}
if ((y > j) && (x == i) && ((form.btn[i, j].ImageIndex != 4) || (form.btn[i, j].ImageIndex != 28)))
{
int check = 0;
int m = y;
for (int k = m-1; k > j; k--)
if ((form.btn[x, k].Image == null))
{
check++;
}
if (check == (Math.Abs(m - j - 1)))
return true;
}
if ((y < j) && (x == i) && ((form.btn[i, j].ImageIndex != 4) || (form.btn[i, j].ImageIndex != 28)))
{
int check = 0;
int m = y;
for (int k = m + 1; k < j; k++)
if ((form.btn[x, k].Image == null))
{
check++;
}
if (check == (Math.Abs(m - j +1)))
return true;
}
}
return false;
}
public bool Move(int i, int j)
{
if (check(i, j))
{
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;
using System.Globalization;
namespace chess_khodam
{
public partial class Frm_chess : Form
{
public Button[,] btn = new Button[8, 8];
int x = 0;
int y = 0;
public int player = 1;
int click = 1;
int l = 5;
int top = 5;
public Frm_chess()
{
InitializeComponent();
}
public Castle Cast;
public Pawn pawn;
public Knight kinght;
public Bishop bishop;
public Queen queen;
public King king;
int Get_player(Button B)
{
if ((B.ImageIndex <= 15) && (B.Image != null))
return 1;
else if ((B.ImageIndex >=16) && (B.Image != null))
return 2;
return 0;
}
void set_Highlight(Button B)
{
if (click == 1)
{
B.FlatStyle = FlatStyle.Flat;
B.FlatAppearance.BorderSize = 2;
B.FlatAppearance.BorderColor = Color.Pink;
click = 2;
}
else
{ B.FlatStyle = FlatStyle.Standard; }
}
int index;
void btn_click(object sender, EventArgs e)
{
int i;
int j;
Button B = (Button)sender;
if ((player == Get_player(B)) || (click == 2))
{
if (click == 1)
{
x = ((int)B.Tag) / 8;
y = ((int)B.Tag) % 8;
index = btn[x, y].ImageIndex;
set_Highlight(B);
}
else if(click ==2)
{
click = 1;
Reset_Highlight(btn[x,y]);
i = ((int)B.Tag) / 8;
j = ((int)B.Tag) % 8;
if ((index == 0) || (index == 7) || (index == 24) || (index == 31))
{
Cast=new Castle (x,y,(btn [x,y].ImageIndex <=15)?Color.White :Color.Black ,this);
Cast.Move (i,j);
}
if (((index >= 8) && (index <= 15)) || ((index >= 16) && (index <= 23)))
{
pawn = new Pawn(x, y, (btn[x, y].ImageIndex <= 15) ? Color.White : Color.Black, this);
pawn.Move(i, j);
}
if ((index == 1) || (index == 6) || (index == 25) || (index == 30))
{
kinght = new Knight(x, y, (index <= 6) ? Color.White : Color.Black, this);
kinght.Move(i, j);
}
if ((index == 2) || (index == 5) || (index == 26) || (index == 29))
{
bishop = new Bishop(x, y, (btn[x, y].ImageIndex <= 5) ? Color.White : Color.Black, this);
bishop.Move(i, j);
}
if ((index == 3) || (index == 27))
{
queen = new Queen(x, y, (btn[x, y].ImageIndex == 3) ? Color.White : Color.Black, this);
queen.Move(i, j);
}
if ((index == 4) || (index == 28))
{
king = new King(x, y, (btn[x, y].ImageIndex == 4) ? Color.White : Color.Black, this);
king.Move(i, j);
}
}
}
}
void Reset_Highlight(Button B)
{
B.FlatStyle = FlatStyle.Standard;
B.FlatAppearance.BorderColor = Color.White;
B.FlatAppearance.BorderSize = 1;
}
private void Form1_Load(object sender, EventArgs e)
{
for (int i = 0; i < 8; i++)
{
for (int j = 0; j < 8; j++)
{
btn[i, j] = new Button();
if ((i + j) % 2 == 0)
{ btn[i, j].BackColor = Color.Silver ; }
else
{ btn[i, j].BackColor = Color.White ; }
btn[i, j].Tag = i * 8 + j;
btn[i, j].Width = 70;
btn[i, j].Height = 70;
btn[i, j].Left = l;
btn[i, j].Top = top;
btn[i, j].ImageList = imageList1;
if (i == 0)
{ btn[i, j].ImageIndex = j; }
else if (i == 1)
{ btn[i, j].ImageIndex = j + 8; }
else if (i == 6)
{ btn[i, j].ImageIndex = j + 16; }
else if (i == 7)
{ btn[i, j].ImageIndex = j + 24; }
else
btn[i, j].Image = null;
btn[i, j].Click += new EventHandler(btn_click);
btn[i, j].Parent = this;
l += 70;
}
l = 5;
top += 70;
}
}
}
}
chess_khodam:
using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
namespace chess_khodam
{
public interface Istone
{
bool check(int i, int j);
bool Move(int i, int j);
}
}
King:
using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
namespace chess_khodam
{
public class King : Stone, Istone
{
public King(int i, int j, Color c, Frm_chess f)
: base(i, j, c, f)
{
x = i;
y = j;
color = c;
form = f;
}
#region Istone Members
public bool Move(int i, int j)
{
if (check(i, j))
{
form.btn[i, j].ImageIndex = form.btn[x, y].ImageIndex;
form.btn[x, y].ImageIndex = -1;
form.player = (form.player == 1) ? 2 : 1;
return true;
}
return false;
}
#endregion
}
}
Knight:
using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
namespace chess_khodam
{
public class Knight : Stone, Istone
{
public Knight(int i, int j, Color c, Frm_chess f)
: base(i, j, c, f)
{
x = i;
y = j;
color = c;
form = f;
}
#region Istone Members
public bool Move(int i, int j)
{
if (check(i, j))
{
form.btn[i, j].ImageIndex = form.btn[x, y].ImageIndex;
form.btn[x, y].ImageIndex = -1;
form.player = (form.player == 1) ? 2 : 1;
return true;
}
return false;
}
#endregion
}
}
Pawn:
using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
namespace chess_khodam
{
public class Pawn : Stone, Istone
{
public Pawn(int i, int j, Color c, Frm_chess f)
: base(i, j, c, f)
{
x = i;
y = j;
color = c;
form = f;
}
#region Istone Members
public bool check(int i, int j)
{
Stone s = new Stone(i, j, (form.btn[i, j].ImageIndex <= 15) ? Color.White : Color.Black,form );
if ((this != s) || (form.btn[i, j].Image == null))
{
if ((x == 6) && (y == j) && ((i == (x - 1)) || (i == (x - 2))) && (form.btn[x,y].ImageIndex >=16) && (form.btn[x,y].ImageIndex <=23))
{
if (form.btn[i, j].Image == null)
{
return true;
}
}
if((x!=6) && (i==(x-1)) && (j==y) && (form.btn[x,y].ImageIndex>=16) && (form.btn[x,y].ImageIndex<=23))
{
if (form.btn[i, j].Image == null)
{
public bool Move(int i, int j)
{
if (check(i, j))
{
form.btn[i, j].ImageIndex = form.btn[x, y].ImageIndex;
form.btn[x, y].ImageIndex =-1;
form.player = (form.player == 1) ? 2 : 1;
return true;
}
return false;
}
#endregion
}
}
Queen:
using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
namespace chess_khodam
{
public class Queen : Stone, Istone
{
public Queen(int i, int j, Color c, Frm_chess f)
: base(i, j, c, f)
{
x = i;
y = j;
color = c;
form = f;
}
#region Istone Members
public bool check(int i, int j)
{
Stone s = new Stone(i, j, (form.btn[i, j].ImageIndex <= 15) ? Color.White : Color.Black, form);
if ((this != s) || (form.btn[i,j].Image ==null ))
{
if (((this != s) || (form.btn[i, j].Image == null)) && ((x == i) && (Math.Abs(y - j) > 0)) || ((y == j) && (Math.Abs(x - i) > 0)))
{
if ((x > i) && (y == j) && ((form.btn[i, j].ImageIndex != 4) || (form.btn[i, j].ImageIndex != 28)))
{
int check = 0;
int m = x;
for (int k = m - 1; k > i; k--)
if ((form.btn[k, y].Image == null))
{
check++;
}
if (check == (Math.Abs(m - i - 1)))
return true;
}
if ((x < i) && (y == j) && ((form.btn[i, j].ImageIndex != 4) || (form.btn[i, j].ImageIndex != 28)))
{
int check = 0;
int m = x;
for (int k = m + 1; k < i; k++)
if ((form.btn[k, y].Image == null))
{
check++;
}
if (check == (Math.Abs(m - i + 1)))
return true;
}
if ((y > j) && (x == i) && ((form.btn[i, j].ImageIndex != 4) || (form.btn[i, j].ImageIndex != 28)))
{
int check = 0;
int m = y;
for (int k = m - 1; k > j; k--)
if ((form.btn[x, k].Image == null))
{
check++;
}
if (check == (Math.Abs(m - j - 1)))
return true;
}
if ((y < j) && (x == i) && ((form.btn[i, j].ImageIndex != 4) || (form.btn[i, j].ImageIndex != 28)))
{
int check = 0;
int m = y;
for (int k = m + 1; k < j; k++)
if ((form.btn[x, k].Image == null))
{
check++;
}
if (check == (Math.Abs(m - j + 1)))
return true;
}
}
if ((this != s) || (form.btn[i, j].Image == null))
{
if (((form.btn[x, y].ImageIndex <= 6) && (form.btn[i, j].ImageIndex != 28)) || ((form.btn[x, y].ImageIndex > 6) && (form.btn[i, j].ImageIndex != 4)))
{
if ((i > x) && (j > y))
{
int m = x;
int k = y;
int check = 0;
for (m = m + 1, k = k + 1; (m < i) && (k < j); m++, k++)
{
if (form.btn[m, k].Image == null)
{
check++;
}
}
if ((check == (Math.Abs(x - i + 1))) && (check == (Math.Abs(y - j + 1))))
return true;
}
if ((i > x) && (j < y))
{
int m = x;
int k = y;
int check = 0;
for (m = m + 1, k = k - 1; (m < i) && (k > j); m++, k--)
{
if (form.btn[m, k].Image == null)
{
check++;
}
}
if ((check == (Math.Abs(x - i + 1))) && (check == (Math.Abs(y - j - 1))))
return true;
}
if ((i < x) && (j < y))
{
int m = x;
int k = y;
int check = 0;
for (m = m - 1, k = k - 1; (m > i) && (k > j); m--, k--)
{
if (form.btn[m, k].Image == null)
{
check++;
}
}
if ((check == (Math.Abs(x - i - 1))) && (check == (Math.Abs(y - j - 1))))
return true;
}
if ((i < x) && (j > y))
{
int m = x;
int k = y;
int check = 0;
for (m = m - 1, k = k + 1; (m > i) && (k < j); m--, k++)
{
if (form.btn[m, k].Image == null)
{
check++;
}
}
if ((check == (Math.Abs(x - i - 1))) && (check == (Math.Abs(y - j + 1))))
return true;
}
}
}
}
return false;
}
public bool Move(int i, int j)
{
if (check(i, j))
{
form.btn[i, j].ImageIndex = form.btn[x, y].ImageIndex ;
form.btn[x, y].ImageIndex = -1;
form.player = (form.player == 1) ? 2 : 1;
return true;
}
return false;
}
#endregion
}
}
Stone:
using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
namespace chess_khodam
{
public class Stone
{
public int x;
public int y;
public Color color;
public Frm_chess form;
public Stone(int i, int j, Color c, Frm_chess f)
{
x = i;
y = j;
color = c;
form = f;
}
public static bool operator ==(Stone s1, Stone s2)
{ return s1.color == s2.color; }
public static bool operator !=(Stone s1, Stone s2)
{ return s1.color != s2.color; }
}
}
خداروشکر.....انشالله که اینطور باشه ......منتهی باید یادآور بشم که این برنامه متعلق به ** دیگه ای هست و شما باید ممنون خانم main باشین ایشون وقت گذاشتن این برنامه رو نداشتن و من جاشون این برنامه رو توی فروم فرستادم
انشالله به دردتون بخوره ولی لطفا بازم خواهش دارم ایده بگیرین..........
نوشته اصلی توسط My_LoVe_IRAN
مرسی از اینکه تقلب میدین
نه اشتباه نکنید...این نباید تقلب باشه.........متاسفانه بنده چند شب پیش متوجه شدم که برخی بچه ها پروژشون شطرنجه....اگه میدونستم اصلا پروژه رو آپلود نمیکردم و فقط یک سری تیکه کد برای ایده میفرستادم...........خواهش میکنم خودتونو گول نزنین و ایده بگیرین...........پس فردا بازار کار نمیگن چی حفظ کردی بیا انجام بده میگن چی یاد داری بیا از دونسته هات استفاده کن
.
.
.
.
.
.
حالا دیگه با خودتونه، خواه پند گیر خواه..........
بااحترام،NIIT
علاقه مندی ها (Bookmarks)