求可以实现人人对战人机对战的人机五子棋c语言代码++代码

&>&老虎吃绵羊 人机对战
lua console
老虎吃绵羊 人机对战
lua console
上传大小:7KB
老虎吃绵羊---lua---增加AI
http://blog.csdn.net/piaobotudou/article/details/
综合评分:0
{%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()));
评论共有0条
VIP会员动态
CSDN下载频道资源及相关规则调整公告V11.10
下载频道用户反馈专区
下载频道积分规则调整V1710.18
spring mvc+mybatis+mysql+maven+bootstrap 整合实现增删查改简单实例.zip
资源所需积分/C币
当前拥有积分
当前拥有C币
输入下载码
为了良好体验,不建议使用迅雷下载
老虎吃绵羊 人机对战
lua console
会员到期时间:
剩余下载个数:
剩余积分:0
为了良好体验,不建议使用迅雷下载
积分不足!
资源所需积分/C币
当前拥有积分
您可以选择
程序员的必选
绿色安全资源
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
您的积分不足,将扣除 10 C币
为了良好体验,不建议使用迅雷下载
无法举报自己的资源
你当前的下载分为234。
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可返还被扣除的积分
被举报人:
piaobotudou
请选择类型
资源无法下载 ( 404页面、下载失败、资源本身问题)
资源无法使用 (文件损坏、内容缺失、题文不符)
侵犯版权资源 (侵犯公司或个人版权)
虚假资源 (恶意欺诈、刷分资源)
含色情、危害国家安全内容
含广告、木马病毒资源
*投诉人姓名:
*投诉人联系方式:
*版权证明:
*详细原因:
老虎吃绵羊 人机对战
lua console?App Store 上的“五子棋?5 - 经典的单机版五子棋游戏”
只能在 iOS 设备上的 App Store 获取此 App。
五子棋,也称为五子连珠、连珠棋,是传统的黑白棋种之一。五子棋采用和围棋一样的棋盘和黑白棋子,和围棋、中国象棋等同为中国广泛流行的传统棋类运动。本版本是经典的单机版智能五子棋游戏,难度适中,实属休闲益智精品。飞快的速度,贴心的操作,带给您极爽的下棋体验。五级难度设置让人机对战变得更加有趣。功能:1)传统五子棋规则,简单易用。2)支持人机对战或人人对战。3)通过iMessage和朋友进行网络对战。4)支持难度调节。5)支持15x15, 13x13, 11x11, 9x9四种尺寸的棋盘。
修改了五子棋智能算法中的一个问题。增加了支持的语言。
修改了一个界面问题。
2018重磅更新!1. 增加了9x9, 11x11, 13x13三种小尺寸棋盘,更多乐趣,小屏幕上玩着也更舒服!2. 更新了智能引擎,难度调整,黑白平衡。3. 井字棋新增了两级难度。4. 其他小的UI调整和BUG修改。
修改了几个小问题。
优化界面,适配iOS11和iPhone X
支持通过iMessage和朋友进行五子棋或井字棋对战。
修改了在iOS9及之前版本上导致app异常退出的严重问题。
1.修改了轻点落子有偏移的问题。现在轻点直接落子在触点,移动落子则有偏移,以免被手指盖住。 2.修改了导致LV5难度下降的问题。
小的界面调整
界面更新,修改了几个问题。
修改了一些小错误。
UI小调整以及错误修改。
1)增加了“井字棋”(也叫成三棋、圈叉棋,OOXX棋, OX棋),并支持在Apple Watch上玩井字棋游戏。2)修改了双人对战模式下悔棋功能中存在的BUG。3)界面小调整。
1. 支持iPad pro2. 修改bug
调整了菜单界面,操作更顺畅。
增加了5级难度设置,原有难度相当于新的3级。更多乐趣等待着您。
1) 调整了iphone的界面布局,
棋盘靠下,大屏操作更加顺手。2) 修改了转屏的实现,改为只有在ipad可以转屏。3) 修正了iOS7下可能会异常的bug
界面微调,修改了一些bug
支持横版,横竖都能玩,下棋更轻松。精简了设置界面。增加帮助说明。
为iOS8而优化,适配iPhone6/iPhone6 plus。
修正了一些错误。
1. 修正了不同设备下的UI问题,适应iOS72. 调整了设置界面
完美支持iPhone5和iPod touch5的4寸视网膜屏;修改了在iOS6下异常退出的问题。
1. 增加了和棋处理2. 添加了移除广告的内购
AI智能算法微调。BUG修改。
4.6(满分 5 分)
2.4K 个评分
2.4K 个评分
你们是否还有机会赢取了奖池中了我一个人简介场上的主动权。我一直在想你的时候就是一直都宣宗道菜都吃了两天就能看到我就
你们是否还有机会赢取了奖池中了我一个人简介场上的主动权。我一直在想你的时候就是一直都宣宗道菜都吃了两天就能看到我就
这是一款非常不错的游戏,就是难度大了一点,初学者较难战胜。
这是一款非常不错的游戏,就是难度大了一点,初学者较难战胜。
最棒的一个五子棋了 没有之一
最棒的一个五子棋了 没有之一
挑战朋友并查看排行榜和成就。
启用“家人共享”后,此 App 最多可供 6 名家庭成员使用。#include &graphics.h&
#include&bits/stdc++.h&
#define MAXN 1000
int visb[MAXN][MAXN];//记录黑棋
int visw[MAXN][MAXN];//记录白棋
//标记黑棋获胜
//标记白棋子获胜
int flag2;//退出模式
static int MAN=1;
static int COM=-1;
mouse_msg msg = {0};
struct point
int board[MAXN][MAXN];//1是黑棋,-1是白棋,0,表示没有
void CreateMenus()//主菜单
memset(visb,0,sizeof(visb));
memset(visw,0,sizeof(visw));
flag2=0;//退出模式
initgraph();
setbkcolor(EGERGB(0xFF, 0xFF, 0x40));//设置背景颜色
setfillcolor(EGERGB(0x0, 0x80, 0x80));//边框矩形
bar(200, 0, 800,150);
setcolor(EGERGB(0x0, 0xFF, 0x0));//文字颜色
setbkmode(TRANSPARENT);//文字填充透明化
setfont(100, 60, "楷体");
outtextxy(200, 0, "ALPHAGO
setfillcolor(EGERGB(0x40, 0x0, 0x0));//设置背景颜色
bar(300,150,700,500);
//第一个椭圆
setfillcolor(EGERGB(0x00, 0x50, 0x0));//椭圆颜色
fillellipse(500,270,150,70);//椭圆构图
setbkmode(TRANSPARENT);
setcolor(EGERGB(0x0, 0x00, 0xFF));
setfont(40, 20, "楷体");
outtextxy(370,260,"Fight with PC");
//第二个椭圆
setfillcolor(EGERGB(0x00, 0x00, 0x64));
fillellipse(500,430,150,70);
setcolor(EGERGB(0xFF, 0x00, 0x00));
setfont(40, 15, "楷体");
outtextxy(370,400,"Fight with Person");
setcolor(EGERGB(0xFF, 0x0, 0x0));
setbkmode(TRANSPARENT);
setfont(40, 15, "楷体");
outtextxy(710,400,"Author: Meng Zhao");
int jud()//人人判断
for(int i=60;i&=480;i++)
for(int j=60;j&=480;j++)
//判断黑棋
if(visb[i][j]&&visb[i+30][j]&&visb[i+60][j]&&visb[i-30][j]&&visb[i-60][j]) return 1;//横向获胜
else if(visb[i][j]&&visb[i][j+30]&&visb[i][j+60]&&visb[i][j-30]&&visb[i][j-60]) return 1;//纵向获胜
else if(visb[i][j]&&visb[i+30][j+30]&&visb[i+60][j+60]&&visb[i-30][j-30]&&visb[i-60][j-60]) return 1;//斜率为1
else if(visb[i][j]&&visb[i-30][j+30]&&visb[i-60][j+60]&&visb[i+30][j-30]&&visb[i+60][j-60]) return 1;//斜率为-1
//判断白棋
if(visw[i][j]&&visw[i+30][j]&&visw[i+60][j]&&visw[i-30][j]&&visw[i-60][j]) return 2;//横向获胜
else if(visw[i][j]&&visw[i][j+30]&&visw[i][j+60]&&visw[i][j-30]&&visw[i][j-60]) return 2;//纵向获胜
else if(visw[i][j]&&visw[i+30][j+30]&&visw[i+60][j+60]&&visw[i-30][j-30]&&visw[i-60][j-60]) return 2;//斜率为1
else if(visw[i][j]&&visw[i-30][j+30]&&visw[i-60][j+60]&&visw[i+30][j-30]&&visw[i+60][j-60]) return 2;//斜率为-1
int judpc()//人机判断
for(int i=60;i&=480;i+=30)
for(int j=60;j&=480;j+=30)
//判断黑棋
if(board[i][j]==1&&board[i+30][j]==1&&board[i+60][j]==1&&board[i-30][j]==1&&board[i-60][j]==1) return 1;//横向获胜
else if(board[i][j]==1&&board[i][j+30]==1&&board[i][j+60]==1&&board[i][j-30]==1&&board[i][j-60]==1) return 1;//纵向获胜
else if(board[i][j]==1&&board[i+30][j+30]==1&&board[i+60][j+60]==1&&board[i-30][j-30]==1&&board[i-60][j-60]==1) return 1;//斜率为1
else if(board[i][j]==1&&board[i-30][j+30]==1&&board[i-60][j+60]==1&&board[i+30][j-30]==1&&board[i+60][j-60]==1) return 1;//斜率为-1
//判断白棋子
if(board[i][j]==-1&&board[i+30][j]==-1&&board[i+60][j]==-1&&board[i-30][j]==-1&&board[i-60][j]==-1) return 2;//横向获胜
else if(board[i][j]==-1&&board[i][j+30]==-1&&board[i][j+60]==-1&&board[i][j-30]==-1&&board[i][j-60]==-1) return 2;//纵向获胜
else if(board[i][j]==-1&&board[i+30][j+30]==-1&&board[i+60][j+60]==-1&&board[i-30][j-30]==-1&&board[i-60][j-60]==-1) return 2;//斜率为1
else if(board[i][j]==-1&&board[i-30][j+30]==-1&&board[i-60][j+60]==-1&&board[i+30][j-30]==-1&&board[i+60][j-60]==-1) return 2;//斜率为-1
void CreatePCBoard()//人机棋盘
setbkcolor(EGERGB(173, 92, 45));//设置背景颜色
setcolor(BLACK);
for(int i=60;i&510;i+=30)
line(i,60,i,480);
for(int j=60;j&510;j+=30)
line(60,j,480,j);
setcolor(EGERGB(0xFF, 0x0, 0x0));
setbkmode(TRANSPARENT);
setfont(40, 15, "楷体");
outtextxy(750,100,"PVP");
setfillcolor(EGERGB(0xFF,0x0,0x0));
setcolor(EGERGB(0xFF, 0xFF, 0x0));
xyprintf(650, 40, "当前共计下了0棋");
setcolor(EGERGB(255, 255, 255));
setfont(40, 15, "楷体");
xyprintf(700,150,"PC(白):0");
setcolor(EGERGB(0,0,0));
setfont(40, 15, "楷体");
xyprintf(700,200,"Player(黑):0");
setfillcolor(EGERGB(0xFF,0x0,0x0));
bar(700,400,850,450);
setcolor(EGERGB(0x0, 0xFF, 0x0));
outtextxy(750,400,"退出");
void CreatePVPboard()//人人棋盘
setbkcolor(EGERGB(173, 92, 45));//设置背景颜色
setcolor(BLACK);
for(int i=60;i&510;i+=30)
line(i,60,i,480);
for(int j=60;j&510;j+=30)
line(60,j,480,j);
setcolor(EGERGB(0xFF, 0x0, 0x0));
setbkmode(TRANSPARENT);
setfont(40, 15, "楷体");
outtextxy(750,100,"PVP");
setfillcolor(EGERGB(0xFF,0x0,0x0));
setcolor(EGERGB(0xFF, 0xFF, 0x0));
xyprintf(650, 40, "当前共计下了0棋");
setcolor(EGERGB(255, 255, 255));
setfont(40, 15, "楷体");
xyprintf(700,150,"P1(白):0");
setcolor(EGERGB(0,0,0));
setfont(40, 15, "楷体");
xyprintf(700,200,"P2(黑):0");
setfillcolor(EGERGB(0xFF,0x0,0x0));
bar(700,400,850,450);
setcolor(EGERGB(0x0, 0xFF, 0x0));
outtextxy(750,400,"退出");
void PVPshow()//显示当前棋盘状况
setbkcolor(EGERGB(173, 92, 45));//设置背景颜色
setcolor(BLACK);
for(int i=60;i&510;i+=30)
line(i,60,i,480);
for(int j=60;j&510;j+=30)
line(60,j,480,j);
for(int i=60;i&=480;i++)
for(int j=60;j&=480;j++)
if(visw[i][j])
setcolor(EGERGB(255, 255, 255));
setfillcolor(EGERGB(255,255,255));
fillellipse(i,j,15,15);
if(visb[i][j])
setcolor(EGERGB(0, 0, 0));
setfillcolor(EGERGB(0,0,0));
fillellipse(i,j,15,15);
setcolor(EGERGB(0xFF, 0xFF, 0x0));
setbkmode(TRANSPARENT);
setfont(40, 15, "楷体");
xyprintf(650, 40, "当前共计下了%d棋",step-1);
setcolor(EGERGB(0xFF, 0x0, 0x0));
setbkmode(TRANSPARENT);
setfont(40, 15, "楷体");
outtextxy(750,100,"PVP");
setcolor(EGERGB(255, 255, 255));
setfont(40, 15, "楷体");
xyprintf(700,150,"P1(白):%d",(step-1)/2+(step-1)%2);
setcolor(EGERGB(0,0,0));
setfont(40, 15, "楷体");
xyprintf(700,200,"P2(黑):%d",(step-1)/2);
setfillcolor(EGERGB(0xFF,0x0,0x0));
bar(700,400,850,450);
setcolor(EGERGB(0x0, 0xFF, 0x0));
outtextxy(750,400,"退出");
setcolor(EGERGB(0, 0, 0));
setbkmode(TRANSPARENT);
setfont(20, 10, "楷体");
outtextxy(630,350,"黑棋获胜,点击下方回到主菜单");
else if(wwin)
setcolor(EGERGB(255, 255, 255));
setbkmode(TRANSPARENT);
setfont(20, 10, "楷体");
outtextxy(650,350,"白棋获胜,点击下方退出键回到主菜单");
void PVEshow()//显示当前人机棋盘状况
setbkcolor(EGERGB(173, 92, 45));//设置背景颜色
setcolor(BLACK);
for(int i=60;i&510;i+=30)
line(i,60,i,480);
for(int j=60;j&510;j+=30)
line(60,j,480,j);
for(int i=60;i&=480;i++)
for(int j=60;j&=480;j++)
if(board[i][j]==-1)
setcolor(EGERGB(255, 255, 255));
setfillcolor(EGERGB(255,255,255));
fillellipse(i,j,15,15);
if(board[i][j]==1)
setcolor(EGERGB(0, 0, 0));
setfillcolor(EGERGB(0,0,0));
fillellipse(i,j,15,15);
setcolor(EGERGB(0xFF, 0xFF, 0x0));
setbkmode(TRANSPARENT);
setfont(40, 15, "楷体");
xyprintf(650, 40, "当前共计下了%d棋",step+steppc);
setcolor(EGERGB(0xFF, 0x0, 0x0));
setbkmode(TRANSPARENT);
setfont(40, 15, "楷体");
outtextxy(750,100,"PVP");
setcolor(EGERGB(255, 255, 255));
setfont(40, 15, "楷体");
xyprintf(700,150,"PC(白):%d",steppc);
setcolor(EGERGB(0,0,0));
setfont(40, 15, "楷体");
xyprintf(700,200,"Player(黑):%d",step);
setfillcolor(EGERGB(0xFF,0x0,0x0));
bar(700,400,850,450);
setcolor(EGERGB(0x0, 0xFF, 0x0));
outtextxy(750,400,"退出");
setcolor(EGERGB(0, 0, 0));
setbkmode(TRANSPARENT);
setfont(20, 10, "楷体");
outtextxy(630,350,"玩家(黑)获胜,点击下方回到主菜单");
else if(wwin)
setcolor(EGERGB(255, 255, 255));
setbkmode(TRANSPARENT);
setfont(20, 10, "楷体");
outtextxy(650,350,"电脑(白)获胜,点击下方退出键回到主菜单");
void pvp()//人人对战
CreatePVPboard();
step=1;//步数初始化
for ( ; is_run(); )
msg = getmouse();
//边界条件
if((int)msg.is_down()&&(int)msg.x&&(int)msg.y&&visw[(int)msg.x-(int)msg.x%30][(int)msg.y-(int)msg.y%30]==0&&visb[(int)msg.x-(int)msg.x%30][(int)msg.y-(int)msg.y%30]==0&&msg.x&=50&&msg.x&=485&&msg.y&=55&&msg.y&=485)
step++;//每走一步,步数+1
if((step)&1)
visb[(int)msg.x-(int)msg.x%30][(int)msg.y-(int)msg.y%30]=1;//奇数下黑棋//取余是为了精确计算
if((step)%2==0)
visw[(int)msg.x-(int)msg.x%30][(int)msg.y-(int)msg.y%30]=1;//偶数下白棋;
if(jud()==1) bwin=1;
else if(jud()==2) wwin=1;
cleardevice();
PVPshow();
if(bwin||wwin)
void pcposition()
srand((int)time(NULL));
px=rand()%421+60;
py=rand()%421+60;
while(board[px-px%30][py-py%30]==1||board[px-px%30][py-py%30]==-1)
px=rand()%421+60;
py=rand()%421+60;
int qiju[480][480][8][2];
int oldp[480][480];
int newp[480][480];
int caculate(int oldp[480][480],int qiuju[480][480][8][2])//棋局评估
int dirx[8]={0,30,30,30,0,-30,-30,-30};//八个方向
int diry[8]={30,30,0,-30,-30,-30,0,30};//八个方向
for(int i=60;i&=480;i+=30)
for(int j=60;j&=480;j+=30)
if(oldp[i][j]==0)//此处为空
for(int k=0;k&8;k++)
for(int t=0;t&5;t++)
tx+=dirx[k];
ty+=diry[k];
if(tx&60||tx&480||ty&60||ty&480)
if(oldp[tx][ty]==1)//黑棋
qiju[i][j][k][0]=
for(int t=0;t&5;t++)
tx+=dirx[k];
ty+=diry[k];
if(tx&60||tx&480||ty&60||ty&480)
if(oldp[tx][ty]==-1)
qiju[i][j][k][1]=
int naiveline()
for(int i=60;i&=480;i+=30)
for(int j=60;j&=480;j+=30)
if(board[i][j]==0)
int win=0;
for(int k=0;k&4;k++)
if(qiju[i][j][k][0]+qiju[i][j][k+4][0]&=4)
win+=10000;
else if(qiju[i][j][k][0]+qiju[i][j][k+4][0]==3)
win+=1000;
else if(qiju[i][j][k][0]+qiju[i][j][k+4][0]==2)
else if(qiju[i][j][k][0]+qiju[i][j][k+4][0]==1)
a1[i][j]=//黑棋
for(int k=0;k&4;k++)
if(qiju[i][j][k][1]+qiju[i][j][k+4][1]&=4)
win+=10000;
else if(qiju[i][j][k][1]+qiju[i][j][k+4][1]==3)
win+=1000;
else if(qiju[i][j][k][1]+qiju[i][j][k+4][1]==2)
else if(qiju[i][j][k][1]+qiju[i][j][k+4][1]==1)
a2[i][j]=//白棋子
void AIprotect()//防守型AI
int x1=270,y1=270;
int x2=270,y2=270;
for(int i=60;i&=480;i+=30)
for(int j=60;j&=480;j+=30)
oldp[i][j]=board[i][j];
newp[i][j]=board[i][j];
memset(qiju,0,sizeof(qiju));
memset(a1,0,sizeof(a1));
memset(a2,0,sizeof(a2));
caculate(oldp,qiju);
naiveline();
for(int i=60;i&=480;i+=30)
for(int j=60;j&=480;j+=30)
if(a2[x2][y2]&a2[i][j])
for(int i=60;i&=480;i+=30)
for(int j=60;j&=480;j+=30)
if(a1[x1][y1]&a1[i][j])
if(a2[x2][y2]&a1[x1][y1])
void pveeasy()//人工智障
memset(board,0,sizeof(board));//清空棋盘
int flag3=0;
CreatePCBoard();
AIprotect();
board[px-px%30][py-py%30]=-1;
cleardevice();
PVEshow();
for(;is_run();)
msg=getmouse();
if((int)msg.is_down()&&(int)msg.x&&(int)msg.y&&board[(int)msg.x-(int)msg.x%30][(int)msg.y-(int)msg.y%30]==0&&msg.x&=50&&msg.x&=485&&msg.y&=55&&msg.y&=485)
board[(int)msg.x-(int)msg.x%30][(int)msg.y-(int)msg.y%30]=1;//奇数下黑棋//取余是为了精确计算
cleardevice();
PVEshow();
if(judpc()==1)
pcposition();
board[px-px%30][py-py%30]=-1;
cleardevice();
PVEshow();
if(judpc()==2)
cleardevice();
PVEshow();
void pve()//中等难度
memset(board,0,sizeof(board));//清空棋盘
int flag3=0;
CreatePCBoard();
AIprotect();
board[px-px%30][py-py%30]=-1;
cleardevice();
PVEshow();
for(;is_run();)
msg=getmouse();
if((int)msg.is_down()&&(int)msg.x&&(int)msg.y&&board[(int)msg.x-(int)msg.x%30][(int)msg.y-(int)msg.y%30]==0&&msg.x&=50&&msg.x&=485&&msg.y&=55&&msg.y&=485)
board[(int)msg.x-(int)msg.x%30][(int)msg.y-(int)msg.y%30]=1;//奇数下黑棋//取余是为了精确计算
cleardevice();
PVEshow();
if(judpc()==1)
AIprotect();
board[px-px%30][py-py%30]=-1;
cleardevice();
PVEshow();
if(judpc()==2)
cleardevice();
PVEshow();
void createPC2()
int flag=0;
setbkcolor(EGERGB(255,255, 255));//设置背景颜色
setfillcolor(EGERGB(0,139,139));
bar(200,100,800,200);
setfillcolor(EGERGB(0,139,139));
bar(200,300,800,400);
setbkmode(TRANSPARENT);//文字填充透明化
setcolor(EGERGB(160,32,240));
setfont(70,30,"微软雅黑");
outtextxy(380,100,"人工智障");
setcolor(EGERGB(160,32,240));
setfont(70,30,"微软雅黑");
outtextxy(350,300,"初级人工智能");
for ( ; is_run(); delay_fps(60))//鼠标操作
//获取鼠标消息,这个函数会等待,等待到有消息为止
//类似地,有和kbhit功能相近的函数MouseHit,用于检测有没有鼠标消息
while (mousemsg())
msg = getmouse();
//格式化输出为字符串,用于后面输出
//msg和flag常数请参考文档或者mouse_msg_e, mouse_flag_e的声明
if(msg.is_left()&&msg.x&=200&&msg.x&=800&&msg.y&=100&&msg.y&=200)
cleardevice();
if(msg.is_left()&&msg.x&=200&&msg.x&=800&&msg.y&=300&&msg.y&=400)
cleardevice();
if(flag==1)
pveeasy();
else if(flag==2)
void choose()
for ( ; is_run(); delay_fps(60))//鼠标操作
//获取鼠标消息,这个函数会等待,等待到有消息为止
//类似地,有和kbhit功能相近的函数MouseHit,用于检测有没有鼠标消息
while (mousemsg())
msg = getmouse();
//格式化输出为字符串,用于后面输出
//msg和flag常数请参考文档或者mouse_msg_e, mouse_flag_e的声明
if(msg.is_left()&&msg.x&=350&&msg.x&=650&&msg.y&=340&&msg.y&=200)
cleardevice();
if(msg.is_left()&&msg.x&=350&&msg.x&=650&&msg.y&=350&&msg.y&=500)
cleardevice();
if(flag==1)//进行人机大战
cleardevice();
createPC2();
//人人对抗
else if(flag==2)
void exitt()//退出到主菜单
for(; is_run(); )
msg = getmouse();
if((int)msg.is_down()&&(int)msg.x&=700&&msg.x&=850&&msg.y&=400&&msg.y&=450)
cleardevice();
CreateMenus();
int main()
CreateMenus();//主菜单
choose();//菜单栏选择
五子棋人机博弈
五子棋,人与人之间博弈,我们不用考虑太多,都是玩家自动思考。
但是如果我们要玩一个单机的五子棋,实现人机的对战,那么我就得“帮”电脑考虑下走哪步了。
实现的方法大概有三种:
java五子棋界面编写及判断胜负的方法
五子棋人机实现和人人实现(java)
这学期期末课程设计选题选的是《用java完成五子棋人机以及人人对战》。其中人人主要是java的网络编程,运用UDP,socket来传输数据,...
五子棋游戏人机版:
电脑实现了阻挡对方连续的棋子#include&iostream&
#include&iomanip&
废话不多说,咱直接进入正题
首先,为了方便,咱们先用一个Java接口把一些全局要用的数据写到接口里,这样就不用传来传去了
public interface...
五子棋的游戏模式切换方法,可实现人机与人人反复无缝切换 并可观战电脑对战电脑...
没有更多推荐了,说明:&&基于局域网的五子棋
可实现人人对战 人机对战(LAN-based human-computer backgammon can be achieved for all Battle Battle)
文件列表:
3_1\3_1.aps
3_1\3_1.clw
3_1\3_1.cpp
3_1\3_1.dsp
3_1\3_1.dsw
3_1\3_1.ncb
3_1\3_1.opt
3_1\3_1.plg
3_1\3_1.rc
3_1\3_1Doc.cpp
3_1\3_1Doc.h
3_1\3_1View.cpp
3_1\3_1View.h
3_1\Debug\3_1.exe
3_1\MainFrm.cpp
3_1\MainFrm.h
3_1\MFM1992
3_1\ReadMe.txt
3_1\res\3_1.ico
3_1\res\3_1.rc2
3_1\res\3_1Doc.ico
3_1\res\bitmap1.bmp
3_1\res\bitmap2.bmp
3_1\res\bmp00001.bmp
3_1\res\bmp00002.bmp
3_1\res\cursor1.cur
3_1\res\cursor2.cur
3_1\res\ico00001.ico
3_1\res\icon1.ico
3_1\res\Toolbar.bmp
3_1\resource.h
3_1\StdAfx.cpp
3_1\StdAfx.h
近期下载者:
相关文件:C++如何用栈实现五子棋的悔棋功能_百度知道
C++如何用栈实现五子棋的悔棋功能
答题抽奖
首次认真答题后
即可获得3次抽奖机会,100%中奖。
种烧饼的怪叔叔
来自电脑网络类芝麻团
种烧饼的怪叔叔
采纳数:521
获赞数:1714
参与团队:
落子的时候坐标入栈,绘制棋子。悔棋的时候坐标出栈,把该坐标的棋子抹去。
为你推荐:
其他类似问题
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 python人机对战五子棋 的文章

 

随机推荐