android五子棋赢法数组,安卓欢乐五子棋人机大战报告.doc
安卓欢乐五子棋人机大战报告
实 验 报 告
课程名称实验名称安卓五子棋人机大战实验时间2016年 月 (系)专 业
一、实验目的
在棋盘上任意落下一颗子,计算机调用AI算法,能判断出最佳的落子位置并落子。
程序能判断出输赢,结束游戏,停止落子。
二、实验环境(实验设备)
Eclipse ADT
AI难点解析
赢法数组:记录五子棋所有的赢法,三维数组
每一种赢法的统计数组,一维数组
如何判断胜负
计算机落子规则四、实验结果
开局前:
比赛一 游戏结束:
比赛二 游戏结束:
五、实验内容
1.创建安卓项目工程:B002_五子棋人机对战
2.创建一个类WuziqiPanel 继承系统的View类
public class WuziqiPanel extends View { }
3.在activity_main.xml文件中添加WuziqiPanel控件,并设置游戏背景界面
设置背景图片
android:background="@drawable/bg"
添加WuziqiPanel控件
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerInParent="true" />
4.定义相关数据
private int mPanelWidth;
private float mLineHeight;
private int MAX_LINE = 10;
private Paint mPaint = new Paint();
private Bitmap mWhitePiece;
private Bitmap mBlackPiece;
private float radioPieceOfLineHeight = 3 * 1.0f/4;
//白棋先下,当前轮到白棋
private boolean mIsWhite = true;
private List mWhiteArray = new ArrayList();
private List mBlackArray = new ArrayList();
//赢法数组
int[][][] wins= new int[10][10][200];
//赢法统计数组
int[] myWin = new int[200];
int[] computerWin = new int[200];
private int count;
//游戏是否结束over
private boolean over = false;
//棋盘上两方棋子的标志 0 无子 ; 1 我方 ; 2 电脑
private int[][] chessBoard = new int[10][10];
//保存最高得分的i,j值
int u=0;
int v=0;
5.测量棋盘大小
//截取屏幕大小为正方形
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
// TODO Auto-generated method stub
int widthSize = MeasureSpec.getSize(widthMeasureSpec);
int widthMode = MeasureSpec.getMode(widthMeasureSpec);
int heightSize = MeasureSpec.getSize(heightMeasureSpec);
int heightMode = MeasureSpec.getMode(heightMeasureSpec);
int width = Math.min(widthSize, heightSize);
if(widthMode == MeasureSpec.UNSPECIFIED ){
width = heightSize;
}else if(heightMode == MeasureSpec.UNSPECIFIED){
width = widthSize;
android五子棋赢法数组,安卓欢乐五子棋人机大战报告.doc相关推荐
- 前端实现五子棋小游戏2(AI实现人机对战)
通过一个简单的算法,来实现AI智能对弈的五子棋小游戏 AI难点解析 赢法数组 赢法的统计数组 判断胜负 计算机的落子规则 代码实现 赢法数组 赢法种类的索引 横线赢法 竖线赢法 横线赢法 斜线赢法 反 ...
- js小游戏——五子棋人机大战
五子棋小游戏,可能会有bug请各位大佬多多指教 代码如下: css样式: canvas {display: block;margin: 50px auto;box-shadow: -2px -2px ...
- 五子棋源码 php,js实现五子棋代码分享
本文主要和大家分享js实现五子棋代码,通过canvas绘制棋盘与棋子,通过js代码实现逻辑. index.html代码: 五子棋 重新开始 style.css代码:canvas{ display: b ...
- html五子棋悔棋,原生 JS + Canvas 实现五子棋游戏
原标题:原生 JS + Canvas 实现五子棋游戏 || 一.功能模块 先看下现在做完的效果: 线上体验: https://wj704.github.io/five_game.html 主要功能模块 ...
- QQ五子棋棋子的数组数据
本文主要是讲一下,怎么找QQ五子棋的棋子数组数据. 先看一下效果吧. 我用TC简单开发工具的表格控件,用来显示获取到的棋子数组信息. 棋子数据为: 空棋子为:0 黑白棋子为:1或2 当前行走为:5或6 ...
- Python控制手机下欢乐五子棋,半天时间1段到9段,90%+的胜率,就无敌
国庆节闲来无事,突然想到儿时玩的五子棋于是打开手机-小程序-欢乐五子棋.下了2把感觉太费脑子了.想到之前有个五子棋引擎,叫羿心.然后开始找官网,找到了尼玛居然官网挂了.于是就上GitHub上面去找,居 ...
- 大学android五子棋课程目的,拓展性课程(五子棋)教案.pdf
拓展性课程(五子棋)教案 电子备课教案 学科 :拓展性课程 任课教师 : 题目 五子棋 课型 新授课 课时 1 教学 1. 初步了解五子棋的基本知识. 目标 2. 培养学生对下五子棋的兴趣. 教学重 ...
- js 实现ai五子棋人机大战
实现原理就是计算五子棋所有赢的种类,利用canvas实现五子棋排版落子. <!DOCTYPE html> <html lang="en"> <head ...
- 五子棋输赢算法php,js实现AI五子棋人机大战
本文实例为大家分享了js实现AI五子棋人机大战的具体代码,供大家参考,具体内容如下 实现原理就是计算五子棋所有赢的种类,利用canvas实现五子棋排版落子. 五子棋 #canvas{ display: ...
最新文章
- MASK-RCNN是什么?MASK(掩膜)又是什么?
- 英特尔宣布McAfee成为独立的安全公司
- 大流量高并发量网站的之解决方案
- java时间比较_广州java培训大概多久时间可以毕业
- Linux中常用命令(文件与目录)
- import 和from... import的作用,导入模块or导入函数
- jQuery设置iframe的高度根据页面内容自适应
- c语言字段宽度,2.6.3 控制输出的字段宽度
- mysql查询数据教程_mysql数据库的查询
- ABT 共识社区北京聚会 共建去中心化生态 | ArcBlock 社区
- 全国各地知名互联网公司内推QQ群
- 微云百度云等资源 至少1M/s下载提速 无需会员
- .NET MVC同页面显示从不同数据库(mssql、mysql)的数据
- 微信小程序实训day03
- C#窗体程序使用SQL数据库
- ubanutu 安装php,腾讯的这个JS幻灯太难扣了,求高人指点。。。_html/css_WEB-ITnose
- Android审计平台,Android系统安全审计方法研究
- 使用超以太网来降低LED照明的成本
- 抖音矩阵系统定制开发,抖音矩阵系统源码独立部署、
- spring clud config分布式配置中心的简单使用
热门文章
- 透过现象看本质,我找到了Netty粘包与半包的这几种解决方案
- STM32 + IAP + Ymodem完美结合
- rt smart操作系统在“正点原子-阿尔法”开发板开箱使用
- 计算机音乐盒子制作步骤,自制音乐盒方法|用筷子做浪漫的天使之心DIY音乐盒教程...
- Hudi 0.11.0 + Flink1.14.4 + Hive + Flink CDC + Kafka 集成
- LeetCode-036-有效的数独
- Python安装过程报错The error code is 2503的解决方案
- 数据结构——第三章 栈和队列
- 操作系统属于计算机软件中的,操作系统是计算机软件系统中
- 图像增强—自适应直方图均衡化(AHE)-限制对比度自适应直方图均衡(CLAHE)