`
逐行分析JS源代码
  • 浏览: 87312 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

跳棋游戏—backbone框架开发

阅读更多

游戏效果

跳棋效果图

跳棋游戏 -- 【代码详细见附件,本版本暂只支持 谷歌的 chrome 浏览器,其它浏览器后续支持 】

作者:江潇

qq: 2270112418

Version: 0.0.1  2013-6-24   -- 建议使用 chrome 运行、调用本次和后面推出的示例

背景:学了段时间backbone框架,分析跳棋游戏比较适合于backbone的编程思维,其有多些个 collecton + model + view 模型。

      其实本游戏当初我不用backbone时代码量会更少,但用了结构更清晰、且易于扩展。

      如何应用backbone 请参见即将在iteye上连载的 《 逐行分析JS源代码 之 backbone 》[今晚将推出第一部分],欢迎批评指正。

      后期将在分析其它源码时为本案例添加其它诸如 nodeJS 等可连网对战功能。

功能:1、chrome下运行 附件里的 draughts.html,会自动生成棋盘。

      2、选择左上角玩家数量,点击开始,在棋盘上生成对应的玩家棋子

      3、选择任一棋子其周围会显示可跳位置,同常规跳棋

      4、点击可跳位置,棋子会跳到目标位置

      5、玩家在跳动过程中可悔棋一步

      6、当玩家全部跳到对家阵地时,会弹框提示成功

重点:1、如何画出棋盘 及 标识每个坑的位置见下图棋盘坐标图

            通过看上面的图,可得出,棋盘就是两个等边三角形交叉可得,且每个棋子生成有可遵循的规律。

            我们以其所在坐标点为每个点的ID,如 12-0为第一层的ID,11-2,13-2为第二层的ID,坐标数值也    可以按规范取出,详见 draughts.js里的 createCoords 方法

            

function loop( dir ){
	var j = 0,
	      k = 0;
	while( j < 13 ){
		_x = x - j * _lit + k * _lit * 2;
		if( dir ){
			_y = y + _lit * j * 2;
			_c = 12 - j + k*2 + '-' + j;
		} else {
			_y = y + _lit*2*( 16 - j );
			_c = 12 - j + k*2 + '-' + (16 - j);
		}
		me.createCoord( _c, _x, _y, j, k, dir );
		if( k == j ){
			j = k + 1;
			k = 0;
		} else {
			k++;
		}
         }
}
 

 

      2、如何标识出每个坑与邻近坑的关系

           通过上图我们可以看到每个点有六个相连点,左上、右上、左、右、左下、右下,而坐标关系如下

 

refers  = { 
	tl: (_x-1)+'-'+(_y-1),   //左上
	tr: (_x+1)+'-'+(_y-1),  //右上
	ll: (_x-2)+'-'+_y,  //左
	rr: (_x+2)+'-'+_y, //右
	bl: (_x-1)+'-'+(_y+1),  //左下
	br: (_x+1)+'-'+(_y+1) //右上
};
/*
*  上面这所以标出方向,是后面查询间隔跳的关联点是要用到
*/
           如方向上的值 所代表的坐标点在第一步中生成的坐标集合中存在,即意味该点存在,这样找到坑所有的存在的关联。详见 Coords.refer 

 

 

      3、点击某棋子时,如何找出可跳点

          在第二步的基础上,查询A点一周的关联点,是否有棋子,如果没有则可跳,如果有,如点右下方B点已有其它棋子,则查询B的右下方位置C是否空缺,如空则可跳,再判断C一周是是否有棋子,如有再查找同方法的下一个位置是否有空缺,依次递归。详见 Piece.arround / Piece.getSkip / Piece.near / Piece.getNearBy

 

最后,本游戏只在两台电脑上测试通过,欢迎大家试用,如有问题建议,欢迎反馈

 

 

  • 大小: 60 KB
  • 大小: 27.7 KB
4
5
分享到:
评论
6 楼 逐行分析JS源代码 2014-10-16  
dpsyche 写道
有bug...棋子在两个颜色边界交界那个点位上可以横移两个位置...

  我修改下 ,另外我新建了一个个人站点,本周会把这个博客上的游戏都放上去,还有些新的游戏
5 楼 dpsyche 2014-10-10  
有bug...棋子在两个颜色边界交界那个点位上可以横移两个位置...
4 楼 hlj317 2013-06-28  
期待作者早日推出下一个即时对战的跳棋版本~~

圆广大码友的网络跳棋梦~~
3 楼 HTNecro 2013-06-25  
牛人,加油,持续关注……
2 楼 hlj317 2013-06-25  
仔细看了一下源码,非常棒~~~精湛绝伦的代码技术令人赞不绝口~~~
1 楼 hlj317 2013-06-24  
非常棒~~~

这个跳棋做得很精妙~~~

大湿,可否指导我一下~~~

相关推荐

    跳棋游戏—backbone框架开

    背景:学了段时间backbone框架,分析跳棋游戏比较适合于backbone的编程思维,其有多些个 collecton + model + view 模型。 其实本游戏当初我不用backbone时代码量会更少,但用了结构更清晰、且易于扩展。 如何应用...

    跳棋游戏的源码 跳棋游戏的源码

    在这个特定的压缩包中,我们看到了几个与开发一个跳棋游戏相关的文件。 `modSound.bas` 文件可能是模块化设计的一部分,它可能包含了游戏中的声音处理函数。在Basic语言中,模块(Module)是一种组织代码的方式,...

    跳棋小游戏MFC

    跳棋小游戏MFC是一款基于Microsoft Foundation Classes (MFC)库开发的编程项目,它为编程初学者提供了一个学习和实践MFC编程理念的平台。MFC是微软为Windows应用程序开发设计的一套C++类库,它封装了Windows API,...

    用C++写的跳棋游戏

    总的来说,用C++编写跳棋游戏涵盖了编程基础、面向对象设计、算法设计、GUI编程以及AI开发等多个方面的知识。通过这个项目,开发者不仅可以提升编程技能,还能深入理解游戏开发的过程,增强问题解决和逻辑思维能力。...

    跳棋 游戏 源代码

    跳棋,又称中国跳棋或飞行棋,是一种策略性棋类游戏,适合各年龄段的玩家,其规则简单但变化丰富,因此在编程界常被选为学习游戏开发的入门项目。 源代码是程序的原始形式,程序员用特定的编程语言(如C++、Python...

    专业跳棋游戏VB版

    标题中的“专业跳棋游戏VB版”指的是一个使用Visual Basic(VB)编程语言开发的跳棋游戏软件。VB是微软公司推出的一种面向对象的、事件驱动的编程工具,尤其适合于快速开发用户界面友好的应用程序。跳棋游戏,又称为...

    java跳棋游戏代码

    在本文中,我们将深入探讨如何使用Java编程语言开发一个跳棋游戏。跳棋,也称为中国跳棋或国际跳棋,是一种策略性棋类游戏,适合各年龄段的玩家。对于初学者来说,通过编写跳棋游戏,可以学习到Java编程的基础、面向...

    跳棋游戏源码

    跳棋游戏源码是编程爱好者和学习者们经常会遇到的一种学习资源,尤其对于那些想深入理解C++编程语言以及游戏开发的人来说,这是一个很好的实践项目。本文将详细解析使用Visual C++编写跳棋游戏源代码的相关知识点。 ...

    跳棋游戏的设计过程及提示

    从给定的文件信息来看,本文档主要围绕跳棋游戏的设计过程及开发提示进行阐述,提供了从游戏架构、代码组织到具体实现细节的全面指导。下面将深入解析这些知识点。 ### 跳棋游戏设计概览 跳棋游戏的设计不仅涉及...

    Python跳棋游戏

    Python写的跳棋小游戏,适合python初学者。游戏规则如下: (1)点击黑棋开始 (2)点击任何白棋,经过相邻棋子,直线跳到空白处,则被跳过的棋子被消除 (3)依次跳过,确保最后最少的棋子无法被消除 作者最好成绩...

    跳棋游戏的源码

    跳棋游戏源码是计算机编程领域中一个典型的项目实例,主要使用Visual Basic(VB)语言进行编写。VB是一种面向对象的编程语言,尤其适合初学者和快速开发简单应用。在这个跳棋游戏中,开发者通过VB实现了游戏逻辑、...

    用eclipse编写的跳棋游戏

    在这款由Eclipse开发的跳棋游戏中,玩家可以享受多玩家对战的乐趣,进一步提升了可玩性。Eclipse是一款广泛应用于Java开发的集成开发环境(IDE),它的强大功能和易用性使得开发复杂的软件项目变得更为便捷。 1. **...

    跳棋 小游戏

    跳棋游戏是一款经典的两人对弈桌面游戏,它以其简单的规则和深奥的策略深受人们喜爱。在这个用C++实现的跳棋游戏项目中,我们能够深入理解编程、算法设计以及游戏逻辑的实现。 首先,我们要了解C++语言基础。C++是...

    论文研究-智能西洋跳棋博弈框架设计 .pdf

    智能西洋跳棋博弈框架设计的知识点涵盖了计算机博弈理论、递归算法、评估函数、博弈树构建、Alpha-Beta剪枝以及程序优化等多个方面。 首先,智能西洋跳棋博弈框架是一个在人工智能领域中重要的研究方向。西洋跳棋因...

    跳棋游戏(人人对弈)

    标题中的“跳棋游戏(人人对弈)”表明这是一个双人对战的跳棋游戏程序,意味着它不包含与计算机智能对弈的功能。描述中提到的限制条件,即“不支持人机对弈”和“必须逐步跳跃”,意味着游戏设计遵循传统跳棋规则,...

    使用VC++编写的跳棋游戏

    《使用VC++编写的跳棋游戏》是一款基于Visual C++编程环境开发的桌面游戏,旨在帮助编程爱好者在娱乐中提升编程技能。跳棋游戏是一种深受人们喜爱的传统智力游戏,通过编程实现,它不仅可以锻炼逻辑思维,还能加深对...

    VB网络跳棋游戏源码

    【VB网络跳棋游戏源码】是一个基于Visual Basic(VB)开发的网络跳棋游戏程序。VB是一种由微软推出的事件驱动编程语言,以其直观的界面和易于学习的特点,深受初学者和专业开发者喜爱。本项目旨在提供一个网络跳棋...

    java跳棋游戏程序源码

    Java跳棋游戏程序是一款利用Java编程语言开发的桌面游戏,适用于JDK1.5或更高版本。这个程序不仅提供了一个可玩的跳棋游戏,而且因其源代码的开放性,对于初学者和开发者来说,是一个极好的学习资源,能够帮助他们...

Global site tag (gtag.js) - Google Analytics