五子棋课程设计论文(附代码)
- 格式:docx
- 大小:1.92 MB
- 文档页数:20
基于的五子棋游戏的设计摘要五子棋作为一个棋类竞技运动,在民间十分流行,为了熟悉五子棋规则与技巧,以与研究简单的人工智能,决定用开发五子棋游戏。
主要完成了人机对战和玩家之间联网对战2个功能。
网络连接部分为编程应用,客户端和服务器端的交互用定义,有很好的可扩展性,客户端负责界面维护和收集用户输入的信息,与错误处理。
服务器维护在线用户的基本信息和任意两个对战用户的棋盘信息,动态维护用户列表。
在人机对弈中通过深度搜索和估值模块,来提高电脑棋手的智能。
分析估值模块中的影响精准性的几个要素,以与提出若干提高精准性的办法,以与对它们搜索的节点数进行比较,在这些算法的基础上分析一些提高电脑方案,如递归算法、电脑学习等。
算法的研究有助于理解程序结构,增强逻辑思维能力,在其他人工智能方面也有很大的参考作用。
关键词:深度搜索;估值;电脑;五子棋;算法a , , , , I . , , a , , . , . , . , a , , , , . , , .: ; ; ; ;目录1 引言.............................................................. 错误!未指定书签。
1.1 选题背景...................................................... 错误!未指定书签。
1.2 本课题研究的意义.............................................. 错误!未指定书签。
1.3 本课题的研究方法.............................................. 错误!未指定书签。
2 课题相关基础...................................................... 错误!未指定书签。
2.1 五子棋........................................................ 错误!未指定书签。
郑州科技学院课程设计论文基于C#的五子棋游戏的设计与实现1 引言 (1)1.1 五子棋介绍 (1)2 软件架构 (1)3 五子棋设计说明 (1)3.1 主要成员变量说明 (2)3.2 回溯栈元素类——StackElement (2)3.3 棋子点属性类——qzdianshuxing (3)3.4 主要成员函数说明 (3)3.5 实现人机对弈的主要函数 (5)3.6 实现菜单功能的函数 (19)3.6 程序运行界面 (22)4 心得体会 (231)1 引言1.1 五子棋介绍五子棋是起源于中国古代的传统黑白棋种之一。
现代五子棋日文称之为“連珠”,英译为“Renju”,英文称之为“Gobang”或“FIR”(Five in a Row的缩写),亦有“连五子”、“五子连”、“串珠”、“五目”、“五目碰”、“五格”等多种称谓。
五子棋不仅能增强思维能力,提高智力,而且富含哲理,有助于修身养性。
五子棋既有现代休闲的明显特征“短、平、快”,又有古典哲学的高深学问“阴阳易理”;它既有简单易学的特性,为人民群众所喜闻乐见,又有深奥的技巧和高水平的国际性比赛;它的棋文化源渊流长,具有东方的神秘和西方的直观;既有“场”的概念,亦有“点”的连接。
它是中西文化的交流点,是古今哲理的结晶。
2 软件架构软件的总体架构如图2.1:图2.1 软件架构3 五子棋设计说明人机对战人人对战主界面游戏控制游戏模式重新开始退出声音控制悔棋开始3.1 主要成员变量说明1)选择游戏模式标志——m_renren用来表示当前玩家选择游戏的情况,当m_renren为false时,表示人机对战;为true时,表示人人对弈。
2)游戏开始标志——begin用来判断当前游戏是否开始3)音效标志——sound在下棋过程中,判断是否需要声音,当sound为true时,表示玩家需要声音,否则的话,玩家不需要声音。
4)谁先下的标志——first这个标志只对人机对弈时有效。
毕业论文(设计)题目五子棋游戏的设计与实现毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。
尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。
对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作者签名:日期:指导教师签名:日期:使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。
作者签名:日期:学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。
除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到本声明的法律后果由本人承担。
作者签名:日期:年月日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。
本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
涉密论文按学校规定处理。
作者签名:日期:年月日导师签名:日期:年月日注意事项1.设计(论文)的内容包括:1)封面(按教务处制定的标准封面格式制作)2)原创性声明3)中文摘要(300字左右)、关键词4)外文摘要、关键词5)目次页(附件不统一编入)6)论文主体部分:引言(或绪论)、正文、结论7)参考文献8)致谢9)附录(对论文支持必要时)2.论文字数要求:理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。
科技学院Java程序设计课程设计设计(论文)题目:基于java五子棋的设计与实现所在院:财经学院2018年12月17日科技学院课程设计(论文)任务书设计题目:五子棋游戏的设计与实现专业班级:电子商务本二班主要内容:编写一个桌面应用软件“五子棋小游戏”,提高学生动手操作能力和实现用户休闲娱乐等功能。
基本要求:(1)软件需完成主要内容中的功能,运行正确并进行相应的测试,以电子版形式上交系统。
(2)将设计过程按照要求的格式形成课程设计说明书,并按时打印上交。
完成期限:2018年12月21日指导教师签名:目录第一章:绪论 (1)1.1 前言 (2)第二章系统分析 (3)2.1问题分析 (3)第三章五子棋的相关基础 (5)3.1五子棋解释 (5)第四章开发工具、环境及其技术 (8)4.1 JA V A简介 (8)4.2 JA V A 编程环境: (10)第五章程序设计思路与实现 (12)5.1程序设计 (12)参考文献 (35)第一章:绪论1.1 前言电脑已经深入到日常工作和生活的方方面面,比如文字处理、信息管理、辅助设计、图形图像处理、教育培训以及游戏娱乐等。
Windows系统的推出使电脑从高雅的学术殿堂走入了寻常百姓家,各行各业的人们无须经过特别的训练就能够使用电脑完成许许多多复杂的工作。
然而,虽然现在世界上已经充满了花样繁多的各种软件,但它们依然不能满足用户的各种特殊需要,人们还不得不开发适合自己特殊需求的软件。
Java语言作为一种面向对象的编程语言,具有分布式,可移植,高性能,多线程等特点。
通过系统的学习,人们就可以使用它开发出功能齐全,满足特殊需求的应用程序。
Java语言易学易用,对学习者掌握技能,开拓思维都有很大的帮助。
我作为一名学生,在系统的学习了Java语言之后,经常用它搞一些小程序。
这次毕业设计,正好将学过的Java语言中的各种技术综合起来,用Jbuilder2006开发工具编写一个小游戏,既对自己学过的技能进行一次检验,也能系统地将学过的知识复习巩固。
哈尔滨远东理工学院C语言课程设计论文题目:五子棋对战游戏姓名:分院:机器人科学与技术学院专业:电子信息工程学号:指导教师:二0一四年九月五日五子棋(C语言)摘要五子棋是一种两人对弈的纯策略型棋类游戏,是起源于中国古代的传统黑白棋种之一。
早在“尧造围棋”之前,可能民间就已有五子棋游戏。
发展于日本,流行于欧美。
五子连珠棋五子棋容易上手,老少皆宜,而且趣味横生,引人入胜;不仅能增强思维能力,提高智力,而且富含哲理,有助于修身养性。
五子棋不仅能增强思维能力,提高智力,而且富含哲理,有助于修身养性。
五子棋既有现代休闲的明显特征“ 短、平、快” ,又有古典哲学的高深学问“ 阴阳易理” ;它既有简单易学的特性,为人民群众所喜闻乐见,又有深奥的技巧和高水平的国际性比赛;它的棋文化源渊流长,具有东方的神秘和西方的直观;既有“ 场” 的概念,亦有“ 点” 的连接。
它是中西文化的交流点,是古今哲理的结晶。
a , . \" \", . , .A , , , ; , , , 's a ., , , 's a . \", , \", a \" \"; , , a ; 's , ; \"\", a \"\" . , .目录1. 前言......................................................................................... 错误!未指定书签。
2. 功能描述................................................................................. 错误!未指定书签。
3. 总体设计................................................................................. 错误!未指定书签。
需要本论文完整程序源代码,答辩PPT或者更多毕业论文,联系上传者即可移动电话应用程序蓝牙对战五子棋游戏的设计分析摘要信息技术的进步和广泛应用正在深刻地影响着生活中的各个角落。
程序的运行环境也不在局限于计算机。
本文主要讨论了使用无线开发工具(WTK)在移动电话这类联网的受限配置设备(CLDC)上开发蓝牙对战五子棋游戏的应用程序(MIDlet)的实现过程。
通过该程序的实现,可以了解到基于J2ME开发的基本知识。
关键词J2ME;无线通讯工具包(WTK);联网的受限设备配置(CLDC);移动电话;蓝牙应用1 引言从1997年的第一款手机游戏《贪吃蛇》到目前,手机游戏已经不在停留在简单的俄罗斯方块之类的画面简单、规则单一的游戏了,而是发展到了可以与电脑相媲美的、具有很强交互性和娱乐性的复杂形式。
蓝牙对战五子棋游戏,是一个通过蓝牙作为传输信息的工具,实现对战的游戏开发。
该游戏在五子棋单机版的基础上加入了蓝牙联网功能,使具备蓝牙功能的手机可以任意互联,不受到空间和时间的限制进行游戏对战,使游戏更具趣味性。
2 可行性分析适用于蓝牙无线联网技术的JABWT标准(Java APIs for Bluetooth Wireless Technology),由JSR-82规范所定义,该标准能支持蓝牙应用软件的快速开发,并保证其轻便、安全,以及具有高度的可用性。
目前已经有越来越多的设备支持蓝牙程序的运行,因此,移动应用市场也急切需要有更多的此类游戏出现。
蓝牙功能除了收发信息和传输文件外,还能用来玩联机游戏,越来越多的手机支持蓝牙功能,可以预见,蓝牙将成为手机的标准功能。
蓝牙(Bluetooth)是一种支持设备间短距离通信(一般10m以内)的无线电技术。
通过蓝牙,人们能在包括移动电话、PDA、无线耳机、笔记本电脑、相关外设等众多设备之间进行无线信息交换。
可以说,蓝牙为手机对战游戏提供了不错的联网平台,使玩家不再玩单机游戏。
目前,大部分的手机都支持Java功能,Java手机游戏很多,但支持蓝牙对战的不多,而且并非所有的Java游戏都能在Java手机上使用,它们之间根据手机品牌和型号不同也有些区别。
一、概述五子棋是一种古老而又经典的策略游戏,它的简单规则和深刻的战术让人们乐此不疲。
而在当今计算机科学和人工智能技术的不断发展之下,通过计算机程序设计进行五子棋对弈已经成为了一种热门的研究方向。
Python作为一种简单易学的编程语言,因其便捷的编程方式而受到了广泛的关注。
本文将围绕基于Python的五子棋对弈课程设计展开讨论,从而深入探讨计算机程序在五子棋对弈中的应用。
二、课程设计内容1. 五子棋规则的实现在课程设计中,首先要实现基本的五子棋规则,包括黑白双方轮流落子、判断胜负、禁手规则等。
利用Python的面向对象编程思想,可以设计出简洁而又高效的五子棋规则模块,让学生通过代码的方式深入理解五子棋的游戏规则。
2. 基于MiniMax算法的智能对弈为了使学生更好地了解人工智能在五子棋中的运用,课程设计中还可以引入MiniMax算法,让学生深入理解该算法在五子棋对弈中的实现原理。
借助Python语言强大的数学计算能力,学生可以编写出基于MiniMax算法的智能对弈程序,从而提高对算法的理解和应用能力。
3. 界面设计与人机对弈除了算法的实现,课程设计中还可以引入Python的图形化编程库,设计出美观、实用的五子棋界面。
这样一来,学生不仅能够深入理解五子棋规则和算法,还可以通过界面设计与程序实践,实现人机对弈的功能,提高对图形化编程的熟练度。
4. 策略优化与深度学习为了呈现更具挑战性的课程内容,课程设计还可以引入深度学习技术,让学生设计出基于神经网络的五子棋对弈程序。
通过训练神经网络,学生可以优化五子棋本人的策略,从而提高程序的对弈水平。
这一部分内容将会极大地挑战学生的编程能力和算法思维,使他们在深入探讨五子棋对弈中的人工智能技术的也能够提升自身的编程水平。
三、课程设计目标通过以上的课程设计内容,我们的课程设计旨在达到以下目标:1. 帮助学生深入理解五子棋游戏规则及其背后的算法原理;2. 提高学生的Python编程技能,并培养其对程序设计和算法思考的能力;3. 引导学生了解人工智能在五子棋对弈中的应用,并培养其对人工智能技术的兴趣;4. 培养学生团队合作和实践能力,使他们通过课程设计形成良好的团队合作意识和项目实践能力。
1、需求分析1.1、课题背景和意义五子棋一种两人对弈的纯策略型棋类游戏,由古代的传统黑白棋演化而来,相传起源于四千多年前的尧帝时期,比围棋的历史还要悠久,可能早在“尧造围棋”之前,民间就已有五子棋游戏。
迅速发展于日本,流行于欧美。
容易上手,老少皆宜,而且趣味横生,引人入胜;不仅能增强思维能提高智力,而且富含哲理,有助于修身养性。
有关早期五子棋的文史资料与围棋有相似之处,因为古代五子棋的棋具与围棋是完全相同的。
在上古的神话传说中有“女娲造人,伏羲做棋”一说,《增山海经》中记载:“休舆之山有石焉,名曰帝台之棋,五色而文状鹑卵。
”李善注引三国魏邯郸淳《艺经》中曰:“棋局,纵横各十七道,合二百八十九道,白黑棋子,各一百五十枚”。
这段虽没明讲是何种棋类,但至少知道远古就以漂亮的石头为棋子。
因而规则简单的五子棋也可能出自当时,并是用石子作棋子。
亦有传说,五子棋最初流行于少数民族地区,以后渐渐演变成围棋并在炎黄子孙后代中遍及开来。
五子棋是一种益智的游戏,他可以提高人们的反应能力。
尤其是在开发人们的智力方面,很受人们的欢迎。
《数据结构课程设计》是一门实践性的计算机课程,为了学好这门课程,必须在掌握理论知识的同时,加强上机实践。
通过这次课程设计,要求掌握较大程序的设计方法,相应数据结构的选择应用、算法的设计及其实现和性能分析等方面中加深对课程基本内容的理解。
同时,在设计方法以及上机操作等基本技能和科学作风方面受到比较系统和严格的训练。
1.2、课题要求1.2.1、设计一个20*20大小的棋盘进行和电脑对战游戏1.2.2、实现电脑智能和玩家对战,能实现智能攻防,迅速对局势作出判断并下棋.1.3、软件格式规定11.3.1、输入形式:玩家输入棋子要下位置的纵横坐标,棋子下到相应的位置1.3.2、程序所能达到的的功能:实现20行20列的棋盘,电脑能对局势作出判断并正确下棋对玩家做出攻防1.3.3、程序能更新到当前局势1.4、设计目标1.4.1、软件名称:五子棋游戏1.4.2、制作平台及调试工具:Win32;Microsoft visual studio 20101.4.3、运行环境:系统:dos/winxp/win71.4.4、性能特点:软件体积小,高效快捷,实用性好,兼容性好。
2、设计概要:2.1、问题解决思路2.1.1、初始化模块:即屏幕初始化,显示20*20格的棋盘。
系统默认玩家先下,电脑后下2.1.2、棋盘模块:显示棋盘和棋子,棋盘设计为20*20格的二维平面图,背景颜色为蓝色,棋子为黑白色。
2.1.3、判断模块:判断上下左右左上右上左下右下是否有五个颜色相同的颜色,如果有就游戏结束,显示胜利方,否则,游戏双方继续落子。
而当棋盘已满,即数组空间已满的时候,结束程序,显示和局。
2.2、相关函数介绍说明const char outstr[11][4]={} //定义组成棋盘的字符void jushi() //判断局势的函数void computer(int a[20][20]) // 电脑落子的函数memset(cm,0,sizeof(cm)); //清除旧棋盘的函数int a[20][20]={} //组成棋盘的函数int judge(intx,inty,int sum){} //判断胜负的函数system ("color 2f");//控制棋盘颜色的函数system ("mode con cols=50 lines=25")22.3、主程序流程及函数调用说明图132.4、各函数调用情况2.4.1、utstr[]数组,以调用inta[][]数组,组成棋盘界面及相关的界面操作方法。
2.4.2、memset()函数,以调用xiazi数组函数,对下棋位置做出判断,看此位置是否合法,更新棋盘。
2.4.3、mputer()函数,调用a数组,电脑根据棋手下的棋做出判断并做出回应。
2.4.4、一步棋都要更新棋盘,所以都要调用到outstr[]数组,调inta[]然后调用computer()函数,电脑做出下棋判断。
3、详细设计3.1、棋盘的实现,用for循环实现列号的输出,过定义outstr[][]数组,调用inta数组,实现棋盘的显示。
通过循环调用int a[][]数组,输出相应的字符,实现棋盘。
while()循环,输入所要下子的坐标并作出相应判断。
3.2、智能对玩家所下的棋子做出判断,并智能地做出反应,实现攻防,与玩家对战。
43.3、循环调用outstr[][]数组和int a数组,更新棋盘,显示最新局势。
3.4、int judge(intx,inty,int sum) 判断胜负的函数。
运用for结构和if结构实现判断,或横、或竖、或斜,有相同的五个颜色的棋子就胜利。
3.5、有一方胜利或棋盘满子,游戏结束,显示相关和局或胜利信息。
4、调试分析5表1、调试过程情况表5、用户使用说明5.1、运行Debug文件夹里的五子棋应用程序,显示棋盘界面。
5.2、按照提示输入棋盘的纵横坐标,纵横坐标间要有空格,然后按回车键。
5.3、五颗棋连成一线,横着,竖着,斜着都可以,谁先下到五颗棋,谁就胜利。
5.4、棋盘满棋子,算和局。
6、测试结果6.1.1、打开游戏界面,按提示输入横纵坐标:图2676.1.2、如果输入不存在的坐标,则会提示重新输入:图36.2、如果你输入的位置已有子,则提示重新输入:图46.3、输入错误的信息时,如we 4rtr:图56.4、电脑会根据玩家所下的棋做出判断,下好每一步棋。
图686.5、只要有实力,玩家也能够打败电脑的。
图7参考文献[1] 廉师友编著,C++面向对象程序设计简明教程,西安电子科技大学出版社,1998[2] 李师贤等编著,面向对象程序设计基础,高等教育出版社,1998[3] 谭浩强编著,C++程序设计,清华大学出版社,2004附录#include<iostream>#include<cstdlib>using namespace std;const char outstr[11][4]={"┌","┬","┐","├","┼","┤","└","┴","┘","○","●"};int cm[20][20],xiazi[20][20];9intc,d;void jushi() //这是判断落子重要性的函数{ int x,y,i,m,n,lianzi1=0,lianzi2=0,life=0;memset(cm,0,sizeof(cm));for(x=0;x<=19;x++)for(y=0;y<=19;y++){if(xiazi[x][y]==0){for(m=-1;m<=1;m++)for(n=-1;n<=1;n++){if(m!=0 || n!=0){for(i=1;i<=4;i++){if( x+i*m>=0 &&x+i*m<=19 &&y+i*n>=0 &&y+i*n<=19&&xiazi[x+i*m][y+i*n]==1 ){lianzi1++;}else if(xiazi[x+i*m][y+i*n]==0){life++; break;}else{break;}}for(i=-1;i>=-4;i--){if( x+i*m>=0 &&x+i*m<=19 &&y+i*n>=0 &&y+i*n<=19 &&xiazi[x+i*m][y+i*n]==1 ) {lianzi1++;}else if(xiazi[x+i*m][y+i*n]==0){life++; break;}10else{break;}}if(lianzi1==1){cm[x][y]+=1;}else if (lianzi1==2) {if(life==1){cm[x][y]+=5;}else if(life==2){cm[x][y]+=10;}}else if(lianzi1==3){if(life==1){cm[x][y]+=20;}else if(life==2){cm[x][y]+=100;}}else if(lianzi1==4){cm[x][y]+=500;}life=0;for(i=1;i<=4;i++){if( x+i*m>=0 &&x+i*m<=19 &&y+i*n>=0 &&y+i*n<=19 &&xiazi[x+i*m][y+i*n]==2 ){lianzi2++;}else if(xiazi[x+i*m][y+i*n]==0){life++; break;}else{break;}}11for(i=-1;i>=-4;i--){if( x+i*m>=0 &&x+i*m<=19 &&y+i*n>=0 &&y+i*n<=19 &&xiazi[x+i*m][y+i*n]==2 ) {lianzi2++;}else if(xiazi[x+i*m][y+i*n]==0){life++; break;}else{break;}}if(lianzi2==1){cm[x][y]+=2;}else if(lianzi2==2){if(life==1){cm[x][y]+=8;}else if(life==2){cm[x][y]+=30;}}else if(lianzi2==3){if(life==1){cm[x][y]+=50;}else if(life==2){cm[x][y]+=200;}}else if(lianzi2==4){cm[x][y]+=1000;}lianzi1=0;lianzi2=0;12life=0;}}}}}void computer(int a[20][20]) //电脑落子的函数{ inti,j,max=0; jushi();for(i=0;i<=19;i++)for(j=0;j<=19;j++){if(cm[i][j]>max){max=cm[i][j];c=i;d=j;}}a[c][d]=10;xiazi[c][d]=2;}int judge(intx,inty,int sum) //判断胜负的函数 { intm,n,i,lianzi=0;for(m=-1;m<=1;m++)for(n=-1;n<=1;n++){if(m!=0 || n!=0){for(i=1;i<=4;i++)13{if( x+i*m>=0 &&x+i*m<=19 &&y+i*n>=0 &&y+i*n<=19 &&xiazi[x+i*m][y+i*n]==sum ){lianzi++;}else{break;}}for(i=-1;i>=-4;i--){if( x+i*m>=0 &&x+i*m<=19 &&y+i*n>=0 &&y+i*n<=19 &&xiazi[x+i*m][y+i*n]==sum ){lianzi++;}else{break;}}if(lianzi>=4){return 1;}else{lianzi=0;}}}return 0;}int main() //主函数,进行人落子工作{system ("color 2f");14system ("mode con cols=100 lines=50");system ("title 欢迎使用五子棋对战软件!");int a[20][20]={0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5, 3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8};intx,y,i,j;memset(xiazi,0,sizeof(xiazi));cout<<" 0 1 2 3 4 5 6 7 8 9 A B C D E F G H I J "<<endl;for(i=0;i<=19;i++){if(i==0)15cout<<i;else{cout<<endl;if(i<=9)cout<<i;else{i+=55;cout<<char(i);i-=55;}}for(j=0;j<=19;j++){cout<<outstr[a[i][j]];}}cout<<endl;cout<<"请输入您要下的棋子行\\列用空格隔开:";while(cin>>x>>y){if(xiazi[x][y]==0 && x>=0 && x<=19 && y>=0 && y<=19){a[x][y]=9;xiazi[x][y]=1;if(judge(x,y,1)==0){system ("cls");computer(a);if(judge(c,d,2)==0){cout<<" 0 1 2 3 4 5 6 7 8 9 A B C D E F G H I J"<<endl;16for(i=0;i<=19;i++){if(i==0)cout<<i;else{cout<<endl;if(i<=9)cout<<i;else{i+=55;cout<<char(i);i-=55;}}for(j=0;j<=19;j++){cout<<outstr[a[i][j]];}}cout<<endl;cout<<"您的棋子下在"<<x<<"行"<<" "<<y<<"列"<<endl;cout<<"电脑的棋子下在"<<c<<"行"<<" "<<d<<"列"<<endl;cout<<"请输入您要下的棋子";}else{cout<<" 0 1 2 3 4 5 6 7 8 9 A B C D E F G H I J"<<endl;for(i=0;i<=19;i++){if(i==0)17cout<<i;else{cout<<endl;if(i<=9)cout<<i;else{i+=55;cout<<char(i);i-=55;}}for(j=0;j<=19;j++){cout<<outstr[a[i][j]];}}cout<<endl;cout<<"电脑的棋子下在"<<c<<"行"<<" "<<d<<"列"<<endl;cout<<"电脑获胜。