资源简介
人工智能重力四子棋的AI,α-β剪枝实现。效果很不错。
代码片段和文件信息
#include “Judge.h“
bool userWin(const int x const int y const int M const int N int* const* board){
//横向检测
int i j;
int count = 0;
for (i = y; i >= 0; i--)
if (!(board[x][i] == 1))
break;
count += (y - i);
for (i = y; i < N; i++)
if (!(board[x][i] == 1))
break;
count += (i - y - 1);
if (count >= 4) return true;
//纵向检测
count = 0;
for (i = x; i < M; i++)
if (!(board[i][y] == 1))
break;
count += (i - x);
if (count >= 4) return true;
//左下-右上
count = 0;
for (i = x j = y; i < M && j >= 0; i++ j--)
if (!(board[i][j] == 1))
break;
count += (y - j);
for (i = x j = y; i >= 0 && j < N; i-- j++)
if (!(board[i][j] == 1))
break;
count += (j - y - 1);
if (count >= 4) return true;
//左上-右下
count = 0;
for (i = x j = y; i >= 0 && j >= 0; i-- j--)
if (!(board[i][j] == 1))
break;
count += (y - j);
for (i = x j = y; i < M && j < N; i++ j++)
if (!(board[i][j] == 1))
break;
count += (j - y - 1);
if (count >= 4) return true;
return false;
}
bool machineWin(const int x const int y const int M const int N int* const* board){
//横向检测
int i j;
int count = 0;
for (i = y; i >= 0; i--)
if (!(board[x][i] == 2))
break;
count += (y - i);
for (i = y; i < N; i++)
if (!(board[x][i] == 2))
break;
count += (i - y - 1);
if (count >= 4) return true;
//纵向检测
count = 0;
for (i = x; i < M; i++)
if (!(board[i][y] == 2))
break;
count += (i - x);
if (count >= 4) return true;
//左下-右上
count = 0;
for (i = x j = y; i < M && j >= 0; i++ j--)
if (!(board[i][j] == 2))
break;
count += (y - j);
for (i = x j = y; i >= 0 && j < N; i-- j++)
if (!(board[i][j] == 2))
break;
count += (j - y - 1);
if (count >= 4) return true;
//左上-右下
count = 0;
for (i = x j = y; i >= 0 && j >= 0; i-- j--)
if (!(board[i][j] == 2))
break;
count += (y - j);
for (i = x j = y; i < M && j < N; i++ j++)
if (!(board[i][j] == 2))
break;
count += (j - y - 1);
if (count >= 4) return true;
return false;
}
bool isTie(const int N const int* top){
bool tie = true;
for (int i = 0; i < N; i++)
{
if (top[i] > 0)
{
tie = false;
break;
}
}
return tie;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 503 2013-06-07 16:52 Point.h
文件 15372 2013-06-10 05:26 Strategy.cpp
文件 4383 2013-06-10 05:23 Strategy.h
文件 2730 2013-06-07 16:52 Judge.cpp
文件 2517 2013-06-07 16:52 Judge.h
----------- --------- ---------- ----- ----
25505 5
- 上一篇:基于LabVIEW的秒表设计
- 下一篇:LabVIEW 的交通灯 程序
相关资源
- AIML参考手册中文版
- 半监督学习的Co_training算法研究.pdf
- Ruby on Rails安装指南.docx
- THAIPHOON BURNER Free 16.0.0.1 build 0426 Prev
- Deepnude.txt134103
- aix下打补丁的教程,含图片
-
failed to execute sc
ript 解决方案+命令行 - 蓝牙对战五子棋,含ai
- Intel RAID Simulator模拟器
- zw_cailunchong-1305615-C代码.zip
- BaiDu.exe
- 中国动车组交路查询
- PCAP01_SPI_main编程代码.zip
- 国科大高级人工智能18-19回忆版
- Akamai CDN
- polynav2D.zip
- Cognex Designer Sales Training 实战范例_Pa
- 批量抓取邮箱地址(EasyEmailExtractor)
- ekf2_main的主要处理流程图.vsdx
- 水滴修改版,可用于kali 2019.2版本
- IBM小机更换万兆网卡操作说明
- 静默安装实用常用软件
- MainWindow.rar
- qt QPainter 绘制跑马灯
- Qt 使用sendemailapi实现邮件发送
- 人工智能线性代数基础
- ActiveX Control Test Container
- 机器人超酷镭雕AI
- jmeter.results.shanhe.me.xsl和jmeter-results-
- baiduyuanpan.txt
评论
共有 条评论