新人求助,五子棋棋盘大小人工智能怎么判断棋盘上的棋型

人工智能五子棋设计_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
人工智能五子棋设计
阅读已结束,下载本文需要
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
还剩35页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢五子棋JAVA实验报告 (1)_图文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
五子棋JAVA实验报告 (1)
阅读已结束,下载本文需要
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
还剩4页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢C语言五子棋胜利判断式_百度知道
C语言五子棋胜利判断式
请帮我看一下胜利的判断式为什麼不会跑~
只有打左跟左上的方向~请用具体程式码说明+注解~感激不尽
#include &stdio.h&
#include &stdlib.h&
void graph();
void chooseONE();
void chooseTWO();
int win(int row, int col, int playerNum1)...
我有更好的答案
按照五子棋规则,当一方的棋子,在横向,纵向或斜向连续五个均为同一用户的棋子时,代表胜利。另外,胜利判断只需要在一个新子落子时判断,且仅需要判断新子所在的四条线上(纵横加两个斜线)是否满足条件即可。所以,可以以新子坐标为基准点,判断四次。比如横向的,需要判断左侧和右侧连续的同类棋子个数,如果左侧+右侧+1(自身)总数&=5,则为胜利。参考代码如下:static&int&map[100][100];&//&全局变量棋盘。未下子时值为0,下子时值为1或2,区分下子人。int&check_win(int&m,&int&n){&&&&int&total&=&1;&&&&&int&i;&&&&for(i&=&m-1;&i&&=&0;&i&--)//统计同行左侧连续同样棋子个数。&&&&&&&&if(map[i][n]&==&map[m][n])&total++;&&&&&&&&else&&&&&for(i&=&m+1;&i&&&100;&i&++)//统计同行右侧连续同样棋子个数。&&&&&&&&if(map[i][n]&==&map[m][n])&total++;&&&&&&&&else&&&&&if(total&=5)&return&1;//胜利。&&&&return&0;&//没有胜利。}其它类似。
软件工程师
int dra(/防呆 while(i&5||i&20||j&gt,NUM2),int col);int win(int row, int col); int arr[100][100]={0};pause&); if(out==0&&draw==1)printf(& &#47,02);,&j);
printf(&横的需要几个&#92!!\第几个直的\
draw=dra(j,i);o &);); int fico=0; out=win(j,i),i); while(n&);
printf(&第几个直的\n& } }}void graph(){ for(row=1;row&横的需要几个\n&
scanf(&%d&; int row=0; int col=0;}void chooseTWO(%d&n&);
printf(&输入错误!; int i=0; int j=0.h&void graph();第二玩家请选择下棋位置\ int m=0,n=0; int ro=0,co=0;); int time=0;n&);
scanf(&%d&; while (type=='\col||co&1)
printf(&quot,NUM1,NUM2);
type=getchar();
scanf(&%d&,&ro);
while(arr[ro][co]==1||arr[ro][co]==2)
printf(&重复了!; int a=0,b=0,c=0 !!\ int NUM1=0;n&); printf(& 直的需要几个\n&quot,j);
out=win(j,i);n&);
scanf(&=j;col++)
if(arr[row][col]==1)
printf(&); 直的需要几个&#92,int col){
printf(& /输入错误请重新输入\,&i); } graph(); scanf(&%d&;/纪录玩家1赢的次数 int NUM2=0;
if(arr[row][col]==2)
printf(&NUM1=%d;n&);
scanf(&%d&,&co);
printf(&第几个横的\n&);
scanf(&%d&,&ro);
while(arr[ro][co]==1||arr[ro][co]==2)
printf(&重复了!!!\n&);
printf(&第几个直的\n&);
scanf(&%d&,&co);
printf(&第几个横的\n&);
scanf(&%d&,&ro);
while(ro&row||ro&1||co&col||co&1)
printf(&输入错误!!!\n&);
printf(&第几个直的\n&);
scanf(&%d&,&co);
printf(&第几个横的\n&);
scanf(&%d&,&ro);
arr[ro][co]=2;}int win(int row, int col){ //胜利函式 int k = 0,l = 0; int flag = 0; //胜利标记 for(k=2;k&row-2;k++)
//两条,其中的arr[k][l]!=0是排除空子的情况
for(l=2;l&col-2;l++)
if(arr[k][l]!=0&&arr[k-2][l-2]==arr[k][l]&&arr[k-1][l-1]==arr[k][l]&&arr[k+1][l+1]==arr[k][l]&&arr[k+2][l+2]==arr[k][l])
if(arr[k][l]!=0&&arr[k+2][l-2]==arr[k][l]&&arr[k+1][l-1]==arr[k][l]&&arr[k-1][l+1]==arr[k][l]&&arr[k-2][l+2]==arr[k][l])
}if(flag==0) //两斜线,无胜情况下,判断直线 for(k=0;k&k++) for(l=2;l&col-2;l++) {
if(arr[k][l]!=0&&arr[k][l-2]==arr[k][l]&&arr[k][l-1]==arr[k][l]&&arr[k][l+1]==arr[k][l]&&arr[k][l+2]==arr[k][l])
{flag=1;} }if(flag==0) //两斜线及直线无胜情况下,判断横线 for(k=2;k&row-2;k++) for(l=0;l&l++) {
if(arr[k][l]!=0&&arr[k+2][l]==arr[k][l]&&arr[k+1][l]==arr[k][l]&&arr[k-1][l]==arr[k][l]&&arr[k-2][l]==arr[k][l])
{flag=1;} } //返回判断结果,有胜为1,无为0,谁胜无必要判断,因为,谁尾手了的一定是胜的。}int dra(int row,int col){ int i,j,draw=1; for(i=0;i&i++)
for(j=0;j&j++)
if(arr[i][j]==0){draw=0;}}我将其改成这样,你看能否看明白,不懂还可以再问呵呵
dra函式是用来判断是不是和局。关于不能清屏,我教你个方法,把main 函数的那个大循环去掉,再把NUM1和NM2的存储形式改为static。那样就可以在清屏后不会连数据也清了。;=i;row++) {
for(col=1;col&/纪录玩家2赢的次数 void main(){char type='n&);
printf(&row||ro&1||co&);第一玩家请选择下棋位置\
scanf(&%d&;n&);
printf(&quot,&j);n&);
scanf(&%d&;\n',01),&co);
printf(&第几个横的\n&
if(arr[row][col]==0)
printf(&n'
scanf(&%d&;20||j&5) {
printf(&,NUM1; }}void chooseONE(n&);
printf(&第几个直的\n&) { int draw=0; printf(&请输入你想要的棋盘大小 5~20\);第几个横的&#92,firo=0; int five=0; int fi=0; int out=0;%c &; scanf(&%d&;
printf(&quot,&i)#include &%d&quot,&co);
printf(&第几个横的\n&quot,&ro);
arr[ro][co]=1;
printf(&quot,&co);
printf(&quot!=0)NUM2++; else
if(time%2,NUM2=%d\ printf(&quot.h& #include &\n&quot,j);
chooseTWO(i;%c &;);void chooseONE(int row,int col),int col){
/void chooseTWO(int row,int col); draw=dra(j;n&);
scanf(&quot,&ro);
while(ro&n&;
else NUM1++!=1||draw==1) {
if(time%2!=0)
chooseONE(i; } system(&和局:NUM1=%d,NUM2=%d&);第几个直的\stdio
本回答被提问者采纳
崇拜~~你们都是高手,我也学过C怎么就遍布出来呢!!
为您推荐:
其他类似问题
五子棋的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。&>&五子棋人工智能源代码
五子棋人工智能源代码
上传大小:133KB
五子棋人工智能源代码,用vc编写的,费很大的力气才找到的,希望对你有用!
综合评分:5
下载个数:
{%username%}回复{%com_username%}{%time%}\
/*点击出现回复框*/
$(".respond_btn").on("click", function (e) {
$(this).parents(".rightLi").children(".respond_box").show();
e.stopPropagation();
$(".cancel_res").on("click", function (e) {
$(this).parents(".res_b").siblings(".res_area").val("");
$(this).parents(".respond_box").hide();
e.stopPropagation();
/*删除评论*/
$(".del_comment_c").on("click", function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_invalid/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parents(".conLi").remove();
alert(data.msg);
$(".res_btn").click(function (e) {
var parentWrap = $(this).parents(".respond_box"),
q = parentWrap.find(".form1").serializeArray(),
resStr = $.trim(parentWrap.find(".res_area_r").val());
console.log(q);
//var res_area_r = $.trim($(".res_area_r").val());
if (resStr == '') {
$(".res_text").css({color: "red"});
$.post("/index.php/comment/do_comment_reply/", q,
function (data) {
if (data.succ == 1) {
var $target,
evt = e || window.
$target = $(evt.target || evt.srcElement);
var $dd = $target.parents('dd');
var $wrapReply = $dd.find('.respond_box');
console.log($wrapReply);
//var mess = $(".res_area_r").val();
var mess = resS
var str = str.replace(/{%header%}/g, data.header)
.replace(/{%href%}/g, 'http://' + window.location.host + '/user/' + data.username)
.replace(/{%username%}/g, data.username)
.replace(/{%com_username%}/g, data.com_username)
.replace(/{%time%}/g, data.time)
.replace(/{%id%}/g, data.id)
.replace(/{%mess%}/g, mess);
$dd.after(str);
$(".respond_box").hide();
$(".res_area_r").val("");
$(".res_area").val("");
$wrapReply.hide();
alert(data.msg);
}, "json");
/*删除回复*/
$(".rightLi").on("click", '.del_comment_r', function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_comment_del/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parent().parent().parent().parent().parent().remove();
$(e.target).parents('.res_list').remove()
alert(data.msg);
//填充回复
function KeyP(v) {
var parentWrap = $(v).parents(".respond_box");
parentWrap.find(".res_area_r").val($.trim(parentWrap.find(".res_area").val()));
评论共有1条
很不错,代码很全,注释也有,谢谢~
综合评分:
积分/C币:5
综合评分:
积分/C币:3
综合评分:
积分/C币:3
VIP会员动态
CSDN下载频道资源及相关规则调整公告V11.10
下载频道用户反馈专区
下载频道积分规则调整V1710.18
spring mvc+mybatis+mysql+maven+bootstrap 整合实现增删查改简单实例.zip
资源所需积分/C币
当前拥有积分
当前拥有C币
输入下载码
为了良好体验,不建议使用迅雷下载
五子棋人工智能源代码
会员到期时间:
剩余下载个数:
剩余积分:0
为了良好体验,不建议使用迅雷下载
积分不足!
资源所需积分/C币
当前拥有积分
您可以选择
程序员的必选
绿色安全资源
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
您的积分不足,将扣除 10 C币
为了良好体验,不建议使用迅雷下载
无法举报自己的资源
你当前的下载分为234。
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可返还被扣除的积分
被举报人:
举报的资源分:
请选择类型
资源无法下载 ( 404页面、下载失败、资源本身问题)
资源无法使用 (文件损坏、内容缺失、题文不符)
侵犯版权资源 (侵犯公司或个人版权)
虚假资源 (恶意欺诈、刷分资源)
含色情、危害国家安全内容
含广告、木马病毒资源
*详细原因:
五子棋人工智能源代码 上传我的文档
 下载
 收藏
粉丝量:25
该文档贡献者很忙,什么也没留下。
 下载此文档
人工智能课程设计报告-五子棋
下载积分:500
内容提示:人工智能课程设计报告-五子棋
文档格式:PDF|
浏览次数:52|
上传日期: 04:34:39|
文档星级:
全文阅读已结束,如果下载本文需要使用
 500 积分
下载此文档
该用户还上传了这些文档
人工智能课程设计报告-五子棋
关注微信公众号

我要回帖

更多关于 人工智能五子棋 的文章

 

随机推荐