基于c的五子棋游戏的设计与实现_毕业设计论文(编辑修改稿)内容摘要:
1] = + 1。 //在棋盘上退一棋 13 points[[tempStackElement.pointNumber 1].X, [umber 1].Y] = 2。 (tempStackElement)。 } else//栈顶元素中点均已试过 { //寻找栈顶元素中点的最好结局 totalresult = [0]。 for (i = 0。 i。 i++) if (totalresult [i]) totalresult = [i]。 //寻找最佳步数 if (totalresult == ) { bestStepNumber = M + 2。 for (i = 0。 i。 i++) if (totalresult == [i] amp。 amp。 bestStepNumber [i]) bestStepNumber = [i]。 } else//totalresult==或 lose { bestStepNumber = 0。 for (i = 0。 i。 i++) if (totalresult == 14 [i] amp。 amp。 bestStepNumber [i]) bestStepNumber = [i]。 } if ( 0)//栈非空 { tempStackElement = (StackElement)()。 [ 1] = (result)(0 totalresult)。 [r 1] = bestStepNumber。 //在棋盘上退一棋 points[[tempStackElement.pointNumber 1].X, [umber 1].Y] = 2。 (tempStackElement)。 } } } } for (i = 0。 i。 i++) if (totalresult == [i] amp。 amp。 bestStepNumber == [i]) break。 bestPoint = [i]。 return true。 15 10) 寻 找 最 佳 的 五 个 点 , 并 形 成 栈 元 素 ——FindBestFivePointsAndFormAStackElement 函数主要是找最佳点,并形成栈元素。 如果找到,返回 true;否则。 返回 false。 要找 最佳点,就是找权值最大的点。 首先,计算出棋盘上每一个点的权值,并找出最大的一 个。 代码如下: int[,] qpPower = new int[15, 15]。 bool blnHaveFound。 int x, y, i, max。 = 0。 for (x = 0。 x 15。 x++) for (y = 0。 y 15。 y++) qpPower[x, y] = GetqpPower(qzcolor, x, y)。 for (i = 0。 i 5。 i++) {//求第 i个最佳点 max = 0。 for (x = 0。 x 15。 x++) for (y = 0。 y 15。 y++) if (max qpPower[x, y]) max = qpPower[x, y]。 for (x = 0。 x 15。 x++) { blnHaveFound = false。 for (y = 0。 y 15。 y++) if (max == qpPower[x, y]) { [i] = new Point(x, y)。 ++。 qpPower[x, y] = 1。 blnHaveFound = true。 break。 } if (blnHaveFound) break。 } 16 } if ( == 0) return false。 else { = qzcolor。 = 0。 return true。 } 11) 求权值 —— GetqpPower 定义八个方向:左,右,上,下,左上,右下,左下,右上。 代码如下: left = new Point((0, x 4), y)。 right = new Point((14, x + 4), y)。 top = new Point(x, (0, y 4))。 down = new Point(x, (14, y + 4))。 temp = (x , y )。 leftTop = new Point(x temp, y temp)。 temp = (x , y)。 leftDown = new Point(x temp, y + temp)。 temp = ( x, y )。 rightTop = new Point(x + temp, y temp)。 temp = ( x, y)。 rightDown = new Point(x + temp, y + temp)。 如果颜色是黑色,处理黑棋连子情况:如果这个点没有下棋子,则在此置为 1,表示这点下的是黑棋。 然后看这个点各个方向黑棋子的数目是多少,并看是否是活棋,再作出处理。 最后,将此点处置为 2。 表示这点没有下棋子。 处理白棋连子情况: 在此点处置为 0,表示这点下的是白棋。 然后看这个点各个方向白棋子的数目是多少,并在此放一白棋破坏黑棋,再做出相应的处理。 如果各个方向上出现 3 个的活 棋。 就将tempActive3自加 1。 最后,将此点处置为 2。 表示这点没有下棋子。 设置权值:形成黑棋五个的权值设为 150000;形成白棋五个的权值设为 140000;形成黑活棋个数为 4或形成两条以上黑棋个数为 4的权值设为 130000;形成一条黑棋个数为 4并且一条为黑活棋个数为 3的权值为 120200;形成一条黑棋个数为 4或一条 17 以上黑棋个数为 3的权值 110000;形成白活棋个数为 4或形成两条以上白棋个数为 4的权值设为 100000;形成一条黑棋个数为 4并且一条为黑活棋个数为 3的权值为 120200;形成一条白棋个数为 4 并且一条为白活棋个数为 3 的权值为 90000;两条以上白活棋个数为 3 的权值为 80000;形成一条白棋个数为 4 或一条以上白棋个数为 3 的权值为 70000;同 样,如果颜色为白色,做法和以上的差不多。 代码如下 : if (qzcolor == 1) { if (points[x, y] != 2) return 2。 else { /// ///处理黑棋连子情况 /// points[x, y] = 1。 //左右方向 connectCount = ConnectqpCount(1, left, right)。 [connectCount]++。 if (ActiveConnectqp(1, connectCount, left, right)) { [connectCount]。 [connectCount]++。 } //上下方向 connectCount = ConnectqpCount(1, top, down)。 [connectCount]++。 if (ActiveConnectqp(1, connectCount, top, down)) { 18 [connectCount]。 [connectCount]++。 } //左上 _右下方向 connectCount = ConnectqpCount(1, leftTop, rightDown)。 [connectCount]++。 if (ActiveConnectqp(1, co。基于c的五子棋游戏的设计与实现_毕业设计论文(编辑修改稿)
相关推荐
private void button3_Click(object sender, EventArgs e)//进入课程管理 { FrmCourse frmcourse = new FrmCourse()。 frmcourse .Show()。 } private void button4_Click(object sender, EventArgs e)//进入研究生管理 {
类类型、值类型和接口类型的概念形成了统一的类型系统。 尽管 C 提供了如此多的新鲜概念,但实际上,这些概念都是由 CLI 提出的。 因此当将一个 C源程序编译为可执行文件时,编译器做的工作相对而言并不多。 需要编译器代劳的是要将一个简单的委托定义语句翻译为一个继承 型定义 [10]。 C 微软在 20xx年的 6月份发布了 Visual Studio20xx的第一个 Beta 版
面 图 42 前台操作 客房查询 1. 功能 通过客房号查询房间的基本类型与状态。 2. 界面 图 43 客房查询 3. 操作指南 (1).在文本框中输入客房号,点击查询,可以查询到该房间的一些基本情况。 (2).点击空房按钮的时候,会把数据库中所有的空房信息显示出来。 (3).点击未预定按钮的时候,会把数据库中所有的未预定的客房信息显 示出来。 基于 C的酒店管理系统 11 (2)
成数据的不一致,但是,对于一个健全的数据库管理系统而言,将会对这样的情况加以控制,但有时并不需要刻意消除这种情形,应当视该数据库 的需求与效率来决定。 ( 3)数据共享( data shared) 对于数据共享的意义,并不是只有针对数据库设计的应用程序,可以使用数据库中的数据,对于其他撰写好的应用程序,同样可以对相同数据库当中的数据进行处理,进而达到数据共享的目的。 ( 4)强化数据的标准化(
ncCallback( OnReceivedData )。 ( , 0, , , receiveData, s )。 // (Re)Setup a callback to be notified of connection requests (new AsyncCallback( OnConnectRequest ) , listener )。 } else { 12 // If we are
} public DrawMyRectangle(int x, int y, int width, int height, Color penColor, int id) { = new Rectangle(x, y, width, height)。 = penColor。 = id。 } public override void Draw(Graphics g) { Pen pen = new