利辛业余象棋怎么提高水平有业八的水平吗

1955人阅读
Cocos2d-X游戏开发(13)
C++语言(62)
在中实现了新局,至此中国象棋的准备工作差不多都完成了,在接下来的博客中将介绍玩家的走棋和一些游戏属性的设置,今天先介绍走棋和走棋规则
老规则,先看走棋的效果图,然后根据效果图一步一步分析游戏逻辑,最后会贴出代码
走棋分为两个步骤:
第一步选棋:通过点击棋子实现选棋子,当选中某个棋子的时候,选择框会套在选中的棋子上
第二步走棋:通过点击棋盘上的位置可以实现棋子的移动,当点击的位置是允许棋子移动的位置时,棋子会移动到点击的位置
走棋的实现思路
1、游戏走棋时采用红先黑后原则,红棋和黑棋轮流走
2、通过点击选择需要走的棋子
3、当点击的位置上有棋子的时候,棋子上显示选择框,并且记录点击了一次
4、当点击的位置上没有棋子的时候,判断上次是否点击了棋子,如果上一次点击了棋子,则将棋子移动到第二次点中的位置上
5、游戏走棋时采用红先黑后原则,红棋和黑棋轮流走
首先在SceneGame.h中声明一个ccTouchBegan(CCTouch* pTouch, CCEvent* pEvent)函数,然后在SceneGame.cpp中定义ccTouchBegan(CCTouch* pTouch, CCEvent* pEvent)
//通过点击选择棋子,走棋子
bool SceneGame::ccTouchBegan(CCTouch* pTouch, CCEvent* pEvent)
CCObject* obj = (CCObject*)pT
//获取触摸点的窗口坐标
CCPoint ptInWin = pTouch-&getLocation();
//当触摸到了游戏结果框
if(sprite-&boundingBox().containsPoint(ptInWin) && visible == true)
//隐藏结果
HideResult(sprite, obj);
if(sprite1-&boundingBox().containsPoint(ptInWin) && visible == true)
//隐藏结果
HideResult(sprite1, obj);
int x,//保存触摸点的棋盘坐标
//通过触摸点的窗口坐标获取棋盘的x坐标和y坐标
if(!getClickPos(ptInWin, x, y))
//通过触摸点在棋盘中的坐标获取选中的棋子的id
int clickid = getStone(x, y);
//当触摸点的位置上有棋子的时候,clickid为选中的棋子的id,表示玩家在选棋
//当触摸点的位置上没有棋子的时候,clickid为-1,表示玩家在走棋
//-1 == _selectid表示没有选中棋子
if(-1 == _selectid)
setSelectId(clickid);
//移动棋子
//第一个参数:移动的棋子的id
//第二个参数:通过触摸点的位置判断触摸点上是否有棋子
//第三个参数:触摸点的x坐标
//第四个参数:触摸点的y坐标
//moveStone执行了两个步骤选棋和走棋
//选棋子:当_selectid == clickid时,表示选定了id为_selectid的棋子
//走棋子:当selectid != clickid时, 表示将id为_selectid的棋子移动到(x,y)所在的位置上
moveStone(_selectid, clickid, x, y);
// CCLog(&_selectid=%d, clickid=%d&, _selectid, clickid);
//CCLog(&x=%d, y=%d&, x, y);
在SceneGame.h中声明一个成员函数MoveStone()实现移动棋子
//移动棋子
//第一个参数:移动的棋子的id
//第二个参数:通过触摸点的位置判断触摸点上是否有棋子
//第三个参数:触摸点的x坐标
//第四个参数:触摸点的y坐标
void SceneGame::moveStone(int moveId, int killId, int x, int y)
//killId != -1表示触摸点的位置上有一个棋子
//_s[moveId]-&getRed() == _s[killId]-&getRed()表示触摸点上
//的棋子和走棋的棋子的颜色相同
if(killId != -1 && _s[moveId]-&getRed() == _s[killId]-&getRed())
//更换选择框
setSelectId(killId);
//CCLog(&killId=%d, moveId=%d&, killId, moveId);
//CCLog(&_s[moveId]-&getRed()=%d&, _s[moveId]-&getRed());
//走棋规则
bool bCanMove =
canMove(moveId, killId, x, y);
//如果bCanMove为false
//不能走棋
if(false == bCanMove)
//走棋之前记录棋子的信息
//第一个参数:需要移动的棋子的id
//第二个参数:通过触摸点的位置判断触摸点上是否有棋子
//第三个参数:棋子当前的位置的x坐标
//第四个参数:棋子当前的位置的y坐标
//第五个参数:棋子移动后的位置的x坐标
//第六个参数:棋子移动后的位置的y坐标
Step* step = Step::create(moveId, killId, _s[moveId]-&getX(), _s[moveId]-&getY(), x, y);
//将棋子的信息添加到数组中
_steps-&addObject(step);
//设置棋子的坐标(移动棋子)
_s[moveId]-&setX(x);
_s[moveId]-&setY(y);
//_s[moveId]-&setPosition(getStonePos(x,y));
//SetRealPos(_s[moveId]);
//设置移动棋子时的动作
CCMoveTo* move = CCMoveTo::create(.5f, getStonePos(x, y));
//动作回调
CCCallFuncND* call = CCCallFuncND::create(this,
callfuncND_selector(SceneGame::moveComplete),
(void*)(intptr_t)killId);
//设置动作的执行顺序(先移动棋子,后调用回调函数)
CCSequence* seq = CCSequence::create(move, call, NULL);
//设置移动的棋子的优先级
_s[moveId]-&setZOrder(_s[moveId]-&getZOrder() + 1);
//执行棋子移动的动作
_s[moveId]-&runAction(seq);

