HTML5+JS 《五子飞》游戏实现(一)规则
很久没写文章了,这个游戏其实已经写了有段时间了,一直没有完善,赶在新年之际,分享给大家。
该《五子飞》游戏,不是平常大家所说的《五子棋》,这个玩法简单,是我们老家儿时常玩的一种益智游戏,我们先来看看棋盘布局:

规则如下:
一、黑白双方(对方黑,我方白)各执五子,分别摆放在双方的边线上;
二、棋子只能走直线(斜的直线也是),不能转弯;
三、只要前面没有棋子(任何一方的)就可以跳格走;
四、可以夹死对方一个或可以挑对方两个棋子(以1表示黑子,0表示白子,-表示空白):
- 夹一个:任何一条线上,有且仅有双方棋子各一个,两棋子挨着,此时我方若有棋子可以通过直线走到黑子另一边,则可以把黑方棋子夹死,替换上一个我方的棋子。比如:
- 原来是 --10- ,如果白子能走到从左边数起第2个位置-010-,则把黑子吃掉:-000-
 - 原来是 ---10,如果白子能走到从左边数起第3个位置--010,则把黑子吃掉:--000
 - 原来是 --100,如果白子走到从左边数起第2个位置-0100,不能夹死黑子,因为右边多了一个。
 
 - 挑一对:任何一条线上,有对方棋子两个,且两棋子中间间隔一个空白位置,此时我方若有棋子可以通过直线走到两棋子的中间,则可以吃了对方两个棋子,替换成我方的棋子。比如:
 
- 原来是 -1-1-,如果白子能走到中间位置-101-,则把两个黑子吃了换成白子:-000-
 
五、赢:把对方棋子全部吃掉,或者围死不能动。
好了,下章里沃特开始用代码来实现布局、走棋、吃棋等。敬请期待。
HTML5+JS 《五子飞》游戏实现(二)路线分析和资源准备
HTML5+JS 《五子飞》游戏实现(一)规则的更多相关文章
- HTML5+JS 《五子飞》游戏实现(二)路线分析和资源准备
		
上一节 里沃特与我们分享了<五子飞>的下棋规则,可能有些伙伴看得不清楚,像我们码农还是看到代码比较靠谱.下面就把可以走棋的路线跟大家说一下. 假设从左上角开始,以0开始编号,往右数(没看第 ...
 - HTML5+JS 《五子飞》游戏实现(八)人机对战
		
要想实现人机对战,就必须让电脑自动下棋,而且要知道自动去查找对方的棋子,看看有没有可以挑一对的,有没有可以夹一个的,这样下起来才有意思. 当电脑用户下完棋后,电脑应立即搜索用户的棋子,然后如果没有被吃 ...
 - HTML5+JS 《五子飞》游戏实现(七)游戏试玩
		
前面第一至第六章我们已经把<五子飞>游戏的基本工作都已经讲得差不多了,这一章主要是把所有的代码分享给大家,然后小伙伴们也可以玩一玩. 至于人机对战的我们放到后面讲进行分析. 试玩地址:ht ...
 - HTML5+JS 《五子飞》游戏实现(六)鼠标响应与多重选择
		
上一章我们提到了如果有多条线上的棋子可以被吃掉,那么游戏需要提示用户,让用户选择吃哪条线上的.另外因为是网页游戏,所以一定要实现鼠标单击棋子可以进行操作. 当鼠标移动棋子上面后,切换鼠标指针为手形,移 ...
 - HTML5+JS 《五子飞》游戏实现(五)移动棋子
		
上一章 我们知道了怎么处理两个重要的吃棋动作,想要吃对方的棋子,首先得移动自己的棋子.现在里沃特跟大家分享分享,怎么移动棋子. 想要移动棋子,在页面上,首先要点击一下要移动的棋子,然后再点击一下目标位 ...
 - HTML5+JS 《五子飞》游戏实现(四)夹一个和挑一对
		
在第一章我们已经说了怎么才能“夹一个”以及怎样才能挑一对,但那毕竟只是书面上的,对码农来讲,我们还是用代码讲解起来会更容易了解. 为了更容易对照分析,我们先把路线再次贴出来: // 可走的路线 thi ...
 - HTML5+JS 《五子飞》游戏实现(三)页面和棋盘棋子
		
前面两节,我们已经对<五子飞>有个初步的认识,对走棋路线也有了基本的了解,现在里沃特继续跟大家分享HTML页面,另外把棋盘棋子也画出来. 演示地址:http://www.lyout.com ...
 - 用html5+js实现掌机游戏赛车demo
		
最近无聊,用html5+js做了一个以前玩过的掌机赛车游戏,顺便学习一下画布的api以及巩固一下js基础. 游戏界面,没做什么美化. 游戏规则:游戏界面分为三列,黑色方块随机落下,红色方块可以在三列自 ...
 - 100行JS实现HTML5的3D贪吃蛇游戏
		
js1k.com收集了小于1k的javascript小例子,里面有很多很炫很酷的游戏和特效,今年规则又增加了新花样,传统的classic类型基础上又增加了WebGL类型,以及允许增加到2K的++类型, ...
 
随机推荐
- mysql配置文件my.cnf详解
			
原文地址:mysql配置文件my.cnf详解 作者:gron basedir = path 使用给定目录作为根目录(安装目录). character-sets-dir = path 给出存放着字符集的 ...
 - Java AIO 异步IO应用实例
			
项目地址:https://github.com/windwant/aio-test Server: package org.windwant.aio; import java.io.IOExcepti ...
 - spring 依赖注入(IOC DI)
			
依赖注入(IOC DI) 依赖注入的两种方式: 1. set注入 Spring要求使用set注入方式的时候,Bean需要提供一个无参数的构造方法.并提供一个属性的setter方法.例如: packag ...
 - 这是经典的"百马百担"问题,有一百匹马,驮一百担货,大马驮3担,中马驮2担,两只小马驮1担,问有大,中,小马各几匹?
 - win7下硬盘安装ubuntu
			
首先还是分区,在计算机上右键--管理--磁盘管理.装Ubuntu分配的硬盘大小最好是(20G以上)不要太小,这里请注意,Ubuntu和Windows文件系统完全不同,所以我们划好要给Ubuntu的分区 ...
 - ubuntu16.04下vim安装失败
			
问题? 重装了ubuntu系统,安装vim出现了以下问题: sudo apt-get install vim 正在读取软件包列表... 完成 正在分析软件包的依赖关系树 正在读取 ...
 - Hadoop安装lzo实验
			
参考http://blog.csdn.net/lalaguozhe/article/details/10912527 环境:hadoop2.3cdh5.0.2 hive 1.2.1 目标:安装lzo ...
 - [转]NopCommerce 多数据库方案
			
本文转自:http://www.cnblogs.com/YUTOUYUWEI/p/5538200.html 有时候一个项目需要连接多个数据库,以实现不同数据库的数据在同个项目的共享. 如果已经安装了n ...
 - 【转】ACM搜索算法总结 --By GreenHand
			
搜索是ACM竞赛中的常见算法,本文的主要内容就是分析它的 特点,以及在实际问题中如何合理的选择搜索方法,提高效率.文章的第一部分首先分析了各种基本的搜索及其各自的特点.第二部分在基本搜索方法的基础上提 ...
 - VS Code
			
VS Code VS Code(Visual Studio Code)是由微软研发的一款免费.开源的跨平台文本(代码)编辑器.几乎完美的编辑器. 官网:https://code.visualstudi ...