首页 > 家具 > 问答 > 华容道小游戏,小游戏华容道的正确走法

华容道小游戏,小游戏华容道的正确走法

来源:整理 时间:2023-05-17 07:23:18 编辑:去装修 手机版

本文目录一览

1,小游戏华容道的正确走法

小的先动,给大的让路

小游戏华容道的正确走法

2,Android小游戏 之数字华容道

[toc] 最近看《最强大脑》,看到其中的“数字华容道”这个小游戏挺有意思,于是萌生了自己写一个的想法,正好结合之前的文章 《Android开发艺术探索》第4章 View的工作原理 ,顺便复习一下。 GitHub链接: https://github.com/LittleFogCat/Shuzihuarongdao 说做就做。 经过一夜的粗制滥造,初版已经完成,现在复盘一下详细过程。 在4x4的方格棋盘中,摆放了1 15一共十五个棋子。玩家需要在最短时间内,移动棋子将1 15按顺序排列好。 本文app结构很简单,分为三个界面:目录,游戏,高分榜。分别对应的是MenuAcitivity、GameActivity、HighScoreActivity。其中MenuActivity为主界面。 新建棋盘类 BoardView ,继承自ViewGroup。在xml文件中直接加入BoardView即可。 新建棋子类 CubeView ,继承自TextView。 棋子只包含一个数字,所以简单的继承自TextView即可。由于我们还需要比对棋子是否在正确的位置,所以我们还需要给每个棋子加上数字和位置属性。 这里,我们定义了一个类Position,用于描述棋子在棋盘中的位置。 我们参考Android系统屏幕坐标系,以棋盘左上角为零点,每向右一格横坐标加一,每向下一格纵坐标加一。如图: 接下来,我们开始定义棋盘View:BoardView,这也是这个游戏的重头戏。 首先,考虑需要添加哪些属性。由于时间关系,我这里只加入了棋盘尺寸。 在style.xml文件中加入: 其中sizeH为棋盘列数,sizeV为棋盘行数。(默认4x4大小,以下文中均以4x4为例) 分别对应BoardView的 mSizeX 和 mSizeY 属性。 首先我们新建一个 cube_view.xml ,作为单颗棋子的布局。在BoardView的构造方法中,我们使用LayoutInflater将总共15颗棋子加载出来,并指定它们的位置,逐一保存在mChildren数组中。 最后,我们记录了没有棋子的空格所在位置 mBlankPos 。这个位置很关键,因为我们之后的的操作中都是围绕这个空格来的。 measure和layout的过程很简单,这里由于是自己使用,假定宽高都是定值。因为之前所有的CubeView都没有定义宽高,默认是0,所以在onMeasure中,我们使用BoardView的宽除以列数,高除以行数,得到每颗棋子的宽高并给其赋值。这样处理虽然很粗放,但是只是试玩的话并没有什么影响。 我是按照从左往右、从上往下的方式依次排列棋子,并且没有考虑棋子的margin属性,所以onLayout很简单: 至此,棋子在棋盘中就已经排列好了。 一开始的时候,我考虑的是,生成1~15的不重复随机数,然后依次给CubeView赋值即可。即: 虽然看起来是能行得通的,但是在实际的游戏过程中,遇到了非常严重的问题,那就是会出现无解的死局,也就是说无论如何都不可能解出来的棋局。经过网上搜索之后证实了这个bug的存在,而且市面上流传的该类app很多都是有这个bug的!所以这个办法就被废弃掉了,得想一个新的方法。 由于必须是按照顺序放置然后打乱的棋局才能保证有解,不能随机乱放置,所以我就模拟手动打乱,写了一个新的棋局生成器: 原理很简单,因为空格的位置是唯一的,那么我们把空格的上下左右四个棋子随机找出一个,与空格互换位置,也就模拟了一次手动点击。当点击的次数足够多时(这里循环了10000次),就可以看做是已经打乱的棋盘了。 最后把生成好的棋盘,保存在一个二维数组中即可。 (因为有个10000次的循环,我担心时间过长,于是将其放在线程中执行,但是后来我觉得自己多此一举了。) 然后,在BoardView中定义一个setData方法,来把生成好的棋局装进来: 这样,就完成了棋局的生成。 游戏过程基本是极简的。 在初始化方法中(2.1),我们给每个棋子都定义了点击事件,模拟真实场景。具体来讲,就是当我们点击一个棋子的时候:如果棋子在空格周围,则将棋子移动到空格处;反之,则不进行任何操作。(如果设置滑动同理) 这样我们的Position类就派上用场了。 在2.1的 init() 方法中,我们有这么一句: 即是,当我们点击了其中一个棋子时,会触发 moveChildToBlank(view) 方法。这个方法的目的正是上面所说。 在移动棋子之后,我们需要检查一下是否是正确排列的顺序,如果是的话,那么表明游戏完成。 首先创建HighScore类,包含姓名,用时,步数,时间。 高分榜使用SharedPreferences+Gson,将一个List<HighScore>转换为json形式保存在本地。 最佳成绩的记录是在GameActivity中完成的。流程如下: 总的来说,逻辑简单清晰。 自己开发的自然是需要作弊功能了!暂且不表。 由于只用了一个晚上完成,所以还很粗糙,很多功能不够完善,而且也没做适配和测试,难免会有bug存在。主要是把思路记录下来,方便以后自己和他人做个参考。 数字华容道GitHub地址: https://github.com/LittleFogCat/Shuzihuarongdao

