资源简介
入口参数为当前棋盘状态,用char current[15][15]表示,0为空格,1为黑子,2为白子
代码片段和文件信息
#include
using namespace std;
char current[15][15];
int KeyForbid(char current[15][15]int xint yint adjacentint direction);
int Forbid(char current[15][15] int x int y)
{
int NearBlack[8]; //(xy)相邻连续的黑子个数
int NearEmpty[8]; //黑子NearBlack后相邻的连续空格数
int EmptyBlack[8]; //空格NearEmpty后相邻的连续黑子数
int NextEmpty[8]; //黑子EmptyBlack后的相邻的连续空格数
int NextBlack[8]; //空格NextEmpty后相邻的连续的黑子数
//Initialize
for(int k=0;k<8;k++)
NearBlack[k]=NearEmpty[k]=EmptyBlack[k]=NextEmpty[k]=NextBlack[k]=0;
current[x][y]=‘1‘;
int i=0j=0;
//Search Up
for(i=x-1; i>=0&¤t[i][y]==‘1‘; i-- NearBlack[0]++);
for(;i>=0&¤t[i][y]==‘0‘; i-- NearEmpty[0]++);
for(;i>=0&¤t[i][y]==‘1‘; i-- EmptyBlack[0]++);
for(;i>=0&¤t[i][y]==‘0‘; i-- NextEmpty[0]++);
for(;i>=0&¤t[i][y]==‘1‘; i-- NextBlack[0]++);
//Search Right Up
for(i=x-1j=y+1; i>=0&&j<15&¤t[i][j]==‘1‘; i--j++NearBlack[1]++);
for(;i>=0&&j<15&¤t[i][j]==‘0‘; i--j++ NearEmpty[1]++);
for(;i>=0&&j<15&¤t[i][j]==‘1‘; i--j++ EmptyBlack[1]++);
for(;i>=0&&j<15&¤t[i][j]==‘0‘; i--j++ NextEmpty[1]++);
for(;i>=0&&j<15&¤t[i][j]==‘1‘; i--j++ NextBlack[1]++);
//Search Right
for(j=y+1; j<15&¤t[x][j]==‘1‘; j++NearBlack[2]++);
for(;j<15&¤t[x][j]==‘0‘; j++ NearEmpty[2]++);
for(;j<15&¤t[x][j]==‘1‘; j++ EmptyBlack[2]++);
for(;j<15&¤t[x][j]==‘0‘; j++ NextEmpty[2]++);
for(;j<15&¤t[x][j]==‘1‘; j++ NextBlack[2]++);
//Search Right Down
for(i=x+1j=y+1; i<15&&j<15&¤t[i][j]==‘1‘; i++j++NearBlack[3]++);
for(;i<15&&j<15&¤t[i][j]==‘0‘; i++j++ NearEmpty[3]++);
for(;i<15&&j<15&¤t[i][j]==‘1‘; i++j++ EmptyBlack[3]++);
for(;i<15&&j<15&¤t[i][j]==‘0‘; i++j++ NextEmpty[3]++);
for(;i<15&&j<15&¤t[i][j]==‘1‘; i++j++ NextBlack[3]++);
//Search Down
for(i=x+1; i<15&¤t[i][y]==‘1‘; i++NearBlack[4]++);
for(;i<15&¤t[i][y]==‘0‘; i++ NearEmpty[4]++);
for(;i<15&¤t[i][y]==‘1‘; i++ EmptyBlack[4]++);
for(;i<15&¤t[i][y]==‘0‘; i++ NextEmpty[4]++);
for(;i<15&¤t[i][y]==‘1‘; i++ NextBlack[4]++);
//Search Left Down
for(i=x+1j=y-1; i<15&&j>=0&¤t[i][j]==‘1‘; i++j--NearBlack[5]++);
for(;i<15&&j>=0&¤t[i][j]==‘0‘; i++j--NearEmpty[5]++);
for(;i<15&&j>=0&¤t[i][j]==‘1‘; i++j-- EmptyBlack[5]++);
for(;i<15&&j>=0&¤t[i][j]==‘0‘; i++j-- NextEmpty[5]++);
for(;i<15&&j>=0&¤t[i][j]==‘1‘; i++j-- NextBlack[5]++);
//Search Left
for(j=y-1;j>=0&¤t[x][j]==‘1‘; j--NearBlack[6]++);
for(;j>=0&¤t[x][j]==‘0‘; j--NearEmpty[6]++);
for(;j>=0&¤t[x][j]==‘1‘; j-- EmptyBlack[6]++);
for(;j>=0&¤t[x][j]==‘0‘; j--NextEmpty[6]++);
for(;j>=0&¤t[x][j]==‘1‘; j-- NextBlack[6]++);
//Search Left Up
for(i=x-1j=y-1; i>=0&&j>=0&¤t[i][j]==‘1‘; i--j--NearBlack[7]++);
for(;i>=0&&j>=0&¤t[i][j]==‘0‘; i--
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 8060 2008-11-11 13:45 判赢+禁手\Forbid.cpp
文件 1637 2008-11-11 13:48 判赢+禁手\win.cpp
文件 7433 2008-11-13 23:35 判赢+禁手\Forbid.h
文件 1127 2008-11-13 23:30 判赢+禁手\win.h
文件 715 2008-11-13 23:34 判赢+禁手\使用说明.txt
目录 0 2008-11-11 13:47 判赢+禁手
----------- --------- ---------- ----- ----
18972 6
- 上一篇:acm学习课件《ACM算法与程序设计》
- 下一篇:Unicursal.rar
相关资源
- 超强五子棋软件 奕心2015
- AI五子棋训练棋谱
- 最强五子棋
- 基于S3C2410的触摸屏五子棋游戏毕业设
- 五子棋可单机双人,单机与电脑和局
- stm32实现的五子棋AI人机对战+人人对战
- 微信小程序--五子棋单机版
- VC五子棋毕业论文
- unity3D网络五子棋
- 弈心五子棋人工智能引擎
- 基于STM32的五子棋对战平台
- unity网络五子棋源代码
- 智能AI,QT五子棋
- 可判定禁手保存棋局的五子棋源码
- 用汇编编写的五子棋代码
- 五子棋实习报告五子棋实习报告
- 五子棋
- 五子棋(GoBang) 安卓APP 源码
- STM32五子棋游戏
- 蓝牙五子棋 安卓
- VC五子棋源代码 想要的速度下哦 多线
- 五子棋局域网对战 项目源码
- alphaZero五子棋
- 中国象棋和五子棋的算法讲解和vc源代
- 人机博弈 游戏源码解析以及基本搜索
- 6款H5小游戏源码包含有五子棋 3d魔方
- LabVIEW五子棋制作教程
- BlackStone+fiver6+renjusolver 五子棋三合一
- alphabeta搜索五子棋
- 汇编语言五子棋程序
评论
共有 条评论