首先我们在画板上绘制两个按钮,我们用两张图片表示,一张代表悔棋,一张代表重新开始,我们用LinkedList来存储我们操作的每个步骤,然后从LinkedList中提取每一步的操作

//两个按钮的图片
Bitmap[] button = new Bitmap[2];
//为两个按钮绑定资源
button[0] = BitmapFactory.decodeResource(this.getResources(), R.drawable.restart);
button[1] = BitmapFactory.decodeResource(this.getResources(), R.drawable.regret);
//绘制按钮
canvas.drawBitmap(button[0], screenWidth/2-30-button[0].getWidth(), 40, paint);
canvas.drawBitmap(button[1], screenWidth/2+30, 40, paint);

在触摸事件函数中添加记录操作的语句:

LinkedList<Map<String,Integer>> list = new LinkedList<Map<String,Integer>>();
Map<String,Integer> map = new HashMap<String,Integer>();map.put("index_x", index_x);//二维数组中x值
map.put("index_y", index_y);//二维数组中y值
list.add(map);

对触摸在按钮区间的动作进行监听:

//监听按钮事件,重新开始if(touchX >screenWidth/2-30-button[0].getWidth() && touchX<screenWidth/2-30 && touchY>40 &&touchY<40+button[0].getHeight()){for(int i=0;i<GRID_NUM;i++){for(int j=0;j<GRID_NUM;j++){chess[i][j] = 0;winFlag = false;chess_flag = 0;}}}//悔棋if(touchX >screenWidth/2+30 && touchX<screenWidth/2+30+button[1].getWidth() && touchY>40 &&touchY<40+button[1].getHeight()){int size = list.size();if(chess[list.get(size-1).get("index_x")][list.get(size-1).get("index_y")] == CHESS_BLACK){chess_flag = CHESS_WHITE;chess[list.get(size-1).get("index_x")][list.get(size-1).get("index_y")] = 0;}else if(chess[list.get(size-1).get("index_x")][list.get(size-1).get("index_y")] == CHESS_WHITE){chess_flag = CHESS_BLACK;chess[list.get(size-1).get("index_x")][list.get(size-1).get("index_y")] = 0;}list.removeLast();//删除最后一次的操作winFlag = false;}

效果图:

悔棋后:

android游戏开发之我的小小游戏1——五子棋游戏3之悔棋与重新开始相关推荐

  1. Python 打字小游戏开发,来体验不一样的打字游戏乐趣(第二篇)

    Python 打字小游戏开发,来体验不一样的打字游戏乐趣(第二篇) 代码实现 窗口类 小车类 玩家类 电脑类 赛道类 小树类 打字类 Python 打字小游戏开发,来体验不一样的打字游戏乐趣(第一篇) ...

  2. 介绍一下3D游戏开发的简单常识,以及最终幻想13游戏流程为什么会过于线性的原因。

    介绍一下3D游戏开发的简单常识,以及最终幻想13游戏流程为什么会过于线性的原因. (1) 回复 1楼 2012-01-25 14:10 举报 | keyblade2 坐等B青现身给LZ答疑解惑 回复 ...

  3. Python 打字小游戏开发,来体验不一样的打字游戏乐趣(完结篇)

    Python 打字小游戏开发,来体验不一样的打字游戏乐趣(完结篇) 资源下载 完整代码 Python 打字小游戏开发,来体验不一样的打字游戏乐趣(第一篇) Python 打字小游戏开发,来体验不一样的 ...

  4. Python 打字小游戏开发,来体验不一样的打字游戏乐趣(第一篇)

    Python 打字小游戏开发,来体验不一样的打字游戏乐趣(第一篇) 前言 游戏素材准备 游戏项目结构 项目里面的类说明 Python 打字小游戏开发,来体验不一样的打字游戏乐趣(第二篇) Python ...

  5. 【Android游戏开发之七】(游戏开发中需要的样式)再次剖析游戏开发中对SurfaceView中添加组件方案!...

    本站文章均为 李华明Himi 原创,转载务必在明显处注明: 转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/android-game/308.html   ...

  6. 【J2ME 2D 游戏开发系列】◣HIMI游戏开发启蒙教程◢JAVA零基础学习J2ME游戏开发全过程!...

    本站文章均为 李华明Himi 原创,转载务必在明显处注明:  转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/j2me-2/774.html Himi从写 ...

  7. flutter能开发游戏吗_Steam上架游戏开发软件,不用代码也能制作游戏,而且还是免费的...

    时代在变化,科技在进步,曾几何时我们一度以为的高科技,在现在看来也不过是平常到不能再平常的东西.游戏开发也一样,以前需要代码才能开发制作而成,现如今都不需要了,直接编辑就OK, Steam商城这次就上 ...

  8. php 游戏开发swoole,《基于 Swoole 的对战游戏实践》开课啦

    项目由来 在三月份的时候就开始编写这个项目,原本只是觉得自己对 Swoole 不太熟练,当作练手来写着玩的.写着写着发现还挺好玩的,代码量也不多,捉迷藏游戏的趣味性不错. 如果只写完代码就扔在 Git ...

  9. 游戏开发-国外的10 个最佳的独立游戏开发社区网站

    当您遇到无法破解的游戏开发挑战时,可以从这些知识渊博的来源寻求帮助和建议. 如果您是独立游戏开发者,您可以做的最重要的事情之一就是围绕您的工作建立一个强大的社区.支持社区可以在您最需要时提供反馈.灵感 ...

  10. unity2d游戏开发系列教程:四、一个2D游戏所需要的主要功能(游戏框架)

    目录 unity2d游戏开发系列教程:一.环境安装 unity2d游戏开发系列教程:二.新建工程并熟悉Unity编辑器常用功能 unity2d游戏开发系列教程:三.场景布置,增加怪物和机关 原文下载 ...

最新文章

  1. 微软OOXML申请国际文档标准已获通过 中国投反对票
  2. 快速上手微软 “群策 MARO” 平台,打造简易的共享单车场景
  3. 常用获取线程基本信息的方法(新手专属)
  4. androidstudio sqlite where 条件_SQL 面试题:WHERE 和 HAVING、ON 有什么区别?
  5. doAcquireSharedInterruptibly
  6. windows远程连接linux-安装xfce界面,ubuntn添加新用户
  7. PHP格式化全国省市区列表
  8. Zookeeper实践与应用--分布式锁实现
  9. 编写高质量的代码,改善c#程序的157个建议_之1~10
  10. mac给服务器传送文件
  11. 算法日记-01-算法和数据结构概览
  12. wdos8系统服务器丢失,win8一键修复丢失DLL,常见dll丢失一键修复办法
  13. koa2 从入门到进阶之路 (四)
  14. JavaScript 基础(二)
  15. bzoj1036 [ZJOI2008]树的统计Count 树链剖分模板题
  16. 计算机系统基础-袁春风老师-mooc-第二章测试习题及解析
  17. 平均股价的时间序列图形_统计学-时间序列分析ppt
  18. Teleport Pro v1.72 中文破解版网页离线浏览工具下载
  19. netbeans php 发布,Apache NetBeans 12.0 LTS 发布
  20. 未来新型计算机可分为哪三种,未来有可能引起计算机技术革命有哪几种呢

热门文章

  1. Browserify budo
  2. linux无法访问root文件夹,asp.net core 2.1部署到Linux无法访问wwwroot文件夹中的资源...
  3. QMUI简单介绍使用
  4. AI在蚂蚁金服产品线中的大规模应用
  5. 数据结构--二叉树遍历算法的应用
  6. 2015年度-渐入佳境
  7. HTML保姆级教程(二)图像,多媒体,超链接,表格标签
  8. Android平板离线安装数据库Mariadb
  9. 英飞凌单片机知乎_AURIX学习篇——《英飞凌多核单片机应用技术(AURIX三天入门篇)》-第5章 GTM驱动波形合成...
  10. Markdown基础学习