Android小游戏 之数字华容道

3,华容道游戏有几种走法

首先规定一下棋子的名称:最大的“曹”,横着放的“关”,竖着放的“飞”,最小的“兵”。 共81步 兵左1,飞下,关右,兵下,飞右,兵上1,兵左,飞下,关左,兵上折右,兵上,飞右,兵右折下,关下,二兵左,二飞上,二兵右,关下,兵下折左,二飞左,飞下,曹右,飞右,二兵上,飞左,飞下,曹左,飞上,飞右,兵上,兵左折上,关右,二飞下,兵左,曹下,兵右,兵上折右,兵上,飞上,飞左,兵左折下,曹下,兵下折左,飞左,飞上,曹右,兵下1,上兵下1,兵右,二飞上,兵左,兵下,曹左,飞下,飞右,二兵右,飞右,飞上,曹左,二兵下,飞左,飞上,兵右折上,关上,二兵右,曹下,二兵左,关上,兵上折右,曹右!

华容道游戏有几种走法

4,华容道游戏的英文介绍

华容道曾被国外智力专家称为“智力游戏界的三个不可思议之一",游戏的主要目标是用最少的步数通过移动各个棋子,帮助曹操从初始位置移到棋盘最下方中部,从出口逃走。不允许跨越棋子. 烧脑系列之烧脑华容道拥有几乎最全的可玩性很高的的关卡,由简到难,开拓思维.是脑力训练和智力开拓的最佳选择 找百度翻译搞定吧
《华容道》游戏取材自著名的三国故事,曹操在赤壁大战中被刘备和孙权的“苦肉计”、“火烧连营”打败,被迫退逃到华容道,又遇上诸葛亮的伏兵,关羽为了报答曹操对他的恩情,明逼实让,终于帮助曹操逃出了华容道。 作为一款传统的益智游戏,游戏将历史上著名的三国人物以及场景全部重新设计,独特的q版形象让人忍俊不禁,而独特的选材保证了游戏的可玩性。同时制作组将吸纳玩家自己设计关卡和场景,优秀的创意将会被融进游戏。一起来进入三国的时代吧。

5,华容道游戏太难了

嘎嘎~无意看到你这个问题,原来真的还有在玩儿这个的额,我一直很热衷于这个游戏我不知道你玩儿的是不是那种单机小游戏,我想联网的也一样。我是自己买的光盘,我特别喜欢动物的…就是让小动物逃来。我没有特别好的窍门。我如果碰到觉得特别难的我就自己在书桌上摆个立体的阵…HOHO~就是用小物件什么橡皮纸屑什么的。能自己更自由得支配那样会变得挺容易的不象在电脑上那么点来点去都花眼了,你试一下吧…找张纸画上格子摆上不同的物件标上号码,先不要动电脑上的,脑子里也给它们标上号码。希望你能一直热爱下去哈哈~加油
呵呵看看这里: 游戏发芽网的智取华容道在线游戏 http://fayaa.com/youxi/hrd/ 仔细找,上面有在线求解的,是图解,可自动播放
推荐你个幻想游戏 阿扎达
横刀立马我玩了好久才通,不过层层防设确实20分就通了~~·
文章TAG:华容道小游戏游戏道的华容道小游戏

最近更新