没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
20页
实验内容:利用α-β剪枝算法,按照不同搜索深度,设计多个水平级别的“一字棋”游戏。 注:“一字棋”游戏(又叫“三子棋”或“井字棋”),是一款十分经典的益智 小游戏。“井字棋”的棋盘很简单,是一个 3×3 的格子,很像中国文字中的“井”字,所以得名“井字棋”。“井字棋”游戏的规则与“五子棋”十分类似,“五子棋”的规则是一方首先五子连成一线就胜利;“井字棋”是一方首先三子连成一线就胜利。
资源推荐
资源详情
资源评论
实验课程名称:__人工智能_
实验项目名称 α-β 剪枝算法
实验成绩
实 验 者 毛毛 专业班级 学 号
实验日期 2017 年 10 月 22 日
一、实验内容
利用 α-β 剪枝算法,按照不同搜索深度,设计多个水平级别的“一字棋”游戏。
注:“一字棋”游戏(又叫“三子棋”或“井字棋”),是一款十分经典的益智 小游戏。“井字棋”
的棋盘很简单,是一个 3×3 的格子,很像中国文字中的“井”字,所以得名“井字棋”。“井字棋”
游戏的规则与“五子棋”十分类似,“五子棋”的规则是一方首先五子连成一线就胜利;“井字棋”
是一方首先三子连成一线就胜利。
一字棋棋盘
二、实验设计(原理分析及流程)
原理
Alpha Beta 剪枝方法是对 Minimax 方法的优化,它们产生的结果是完全相同的,只不
过运行效率不一样。这种方法的前提假设与 Minimax 也是一样的:
1)双方都按自己认为的最佳着法行棋。
2)对给定的盘面用一个分值来评估,这个评估值永远是从一方(搜索程序)来评价的,
红方有利时给一个正数,黑方有利时给一个负数。
3)从我们的搜索程序(通常把它称为 Max)看来,分值大的数表示对己方有利,而对于
对方 Min 来说,它会选择分值小的着法。
流程
N
Y
N
N
Y
三、实验代码
Chess 类
package chess;
import java.awt.BorderLayout;
显示棋盘
用户输入搜索深度
调 用 Alpha Bata 函 数 , 计
算下一步棋子位置
根据鼠标点击位置下棋
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
public class Chess extends JFrame
{
private JPanel jPanel1, jPanel2;
private JButton button1, button2, button3, button4, button5,
button6,
button7, button8, button9, start;
private JLabel chooseFirst, chooseLevel;
private JRadioButton people, computer, primary, middle,
senior;
private ButtonGroup groupFirst, groupLevel;
public JButton getButton1()
{
return button1;
}
public JButton getButton2()
{
return button2;
}
public JButton getButton3()
{
return button3;
}
public JButton getButton4()
{
return button4;
}
public JButton getButton5()
{
return button5;
}
public JButton getButton6()
{
return button6;
}
public JButton getButton7()
{
return button7;
}
public JButton getButton8()
{
return button8;
}
public JButton getButton9()
{
return button9;
}
public Chess()
{
initComponents();
initListeners();
}
// 初始化用户操作界面
private void initComponents()
{
jPanel1 = new JPanel(new GridLayout(3, 3));
jPanel2 = new JPanel(new GridLayout(4, 2));
button1 = new JButton("");
button2 = new JButton("");
button3 = new JButton("");
button4 = new JButton("");
button5 = new JButton("");
button6 = new JButton("");
button7 = new JButton("");
剩余19页未读,继续阅读
资源评论
MLFcsdn
- 粉丝: 5
- 资源: 10
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Semantic Color Palette 语义调色板Unity游戏开发插件资源unitypackage
- Low Poly Nature:Lush and Diverse Environments低聚自然郁郁Unity低多边形模型资源
- voc数据集是什么-我们如何使用voc数据集
- Edgar Pro-Procedural Level Generator程序关卡生成器Unity开发插件unitypackage
- 宝藏软件m3u8下载器\m3u8DL-CLI
- 三次样条插值的介绍-什么是三次样条插值原理
- http的一些相关介绍-对于我们来说什么是http
- 全卷积网络基于voc2012数据集简单pytorch实现
- pycharm的一些介绍-用于更好的学习python
- 基于C++的程序设计大赛天梯赛L2答案(天梯赛)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功