资源简介
设计的人工智能重力四子棋的对抗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;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2730 2011-10-22 00:22 重力四子棋\Judge.cpp
文件 2517 2011-10-22 00:22 重力四子棋\Judge.h
文件 503 2011-10-22 00:22 重力四子棋\Point.h
文件 12241 2012-12-05 11:49 重力四子棋\Strategy.cpp
文件 877 2012-12-04 17:13 重力四子棋\Strategy.h
目录 0 2012-12-17 11:00 重力四子棋
----------- --------- ---------- ----- ----
18868 6
- 上一篇:精易VIP模块4.30源码
- 下一篇:pic16f877a的跑马灯
相关资源
- 人工智能 水壶问题的求解.rar
- 人工智能 基于归结原理的推理系统
- 人工智能基础教程 12硬币问题.rar
- 八数码Astar算法js实现-人工智能大作业
- 物联网与人工智能
- 大数据云计算物联网人工智能四者的
- 人工智能产品经理最佳实践教程
- 信号与数据处理中的低秩模型——理
- 序列优化算法改写
- 什么是极限学习机
- 人工智能大作业pacman满分代码
- ESN和CRJ网络
- 逻辑回归实战代码
- 浅析机器学习的研究与应用
- 基于BP神经网络的企业核心竞争力评价
- 人工智能-知识图谱-实战.docx
- 人工智能实验报告2份 Prolog语言编程练
- 人工智能及其应用课后答案
- 重力归一化梯度反演程序
- A*算法实现迷宫问题
- 智能扫地机器人全覆盖遍历路径规划
- 专家系统的实现代码和实验报告
- 高级人工智能第二版史忠植.txt
- 人工智能复习题
- 产生式系统与动物识别
- 动物识别系统
- 人工智能文档
- 人工智能原理及其应用(王万森)第
- mpu6050检测角度
- 哈工大秋季学期人工智能3学分第三个
评论
共有 条评论