介绍一款Android小游戏--交互式人机对战五子棋

简介:

学习Android系统开发之余,编写了一个小游戏--交互式人机对战五子棋,自娱自乐。之所以称之为交互式人机对战五子棋,一是因为在进入人机对战模式这前,你可以任意设置好开局,同时,在对战过程中,你可以看到机器的思考过程,还可以标识出每一个落子点的优劣势;二是因为可以为机器增加游戏经验,使得机器越来越聪明。希望喜欢五子棋的同学能够喜欢,同时,它也非常适合入门级练习。

       首先展示一下这款五子棋的主界面,由于自娱自乐的小游戏,界面还是比较简陋,达不到产品发布的效果,见谅!

 

第一. 在CSDN下载这款五子棋游戏,下载链接:

        http://download.csdn.net/source/3423512

        下载后,解压,里面有三个文件,分别是Renju.apk、Renju.gif和交互式人机对战五子棋.docx,其中,Renju.apk就是我们的Android五子棋游戏程序了。

        第二. 如果有Android SDK环境,请先创建一个2.1 API版本的模拟器。打开cmd命令窗口,进入到SDK目录的tools文件夹,例如,如果你的SDK目录放在D:\android-sdk-windows那么就进入到D:\android-sdk-windows\tools目录下。 

        1.  首先执行android list target查看目标平台列表命令:

 

 从这里可以看出,2.1 API的target id为3。

       2.  执行android create avd –n android2.1 –t 3命令创建名称为android2.1的模拟机:

 

  3. 执行start /b android2.1命令在后台运行模拟机:

 

4. 如果tools目录下有adb工具,则把Renju.apk文件放在tools目录下,否则,把Renju.apk文件放在D:\android-sdk-windows\platform-tools目录下,并进入到D:\android-sdk-windows\platform-tools目录中,执行adb install Renju.apk命令安装Renju.apk到模拟机上:

 

    第三.  如果没有Android SDK环境,请到新浪爱问:

         http://ishare.iask.sina.com.cn/f/16902616.html

         http://ishare.iask.sina.com.cn/f/16902614.html

        下载Android 2.1 API模拟器(制作方法参考制作可独立分发的Android模拟器一文),解压后,可以参照里面的README文件运行模拟器和安装Renju.apk文件。

         1.  假设压压缩包解压后放D:\AndroidEmulator目录下。打开cmd命令窗口,进入到D:\AndroidEmulator目录,执行start /b emulator.exe -sysdir d:\AndroidEmulator -system images\system.img -data images\userdata.img -ramdisk images\ramdisk.img -kernel images\kernel-qemu -skindir d:\AndroidEmulator\skins -skin HVGA命令在后台运行模拟器:

 

   2. 模拟器运行起来之后,里面已经内置了Renju应用程序,不用再安装,如果没有,则执行adb install Renju\Renju.apk命令进行安装。

        第四. 执行完上述第一步或者第二步后,交互式人机对战五子棋就安装好了,进入Home Screen屏幕上,可以看到Renju应用程序,如下图所示:

 

     第五. 使用方法。

        点击Home Screen上的Renju图标,便可以打开程序:

 

     按住鼠标不放,在棋盘上移动,在鼠标位置会有一个“+”图标跟着鼠标移动;放开鼠标,即可选定一个落棋点:

 

主界面上有五个按钮:

         Start:点击开始人机对战

         Shoot:当棋盘上出现“+”图标时,点击按钮在“+”位置上落下一个棋子,Renju会自动计算当前应该下白棋还是黑棋

         Undo:悔棋,点击一次悔一步棋

         Reset:重新开始游戏

         Annotation:显示/隐藏当前棋盘每个落子点的得分情况,第一个数字表示黑棋得分,第二个数字表示白棋得分。数字后面的h表示100,如5h,表示得分为500,类似地,k表示1000,w表示10000。得分越大,表示落子点优势越大,如下图所示:

 

 程序有两种模式,一是手动对战模式,一是人机对战模式。打开程序时,默认是人人模式,点击Start按钮进入人机对战模式,进入人机模式对战模式后,不可以再切换至人人模式。人机对战模式时,电脑使用黑棋。

        点击右边键盘区的menu按钮,显示菜单有四个菜单项:

        Importing Opening:导入开局

        Exporting Opening:保存开局。当前棋盘为空时,不可用

        Add To Experiences:增加电脑经验。棋盘上为空或者只有一个棋子时,不可用

        Manage Experiences:管理电脑经验

        点击ExportingOpening菜单,保存开局:

 

在弹出框中输入开局名称,点击OK按钮即可。        点击Importing Opening菜单,出现开局列表,选中其中一个开局,即可导入开局:

      

    点击Add To Experiences菜单,增加电脑经验。例如,当出现以下棋局时:

 

   点击Add To Experiences菜单,在弹出框中输入经验名称:

 

    点击OK按钮,即可保存经验。
         当下次进入人机对战模式时,如果电脑发现当前的棋盘形势如下图所示时:

 

    就会自动在“+”位置上落下一个黑棋。
        点击Add To Experiences菜单,可以查看当前电脑经验列表:

 

