为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

中国象棋(代码)

2013-05-20 35页 doc 331KB 34阅读

用户头像

is_473793

暂无简介

举报
中国象棋(代码)中国象棋(web版 源代码) 程序: using System; using System.Collections; using System.Configuration; using System.Data; using System.Linq; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControl...
中国象棋(代码)
中国象棋(web版 源代码) 程序: using System; using System.Collections; using System.Configuration; using System.Data; using System.Linq; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Xml.Linq; using System.Data.SqlClient; namespace WebApplication1 { public partial class WebForm1 : System.Web.UI.Page { int tru = 20; int fals = 40; public ImageButton[,] _Image=new ImageButton[11,10]; //将上一次点击点的坐标保存到数据库中的lastx和lasty public void SaveToLast() { if (Session["user"].ToString() == "red" && _GetUserState(Session["user"].ToString()) == 20) { int x, y, lastx, lasty; x = Getpointx(); y = Getpointy(); lastx = x; lasty = y; Updatalastx(lastx); Updatalasty(lasty); } if (Session["user"].ToString() == "black" && _GetUserState(Session["user"].ToString()) == 20) { int x, y, lastx, lasty; x = Getpointx(); y = Getpointy(); lastx = x; lasty = y; Updatalastx(lastx); Updatalasty(lasty); } } //将棋盘上所有棋子图片显示到棋盘上 private void _Drawqizi() { //_Init(); int i,j,k; if (_GetUserState("red") != 0 && _GetUserState("black") != 0) { if (Session["user"].ToString() == "red") { for (i = 1; i <= 10; i++) for (j = 1; j <= 9; j++) { k = _GetDataQipan(i, j); _Image[i, j].ImageUrl = _GetImageAdd(k); } } if (Session["user"].ToString() == "black") { for (i = 1; i <= 10; i++) for (j = 1; j <= 9; j++) { k = _GetDataQipan(i, j); _Image[11 - i, 10 - j].ImageUrl = _GetImageAdd(k); } } } //初始化:对_Image[,]赋值,对ImageButton进行编号 private void _Init() { _Image[1, 1] = ImageButton1; _Image[1, 2] = ImageButton2; _Image[1, 3] = ImageButton3; _Image[1, 4] = ImageButton4; _Image[1, 5] = ImageButton5; _Image[1, 6] = ImageButton6; _Image[1, 7] = ImageButton7; _Image[1, 8] = ImageButton8; _Image[1, 9] = ImageButton9; _Image[2, 1] = ImageButton11; _Image[2, 2] = ImageButton12; _Image[2, 3] = ImageButton13; _Image[2, 4] = ImageButton14; _Image[2, 5] = ImageButton15; _Image[2, 6] = ImageButton16; _Image[2, 7] = ImageButton17; _Image[2, 8] = ImageButton18; _Image[2, 9] = ImageButton19; _Image[3, 1] = ImageButton21; _Image[3, 2] = ImageButton22; _Image[3, 3] = ImageButton23; _Image[3, 4] = ImageButton24; _Image[3, 5] = ImageButton25; _Image[3, 6] = ImageButton26; _Image[3, 7] = ImageButton27; _Image[3, 8] = ImageButton28; _Image[3, 9] = ImageButton29; _Image[4, 1] = ImageButton31; _Image[4, 2] = ImageButton32; _Image[4, 3] = ImageButton33; _Image[4, 4] = ImageButton34; _Image[4, 5] = ImageButton35; _Image[4, 6] = ImageButton36; _Image[4, 7] = ImageButton37; _Image[4, 8] = ImageButton38; _Image[4, 9] = ImageButton39; _Image[5, 1] = ImageButton41; _Image[5, 2] = ImageButton42; _Image[5, 3] = ImageButton43; _Image[5, 4] = ImageButton44; _Image[5, 5] = ImageButton45; _Image[5, 6] = ImageButton46; _Image[5, 7] = ImageButton47; _Image[5, 8] = ImageButton48; _Image[5, 9] = ImageButton49; _Image[6, 1] = ImageButton51; _Image[6, 2] = ImageButton52; _Image[6, 3] = ImageButton53; _Image[6, 4] = ImageButton54; _Image[6, 5] = ImageButton55; _Image[6, 6] = ImageButton56; _Image[6, 7] = ImageButton57; _Image[6, 8] = ImageButton58; _Image[6, 9] = ImageButton59; _Image[7, 1] = ImageButton61; _Image[7, 2] = ImageButton62; _Image[7, 3] = ImageButton63; _Image[7, 4] = ImageButton64; _Image[7, 5] = ImageButton65; _Image[7, 6] = ImageButton66; _Image[7, 7] = ImageButton67; _Image[7, 8] = ImageButton68; _Image[7, 9] = ImageButton69; _Image[8, 1] = ImageButton71; _Image[8, 2] = ImageButton72; _Image[8, 3] = ImageButton73; _Image[8, 4] = ImageButton74; _Image[8, 5] = ImageButton75; _Image[8, 6] = ImageButton76; _Image[8, 7] = ImageButton77; _Image[8, 8] = ImageButton78; _Image[8, 9] = ImageButton79; _Image[9, 1] = ImageButton81; _Image[9, 2] = ImageButton82; _Image[9, 3] = ImageButton83; _Image[9, 4] = ImageButton84; _Image[9, 5] = ImageButton85; _Image[9, 6] = ImageButton86; _Image[9, 7] = ImageButton87; _Image[9, 8] = ImageButton88; _Image[9, 9] = ImageButton89; _Image[10, 1] = ImageButton91; _Image[10, 2] = ImageButton92; _Image[10, 3] = ImageButton93; _Image[10, 4] = ImageButton94; _Image[10, 5] = ImageButton95; _Image[10, 6] = ImageButton96; _Image[10, 7] = ImageButton97; _Image[10, 8] = ImageButton98; _Image[10, 9] = ImageButton99; int i, j; for (i = 1; i <= 10; i++) for (j = 1; j <= 9; j++) { _Image[i, j].ImageUrl = "~/image/back.gif"; } } //初始化棋盘,将两方棋子放好位 private void _InitQizi() { int i = 0, j = 0, k = 0; int[] initqipandata = new int[37]; for (i = 1; i <= 10; i++) for (j = 1; j <= 9; j++) { _UpdataQipan(i, j, k); } for (i = 0; i <= 36; i++) initqipandata[i] = i; _UpdataQipan(1, 1, initqipandata[8]); _UpdataQipan(1, 2, initqipandata[6]); _UpdataQipan(1, 3, initqipandata[4]); _UpdataQipan(1, 4, initqipandata[2]); _UpdataQipan(1, 5, initqipandata[1]); _UpdataQipan(1,6, initqipandata[3]); _UpdataQipan(1, 7, initqipandata[5]); _UpdataQipan(1, 8, initqipandata[7]); _UpdataQipan(1, 9, initqipandata[9]); _UpdataQipan(3, 2, initqipandata[10]); _UpdataQipan(3, 8, initqipandata[11]); _UpdataQipan(4, 1, initqipandata[12]); _UpdataQipan(4, 3, initqipandata[13]); _UpdataQipan(4, 5, initqipandata[14]); _UpdataQipan(4, 7, initqipandata[15]); _UpdataQipan(4, 9, initqipandata[16]); _UpdataQipan(10, 1, initqipandata[28]); _UpdataQipan(10, 2, initqipandata[26]); _UpdataQipan(10, 3, initqipandata[24]); _UpdataQipan(10, 4, initqipandata[22]); _UpdataQipan(10, 5, initqipandata[21]); _UpdataQipan(10, 6, initqipandata[23]); _UpdataQipan(10, 7, initqipandata[25]); _UpdataQipan(10, 8, initqipandata[27]); _UpdataQipan(10, 9, initqipandata[29]); _UpdataQipan(8, 2, initqipandata[30]); _UpdataQipan(8, 8, initqipandata[31]); _UpdataQipan(7, 1, initqipandata[32]); _UpdataQipan(7, 3, initqipandata[33]); _UpdataQipan(7, 5, initqipandata[34]); _UpdataQipan(7, 7, initqipandata[35]); _UpdataQipan(7, 9, initqipandata[36]); } //获取棋子图片地址 private string _GetImageAdd(int xxx) { string x="" ; SqlConnection myconn = new SqlConnection(ConfigurationManager.ConnectionStrings["SQLCONNECTIONSTRING"].ConnectionString); SqlCommand cmd = new SqlCommand("select add_image from qizi where(no_qizi='"+xxx+"');", myconn); myconn.Open(); SqlDataReader sr = cmd.ExecuteReader(); if (sr.Read()) x = sr["add_image"].ToString(); //Session["add_image"] = x; myconn.Close(); return x; } //获取点击后的图片地址 private string _GetImageDownAdd(int xxx) { string x =""; SqlConnection myconn = new SqlConnection(ConfigurationManager.ConnectionStrings["SQLCONNECTIONSTRING"].ConnectionString); SqlCommand cmd = new SqlCommand("select add_image_down from qizi where(no_qizi='" + xxx + "')", myconn); myconn.Open(); SqlDataReader sr = cmd.ExecuteReader(); if (sr.Read()) x = sr["add_image_down"].ToString(); myconn.Close(); return x; } //读取鼠标点击点的坐标 private int Getpointx() { int x = 0; SqlConnection myconn = new SqlConnection(ConfigurationManager.ConnectionStrings["SQLCONNECTIONSTRING"].ConnectionString); SqlCommand cmd = new SqlCommand("select x from zuobiao", myconn); myconn.Open(); SqlDataReader sr = cmd.ExecuteReader(); if (sr.Read()) { x = int.Parse(sr["x"].ToString()); } myconn.Close(); return x; } private int Getpointy( ) { int x = 0; SqlConnection myconn = new SqlConnection(ConfigurationManager.ConnectionStrings["SQLCONNECTIONSTRING"].ConnectionString); SqlCommand cmd = new SqlCommand("select y from zuobiao", myconn); myconn.Open(); SqlDataReader sr = cmd.ExecuteReader(); if (sr.Read()) { x = int.Parse(sr["y"].ToString()); } myconn.Close(); return x; } private int Getpointlastx( ) { int x = 0; SqlConnection myconn = new SqlConnection(ConfigurationManager.ConnectionStrings["SQLCONNECTIONSTRING"].ConnectionString); SqlCommand cmd = new SqlCommand("select lastx from zuobiao", myconn); myconn.Open(); SqlDataReader sr = cmd.ExecuteReader(); if (sr.Read()) { x = int.Parse(sr["lastx"].ToString()); } myconn.Close(); return x; } private int Getpointlasty( ) { int x = 0; SqlConnection myconn = new SqlConnection(ConfigurationManager.ConnectionStrings["SQLCONNECTIONSTRING"].ConnectionString); SqlCommand cmd = new SqlCommand("select lasty from zuobiao", myconn); myconn.Open(); SqlDataReader sr = cmd.ExecuteReader(); if (sr.Read()) { x = int.Parse(sr["lasty"].ToString()); } myconn.Close(); return x; } //写入鼠标点击点的坐标 private void Updatax(int xxx) { SqlConnection myconn = new SqlConnection(ConfigurationManager.ConnectionStrings["SQLCONNECTIONSTRING"].ConnectionString); SqlCommand cmd = new SqlCommand("update zuobiao set x='" + xxx + "'", myconn); myconn.Open(); int aa = cmd.ExecuteNonQuery(); myconn.Close(); } private void Updatay(int yyy) { SqlConnection myconn = new SqlConnection(ConfigurationManager.ConnectionStrings["SQLCONNECTIONSTRING"].ConnectionString); SqlCommand cmd = new SqlCommand("update zuobiao set y='" + yyy + "'", myconn); myconn.Open(); int aa = cmd.ExecuteNonQuery(); myconn.Close(); } private void Updatalastx(int lastxxx) { SqlConnection myconn = new SqlConnection(ConfigurationManager.ConnectionStrings["SQLCONNECTIONSTRING"].ConnectionString); SqlCommand cmd = new SqlCommand("update zuobiao set lastx='" + lastxxx +"'" , myconn); myconn.Open(); int aa = cmd.ExecuteNonQuery(); myconn.Close(); } private void Updatalasty(int lastyyy) { SqlConnection myconn = new SqlConnection(ConfigurationManager.ConnectionStrings["SQLCONNECTIONSTRING"].ConnectionString); SqlCommand cmd = new SqlCommand("update zuobiao set lasty='" + lastyyy +"'", myconn); myconn.Open(); int aa = cmd.ExecuteNonQuery(); myconn.Close(); } //以上四个函数的集合,达到一次写入四个坐标值的目的 private void _UpdataaZuobiao(int xxx, int yyy, int lastxxx, int lastyyy) { Updatax(xxx); Updatay(yyy); Updatalastx(lastxxx); Updatalasty(lastyyy); } //保存当前坐标值到x和y private void _UpdatZuobiaoXY(int xxx, int yyy) { if (Session["user"].ToString() == "red" && _GetUserState(Session["user"].ToString()) == 20) { Updatax(xxx); Updatay(yyy); } if (Session["user"].ToString() == "black" && _GetUserState(Session["user"].ToString()) == 20) { Updatax(xxx); Updatay(yyy); } } //读取棋盘上的棋子信息 private int _GetDataQipan(int xxx, int yyy) { int i,data=0; i = (xxx - 1) * 9 + yyy; SqlConnection myconn = new SqlConnection(ConfigurationManager.ConnectionStrings["SQLCONNECTIONSTRING"].ConnectionString); SqlCommand cmd = new SqlCommand("select data_qipan from qipan where(position='"+i+"')", myconn); myconn.Open(); SqlDataReader sr = cmd.ExecuteReader(); if (sr.Read()) data = int.Parse(sr["data_qipan"].ToString()); myconn.Close(); return data; } //将棋子信息写入棋盘 private void _UpdataQipan(int xxx, int yyy,int data) { int i; i = (xxx - 1) * 9 + yyy; SqlConnection myconn = new SqlConnection(ConfigurationManager.ConnectionStrings["SQLCONNECTIONSTRING"].ConnectionString); SqlCommand cmd = new SqlCommand("update qipan set data_qipan=" + data + "where (position='"+i+"')", myconn); myconn.Open(); int aa = cmd.ExecuteNonQuery(); myconn.Close(); } //读出用户此时状态 private int _GetUserState(string id) { int data = 0; SqlConnection myconn = new SqlConnection(ConfigurationManager.ConnectionStrings["SQLCONNECTIONSTRING"].ConnectionString); SqlCommand cmd = new SqlCommand("select state from yonghu where(id='" + id + "')", myconn); myconn.Open(); SqlDataReader sr = cmd.ExecuteReader(); if (sr.Read()) data = int.Parse(sr["state"].ToString()); myconn.Close(); return data; } //读出用户输赢状态 0表示在进行游戏 20表示赢 40表示输 private int _GetUserWin(string id) { int data = 0; SqlConnection myconn = new SqlConnection(ConfigurationManager.ConnectionStrings["SQLCONNECTIONSTRING"].ConnectionString); SqlCommand cmd = new SqlCommand("select winner from yonghu where(id='" + id + "')", myconn); myconn.Open(); SqlDataReader sr = cmd.ExecuteReader(); if (sr.Read()) data = int.Parse(sr["winner"].ToString()); myconn.Close(); return data; } //写入用户状态 private void _UpdataUserState(string id,int sta) { SqlConnection myconn = new SqlConnection(ConfigurationManager.ConnectionStrings["SQLCONNECTIONSTRING"].ConnectionString); SqlCommand cmd = new SqlCommand("update yonghu set state=" + sta + "where (id='" + id + "')", myconn); myconn.Open(); int aa = cmd.ExecuteNonQuery(); myconn.Close(); } //写入用户输赢状态 0表示在进行游戏 20表示赢 40表示输 private void _UpdataUserWin(string id, int sta) { SqlConnection myconn = new SqlConnection(ConfigurationManager.ConnectionStrings["SQLCONNECTIONSTRING"].ConnectionString); SqlCommand cmd = new SqlCommand("update yonghu set winner=" + sta + "where (id='" + id + "')", myconn); myconn.Open(); int aa = cmd.ExecuteNonQuery(); myconn.Close(); } protected void Page_Load(object sender, EventArgs e) { _Init(); // _Test(); } //测试程序函数 private void _Test() { _UpdataUserState("red",tru); _UpdataUserState("black", tru); } private bool _IsAbleToPut()//********************************************************需要传递x,y,laastx,lasty { if (Session["user"].ToString() == "red" && _GetUserState(Session["user"].ToString()) == 40) return false; if (Session["user"].ToString() == "black" && _GetUserState(Session["user"].ToString()) == 40) return false; int x, y, lastx, lasty; int qipandata,lastqipandata; x = Getpointx(); y = Getpointy(); lastx = Getpointlastx(); lasty = Getpointlasty(); if (Session["user"].ToString() == "black") { x = 11 - x; y = 10 - y; lastx = 11 - lastx; lasty = 10 - lasty; } qipandata = _GetDataQipan(x, y); lastqipandata = _GetDataQipan(lastx, lasty); // if (lastqipandata==0) // return false; if (Session["user"].ToString() == "red"&&(lastqipandata <= 20 || qipandata >= 20))//****************************************************************现以红方为对象 return false; if (Session["user"].ToString() == "black" && ((lastqipandata == 0 || lastqipandata >= 20) || (qipandata > 0 && qipandata <= 20))) return false; int i, j, c; //将|帅 if (lastqipandata == 1 || lastqipandata == 21) { if ((x - lastx) * (y - lasty) != 0) return false; if (Math.Abs(x - lastx) > 1 || Math.Abs(y - lasty) > 1) return false; if (y < 4 || y > 6 || (x > 3 && x < 8)) return false; return true; } //士|仕 if (lastqipandata == 2 || lastqipandata == 3 || lastqipandata == 22 || lastqipandata == 23) { if ((x - lastx) * (y - lasty) == 0) return false; if (Math.Abs(x - lastx) > 1 || Math.Abs(y - lasty) > 1) return false; if (y < 4 || y > 6 || (x > 3 && x < 8)) return false; return true; } //象|相 if (lastqipandata == 4 || lastqipandata == 5 || lastqipandata == 24 || lastqipandata == 25) { if ((x - lastx) * (y - lasty) == 0) return false; if (Math.Abs(x - lastx) != 2 || Math.Abs(y - lasty) != 2) return false; if (Session["user"].ToString() == "red" && x < 6) return false; if (Session["user"].ToString() == "black" && x > 5) return false; i = 0; j = 0;//i,j必须有初始值 if (x - lastx == 2) { i = x - 1; } if (x - lastx == -2) { i = x + 1; } if (y - lasty == 2) { j = y - 1; } if (y - lasty == -2) { j = y + 1; } if (_GetDataQipan(i, j) != 0) return false; return true; } //马 if (lastqipandata == 6 || lastqipandata ==
/
本文档为【中国象棋(代码)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索