资源简介
用fltk库编写的五子棋代码,内含简单的ai,有界面,实现了多种功能,无禁手
代码片段和文件信息
#ifndef AI_H
#define AI_H
/*评分规则:
*代表玩家方的棋子及棋盘边线,+代表空位,o代表Ai的棋子
+ o + 1 分 单子
+ o o + 10 分 双连
+ o o o * 5 分 冲三
+ o o o + 50 分 活三
+ o o o o * 2000分 冲四
+ o o o o + 500分 活四
o o o o o 5000分 五子连珠
如果对玩家棋子进行评分,则o和*交换,分数取负即可。
*/
#include“board1.h“
#include“game_window.h“
extern game_window *win;//外部定义
void board::black_ai()//黑棋的ai
{
if( win->someone_win==1)//若已经分出胜负或者棋盘上已经有人下过子则不能落子
{ cout<<“wrong\n“;
return ;}
int a_qipan[N][N]={
{000000000000000}
{011111111111110}
{012222222222210}
{012333333333210}
{012344444443210}
{012345555543210}
{012345666543210}
{012345676543210}
{012345666543210}
{012345555543210}
{012344444443210}
{012333333333210}
{012222222222210}
{011111111111110}
{000000000000000}};//初始化
for(int i=0;i {
for(int j=0;j {//1的情况
if( win->qipan[i][j-1]==1 || win->qipan[i][j+1]==1 ||
win->qipan[i-1][j]==1 || win->qipan[i+1][j]==1 ||
win->qipan[i-1][j-1]==1 || win->qipan[i+1][j+1]==0 ||
win->qipan[i-1][j+1]==1 || win->qipan[i+1][j-1]==1 )
a_qipan[i][j]+=1;
//2的情况
if(win->qipan[i-2][j]==1 && win->qipan[i-1][j]==1)
a_qipan[i][j]+=5;
if(win->qipan[i+2][j]==1 && win->qipan[i+1][j]==1)
a_qipan[i][j]+=5;
if(win->qipan[i][j-2]==1 && win->qipan[i][j-1]==1)
a_qipan[i][j]+=5;
if(win->qipan[i][j+2]==1 && win->qipan[i][j+1]==1)
a_qipan[i][j]+=5;
if(win->qipan[i+2][j+2]==1 && win->qipan[i+1][j+1]==1)
a_qipan[i][j]+=5;
if(win->qipan[i-2][j+2]==1 && win->qipan[i-1][j+1]==1)
a_qipan[i][j]+=5;
if(win->qipan[i+2][j-2]==1 && win->qipan[i+1][j-1]==1)
a_qipan[i][j]+=5;
if(win->qipan[i-2][j-2]==1 && win->qipan[i-1][j-1]==1)
a_qipan[i][j]+=5;
if(win->qipan[i+1][j-1]==1 && win->qipan[i-1][j+1]==1)
a_qipan[i][j]+=10;
if(win->qipan[i+1][j]==1 && win->qipan[i-1][j]==1)
a_qipan[i][j]+=10;
if(win->qipan[i][j-1]==1 && win->qipan[i][j+1]==1)
a_qipan[i][j]+=10;
if(win->qipan[i+1][j+1]==1 && win->qipan[i-1][j-1]==1)
a_qipan[i][j]+=10;
//3
if(win->qipan[i][j+3]==1 && win->qipan[i][j+2]==1 && win->qipan[i][j+1]==1 )
a_qipan[i][j]+=100;
if(win->qipan[i][j-3]==1 && win->qipan[i][j-2]==1 && win->qipan[i][j-1]==1 )
a_qipan[i][j]+=100;
if(win->qipan[i-3][j]==1 && win->qipan[i-2][j]==1 && win->qipan[i-1][j]==1 )
a_qipan[i][j]+=100;
if(win->qipan[i+3][j]==1 && win->qipan[i+2][j]==1 && win->qipan[i+1][j]==1 )
a_qipan[i][j]+=100;
if(win->qipan[i+3][j+3]==1 && win->qipan[i+2][j+2]==1
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2012-07-14 15:57 五子棋代码\
目录 0 2012-07-14 15:57 五子棋代码\Debug\
文件 821248 2012-07-14 15:56 五子棋代码\Debug\exercise7---1-1.exe
文件 1754852 2012-07-14 15:56 五子棋代码\Debug\exercise7---1-1.ilk
文件 3107840 2012-07-14 15:56 五子棋代码\Debug\exercise7---1-1.pdb
目录 0 2012-07-14 15:57 五子棋代码\exercise7---1-1\
目录 0 2012-07-14 15:57 五子棋代码\exercise7---1-1\Debug\
文件 149684 2012-07-14 15:56 五子棋代码\exercise7---1-1\Debug\CL.read.1.tlog
文件 3894 2012-07-14 15:56 五子棋代码\exercise7---1-1\Debug\CL.write.1.tlog
文件 154609 2012-07-14 15:56 五子棋代码\exercise7---1-1\Debug\ai.obj
文件 148898 2012-07-14 15:20 五子棋代码\exercise7---1-1\Debug\board1.obj
文件 354814 2012-07-14 15:20 五子棋代码\exercise7---1-1\Debug\button.obj
文件 3658 2012-07-14 15:56 五子棋代码\exercise7---1-1\Debug\cl.command.1.tlog
文件 3247 2012-07-14 13:22 五子棋代码\exercise7---1-1\Debug\exercise7---1-1.Build.CppClean.log
文件 381 2012-07-14 15:56 五子棋代码\exercise7---1-1\Debug\exercise7---1-1.exe.intermediate.manifest
文件 95 2012-07-14 15:56 五子棋代码\exercise7---1-1\Debug\exercise7---1-1.lastbuildstate
文件 29706 2012-07-14 15:56 五子棋代码\exercise7---1-1\Debug\exercise7---1-1.log
文件 100914 2012-07-14 15:20 五子棋代码\exercise7---1-1\Debug\game_window.obj
文件 2522 2012-07-14 15:56 五子棋代码\exercise7---1-1\Debug\li
文件 5530 2012-07-14 15:56 五子棋代码\exercise7---1-1\Debug\li
文件 1742 2012-07-14 15:56 五子棋代码\exercise7---1-1\Debug\li
文件 70772 2012-07-14 15:20 五子棋代码\exercise7---1-1\Debug\main.obj
文件 632 2012-07-14 15:56 五子棋代码\exercise7---1-1\Debug\mt.command.1.tlog
文件 808 2012-07-14 15:56 五子棋代码\exercise7---1-1\Debug\mt.read.1.tlog
文件 436 2012-07-14 15:56 五子棋代码\exercise7---1-1\Debug\mt.write.1.tlog
文件 1117184 2012-07-14 15:56 五子棋代码\exercise7---1-1\Debug\vc100.idb
文件 757760 2012-07-14 15:56 五子棋代码\exercise7---1-1\Debug\vc100.pdb
文件 137216 2012-07-10 23:20 五子棋代码\exercise7---1-1\Fmod.dll
文件 43611 2012-07-10 23:18 五子棋代码\exercise7---1-1\Fmod.h
文件 155352 2012-07-10 23:20 五子棋代码\exercise7---1-1\Fmodvc.lib
文件 19595 2012-07-14 15:56 五子棋代码\exercise7---1-1\ai.cpp
............此处省略26个文件信息
相关资源
- ARM9 Linux系统下的五子棋游戏
- 基于QT的五子棋系统
- 五子棋算法源码
- Qt编写局域网内五子棋对战
- 蓝牙对战五子棋(+文档).zip
- 阿尔法贝塔剪枝算法五子棋
- apicloud案例+五子棋+人机对战+人人对战
- 三个AI小游戏unity-五子棋、扫雷、Wu
- Visual Studio实现五子棋含人机对战
- 基于TCP协议的五子棋
- unity—五子棋源码
- 五子棋(人机,人人,联网)
- FPGAEGO1板五子棋.rar
- 剪枝算法五子棋源程序
- 网络课程设计基于Linux的五子棋游戏开
- 人工智能实验报告 五子棋游戏
- 五子棋人机博弈 游戏
- 使用socket实现的五子棋游戏
- 五子棋人机对战 图解 算法举例
- 五个汇编小程序,乘法表,俄罗斯方
- 五子棋程序_毕业设计报告
- IOS五子棋小
- 基于ALPHA-BETA算法的五子棋程序
- 简易五子棋qt实现
- 五子棋alphabeta
- 五子棋终结者
- 五子棋源码+算法详解
- 基于51单片机实现简单五子棋
- 五子棋(含较高级的人机对战)
- 基于CSocKet的网络应用五子棋设计与实
评论
共有 条评论