第六.  人机对战原理。简单来说,就是通过获胜表的方法,轮到机器落子时,在获胜表中找到得分值最大的落子点,落下一个棋子,然后再用机器再预测对方下一个可能的落子点,模拟对方下一个棋子,这时再判断谁获得优势,如果机器处于劣势,再回到第一步中,找到得分值次大的落子点,落下一个棋子,同样,再预测对方下一个可能的落子点,并模拟对方下一个棋子,再判断谁获得优势,依次类推,这就是回溯算法了。所以,总的来说,机器的智能来自获胜表+回溯算法,有时间再详细描述,感谢关注。





本文转自 Luoshengyang 51CTO博客,原文链接:http://blog.51cto.com/shyluo/964515,如需转载请自行联系原作者

目录
相关文章
|
Ubuntu Shell Android开发
微信小游戏跳一跳外挂教程(安卓版)
微信小游戏跳一跳外挂教程(安卓版)
184 0
|
Android开发 计算机视觉 容器
【Android】手撸抖音小游戏潜艇大挑战
Android端高仿抖音热门小游戏,潜艇大挑战
138 0
|
2天前
|
JavaScript 搜索推荐 Android开发
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
21 8
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
|
14天前
|
前端开发 Java Shell
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
111 20
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
|
11天前
|
Dart 前端开发 Android开发
【09】flutter首页进行了完善-采用android studio 进行真机调试开发-增加了直播间列表和短视频人物列表-增加了用户中心-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
【09】flutter首页进行了完善-采用android studio 进行真机调试开发-增加了直播间列表和短视频人物列表-增加了用户中心-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
35 4
【09】flutter首页进行了完善-采用android studio 进行真机调试开发-增加了直播间列表和短视频人物列表-增加了用户中心-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
|
27天前
|
缓存 前端开发 Android开发
【04】flutter补打包流程的签名过程-APP安卓调试配置-结构化项目目录-完善注册相关页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程
【04】flutter补打包流程的签名过程-APP安卓调试配置-结构化项目目录-完善注册相关页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程
73 12
【04】flutter补打包流程的签名过程-APP安卓调试配置-结构化项目目录-完善注册相关页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程
|
1月前
|
Dart 前端开发 Android开发
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
36 1
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
|
2月前
|
搜索推荐 前端开发 API
探索安卓开发中的自定义视图:打造个性化用户界面
在安卓应用开发的广阔天地中,自定义视图是一块神奇的画布,让开发者能够突破标准控件的限制,绘制出独一无二的用户界面。本文将带你走进自定义视图的世界,从基础概念到实战技巧,逐步揭示如何在安卓平台上创建和运用自定义视图来提升用户体验。无论你是初学者还是有一定经验的开发者,这篇文章都将为你打开新的视野,让你的应用在众多同质化产品中脱颖而出。
77 19

热门文章

最新文章

  • 1
    如何修复 Android 和 Windows 不支持视频编解码器的问题?
  • 2
    【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
  • 3
    当flutter react native 等混开框架-并且用vscode-idea等编译器无法打包apk,打包安卓不成功怎么办-直接用android studio如何打包安卓apk -重要-优雅草卓伊凡
  • 4
    【04】flutter补打包流程的签名过程-APP安卓调试配置-结构化项目目录-完善注册相关页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程
  • 5
    APP-国内主流安卓商店-应用市场-鸿蒙商店上架之必备前提·全国公安安全信息评估报告如何申请-需要安全评估报告的资料是哪些-优雅草卓伊凡全程操作
  • 6
    【09】flutter首页进行了完善-采用android studio 进行真机调试开发-增加了直播间列表和短视频人物列表-增加了用户中心-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
  • 7
    Android经典面试题之Kotlin中Lambda表达式和匿名函数的区别
  • 8
    【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
  • 9
    【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
  • 10
    Android 13 SystemUI 启动流程
  • 1
    【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
    23
  • 2
    【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
    21
  • 3
    APP-国内主流安卓商店-应用市场-鸿蒙商店上架之必备前提·全国公安安全信息评估报告如何申请-需要安全评估报告的资料是哪些-优雅草卓伊凡全程操作
    52
  • 4
    【09】flutter首页进行了完善-采用android studio 进行真机调试开发-增加了直播间列表和短视频人物列表-增加了用户中心-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
    35
  • 5
    当flutter react native 等混开框架-并且用vscode-idea等编译器无法打包apk,打包安卓不成功怎么办-直接用android studio如何打包安卓apk -重要-优雅草卓伊凡
    70
  • 6
    【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
    111
  • 7
    Android经典面试题之Kotlin中Lambda表达式和匿名函数的区别
    29
  • 8
    如何修复 Android 和 Windows 不支持视频编解码器的问题?
    258
  • 9
    【04】flutter补打包流程的签名过程-APP安卓调试配置-结构化项目目录-完善注册相关页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程
    73
  • 10
    【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
    36