&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:362839次
积分:6559
积分:6559
排名:第3620名
原创:286篇
转载:19篇
评论:137条
文章:14篇
阅读:24016
文章:49篇
阅读:74014
(2)(3)(1)(1)(4)(2)(15)(36)(10)(3)(8)(7)(3)(4)(3)(28)(26)(32)(2)(2)(21)(28)(16)(12)(13)(20)(3)列表网公众号列表活动随时有扫我活动不错过
微信扫一扫快速获取电话
微信扫一扫快速获取电话
微信扫一扫快速获取电话
微信扫一扫快速获取电话
微信扫一扫快速获取电话
微信扫一扫快速获取电话
微信扫一扫快速获取电话
微信扫一扫快速获取电话
微信扫一扫快速获取电话
微信扫一扫快速获取电话
微信扫一扫快速获取电话
华翎嬛嬛老师&
微信扫一扫快速获取电话
微信扫一扫快速获取电话
微信扫一扫快速获取电话
微信扫一扫快速获取电话
微信扫一扫快速获取电话
微信扫一扫快速获取电话
微信扫一扫快速获取电话
微信扫一扫快速获取电话
微信扫一扫快速获取电话
微信扫一扫快速获取电话
微信扫一扫快速获取电话
微信扫一扫快速获取电话
微信扫一扫快速获取电话
微信扫一扫快速获取电话
微信扫一扫快速获取电话
微信扫一扫快速获取电话
微信扫一扫快速获取电话
健身教练培训&
微信扫一扫快速获取电话
健身教练培训&
微信扫一扫快速获取电话
微信扫一扫快速获取电话
微信扫一扫快速获取电话
微信扫一扫快速获取电话
健身教练培训&
微信扫一扫快速获取电话
微信扫一扫快速获取电话
微信扫一扫快速获取电话
锐星小袁老师&
微信扫一扫快速获取电话
微信扫一扫快速获取电话
爱尚瑜伽甘洁&
微信扫一扫快速获取电话
微信扫一扫快速获取电话
微信扫一扫快速获取电话
华翎嬛嬛老师&
微信扫一扫快速获取电话
华翎嬛嬛老师&
微信扫一扫快速获取电话
微信扫一扫快速获取电话
微信扫一扫快速获取电话
微信扫一扫快速获取电话
微信扫一扫快速获取电话
微信扫一扫快速获取电话
爱尚瑜伽甘洁&
微信扫一扫快速获取电话
微信扫一扫快速获取电话
亳州象棋班友情小提示
亳州象棋班相关推荐
亳州象棋班相关公司
亳州象棋班相关分类
&2017 列表网&琼ICP备号-12&增值电信业务经营许可证B2-&&
还没关注列表网?一大波金豆等你拿!更多频道内容在这里查看
爱奇艺用户将能永久保存播放记录
过滤短视频
暂无长视频(电视剧、纪录片、动漫、综艺、电影)播放记录,
使用您的微博帐号登录,即刻尊享微博用户专属服务。
使用您的QQ帐号登录,即刻尊享QQ用户专属服务。
使用您的人人帐号登录,即刻尊享人人用户专属服务。
按住视频可进行拖动
&正在加载...
请选择打赏金额:
收藏成功,可进入
查看所有收藏列表
当前浏览器仅支持手动复制代码
视频地址:
flash地址:
html代码:
通用代码:
通用代码可同时支持电脑和移动设备的分享播放
用爱奇艺APP或微信扫一扫,在手机上继续观看
当前播放时间:
一键下载至手机
限爱奇艺安卓6.0以上版本
使用微信扫一扫,扫描左侧二维码,下载爱奇艺移动APP
其他安装方式:手机浏览器输入短链接http://71.am/udn
下载安装包到本机:
设备搜寻中...
请确保您要连接的设备(仅限安卓)登录了同一爱奇艺账号 且安装并开启不低于V6.0以上版本的爱奇艺客户端
连接失败!
请确保您要连接的设备(仅限安卓)登录了同一爱奇艺账号 且安装并开启不低于V6.0以上版本的爱奇艺客户端
部安卓(Android)设备,请点击进行选择
请您在手机端下载爱奇艺移动APP(仅支持安卓客户端)
使用微信扫一扫,下载爱奇艺移动APP
其他安装方式:手机浏览器输入短链接http://71.am/udn
下载安装包到本机:
爱奇艺云推送
请您在手机端登录爱奇艺移动APP(仅支持安卓客户端)
使用微信扫一扫,下载爱奇艺移动APP
180秒后更新
打开爱奇艺移动APP,点击“我的-扫一扫”,扫描左侧二维码进行登录
没有安装爱奇艺视频最新客户端?
30秒后自动关闭
小博士学象棋(2)第八集-开局及几种形式">小博士学象棋(2)第八集-开局及几种形式
播放量数据:快去看看谁在和你一起看视频吧~
您使用浏览器不支持直接复制的功能,建议您使用Ctrl+C或右键全选进行地址复制
安装爱奇艺视频客户端,
马上开始为您下载本片
5秒后自动消失
&li data-elem="tabtitle" data-seq="{{seq}}"& &a href="javascript:void(0);"& &span>{{start}}-{{end}}&/span& &/a& &/li&
&li data-downloadSelect-elem="item" data-downloadSelect-selected="false" data-downloadSelect-tvid="{{tvid}}"& &a href="javascript:void(0);"&{{pd}}&/a&
选择您要下载的《
色情低俗内容
血腥暴力内容
广告或欺诈内容
侵犯了我的权力
还可以输入
您使用浏览器不支持直接复制的功能,建议您使用Ctrl+C或右键全选进行地址复制中国象棋的八大残局是哪八个什么意思啊?
中国象棋的八大残局是哪八个什么意思啊?
百度知道知体育
中国象棋八大残局是:大征西、七星聚会、野马操田、带子入朝、大九连环、小征东、火烧连营、炮炸两狼关。分述如下:1.大征西(如图):“小征西”是一则很受人们喜爱的江湖古局,但因变化不多,因而江湖棋人一直在进行探索,试图修改。1953年以后,上海的江湖棋摊上出现了加黑边卒的“征西”局,流传很广,影响很大,成为江湖上最著名的八大棋局之一。人们把它叫“大征西”,把原局叫“小征西”。& 在所有的江湖残局中,着法最深奥,变化最繁复的,可说就是这则“大征西”局,甚至连素有残局之王的“七星聚会”的难度和变化也远不如此局,它堪称是江湖残局中的王中之王。&本局棋的布局结构严谨,气势雄伟,除了一开始就有红方连弃双炮单车再进车杀局的假象这种极浓的江湖排局特色外,其开局阶段红黑双方更是杀机四伏,诡秘异常;中局阶段黑方攻势凌厉,红方拚搏激烈;残局阶段双方着法细腻绵密,局势多样,最后两难取胜,终成和局。2.七星聚会(如图):“七星聚会”是清代起广泛流传于民间的古谱四大江湖名局之首,清代出版的著名棋谱几乎都刊有此局,只是局名略有差异。在象棋排局中,“七星聚会”影响大,流传广,并被誉为“棋局之王”。这局棋的棋图由红黑双方各七子组成,结局时又多以双方合计七子组成,所以又有“七星”、“七星棋”、“江湖七星”、“大七星”等名称。& “七星聚会”构思精巧,陷阱四伏。乍一看,红方似有胜机,棋摊前的“初生牛犊”常因求胜心切,误中设局人的圈套,故江湖艺人多以此局为谋生的法宝。&“七星聚会”的图势美观严谨,着法深奥精妙,变化繁复多端,引人入胜是一则车卒大斗车兵的高深排局,所以深得江湖艺人的青睐,并成为其谋生的法宝。研究这局棋,可以提高人们对车(卒)兵残棋的攻防战术在实战中的运用技巧。& 考虑到“七星聚会”这一优秀的排局作品在海内外的影响,我国首次举办中国象棋国际邀请赛时,亦因此而将杯赛命名为“七星杯”。3.野马操田(如图):“野马操田”局,亦名“野马躁田”、“大车马”、“管鲍分马”,简称“野马”。古谱四大名局之一。棋势为:经过十余回合“序战”后,成为车马斗车兵的实用残局。出现先走一方易胜的假象,往往使人误认为起着即可成杀局而坠入圈套。& “野马操田”的主题是车马斗车卒,因其着法深奥,变化多端,而且一开始就有红方双车单马可以连杀的假象,所以江湖排局艺人都乐于摆设这局棋。此局经过当代人们的修改,删去了红方一路边兵,其着法比原局更为奥妙,变化更为繁复,且有可能弈成和局。应当说明,这局棋的着法会出现:“长要杀”、“一将一要杀”、“一捉一要杀”等棋例,如按现行棋规,这是不允许的,但这是一则古局,应当按照那时的棋例来判定。因此,这里尊重古意,如遇上述棋例,双方不变,判作和局。&此局名闻中外棋坛,民国初期,来中国弈访的国际象棋家丹麦人葛林瑞(Charles,Kliene)爱好上中国象棋,颇感此局变化莫测,引人入胜,故参用国际象棋的型式和记录方法,罗列各类正劣变着达300多种,译成英文,于1916年在上海出版,并将这局棋译成英文单行本,介绍到国外。从而使此局的影响扩展到西 方。4.带子入朝(如图):带子入朝是一则十分优秀的排局,最早刊于清谱《蕉竹斋》,局名为“五子夺魁”,但着法少而且不够完善。由于红方3路兵必须在红车的带领下巧妙地渡河去牵制黑方,才能谋得和局,故此在民间一向又以“带子入朝”为局名,简称“带子”。也名“带子长征”。“带子”在当代发展出了诸多变招,成为一组系列残局的统称。& 这局棋,局势简练,但着法深奥,变化微妙,其对“车兵对车卒”残棋技巧的探讨,堪与“七星聚会”相媲美。它的出现当较“七星”为晚,古今棋谱中都无完整记载,仅古抄本《湖涯集》里面有它的类似局势“落底金钱”,从现有资料来看,此局全凭民间艺人世代口传,才不致湮没,并流传下来。到了近代,“带子”局更有了深入的发展和高度的提炼,在平淡的着法中包含着高深的内容,着法丰富多彩,精妙入微,所以“带子”局成为广大群众和艺人们最喜爱的民间象棋排局,它的流传范围极广,从大江南北,到港澳等地均颇流行,是脍炙棋坛的一则优秀残局作品。5.大九连环(如图)“九连环”是江湖残局中一组名气很大的局谱,其以环环相扣、严谨绵密为主要特色,许多民间棋手都以此为看家法宝。“大九连环”在众多流行的“九连环”江湖排局中,着法最深奥,变化最复杂,影响最广泛,俗名“九进中原”。是上世纪六十年代周孟芳韩文秋等人改良而成的作品。此棋最终推演结果为红先黑胜,至今仍有许多残局大师在努力研究和改良,试图找到红棋的求胜求和之道。6.小征东(如图)本局最早的局名为“跨海征东”,约在1870年前后成局,曾刊于1879年木版刻印的《蕉窗逸品》,但图势没有黑方1路边象,红方较易谋和。后经民间艺人的不断演变、反复实践、总结提高,加上了黑方1路边象,成为如图棋势,黑方攻击力得到增强,使得红方谋和难度加大,从而使这局棋显得着法更为深奥,变化更为复杂,并于晚清年间被分别收于手抄本《蕉竹斋》和《湖涯集》中,局名改为“小征东”,一直流传至今,允称佳局。这两部古抄本虽然都详细列出了“小征东”的变化,但也有不少谬误之处。现代残局名家总结前人经验,演变出了一些全新的精妙着法。然而时至今日,对于此局的讨论仍在继续,红棋求和仍无完美解法。“小征东”图势结构严谨,着法深奥,变化繁复,是一则“脱帽”后车炮大斗车卒的江湖大局,在民间流传甚广,影响也很大,也是象棋江湖艺人的谋生法宝。7.火烧连营(如图)“火烧连营”是当前象棋路边摊最常用的名局,此局子力差大,“帽子”埋藏很深,非棋力深厚之人难以识破,很容易被速胜的假象所诱惑,因此非常适合江湖艺人谋生的实际需要。此局是1959年我国当代残局大师翟问秋杨明生所创,从问世起便广受江湖艺人的欢迎。后来在街头实战中,又演化出1兵、2兵、3兵的变体,具体推演方式则大致相同。& 此棋刚创出时,翟杨二人推演结论为和棋,棋谱也据此写成。但随着民间高手的不断研究和推演,最终得出的结论是红先黑胜,红无法求和。由此一点,也足以看出此棋的深奥程度。&8.炮炸两狼关(如图)此局为古谱四大名局之一,最早见于《竹香斋象戏谱》,名为“蓝田散彩”,但存在红方能胜的重大缺陷。后经历代民间高手改良,于清末被改成为今天的局面,修正了红胜问题,改名为“七征行”。本局起手红炮可从纵横方向上抽吃两个黑车,故在民间被称为“炮炸两狼关”。&这类江湖排局同型局较多,棋路大致有两种,一种为横炮轰车型,另一种是直炮轰车型。这两种局型的棋路各具特色,变化完全不同,“脱帽”以后,可形成炮多兵对炮多卒象或车炮兵对车炮卒的实用残局,又以炮多兵对炮多卒象变化更为复杂多变,因而影响也更广泛。当今残局名家都有诠订作品问世,对于此局的研究和争论还方兴未艾。一般的推演结论是,此局为和棋。但民间高手普遍存在质疑,认为此局为红先黑胜。(本文内容由百度知道网友贡献)
本文仅代表作者观点,不代表百度立场。系作者授权百家号发表,未经许可不得转载。
百度知道知体育
百家号 最近更新:
简介: 知道君为运动欢呼!
作者最新文章

我要回帖

更多关于 天天象棋业5什么水平 的文章

 

随机推荐