找回密码
 马上注册

QQ登录

只需一步,快速开始

查看: 3191|回复: 5

经典游戏再现-俄罗斯方块(经验分享帖)

[复制链接]
发表于 2018-12-21 17:56:35 | 显示全部楼层 |阅读模式
本帖最后由 YAMD 于 2018-12-21 17:56 编辑

游戏原帖地址(分别记录了三个版本的,有兴趣的可以对比一下,发现改动在哪,修改的bug或者实现的功能是什么)


EV3之俄罗斯方块(原创Tetris)
https://bbs.cmnxt.com/forum.php?mod=viewthread&tid=59040&fromuid=66565
(出处: 中文乐高)



这个帖子主要是分享一些编制过程中的经验(大神别喷我哟)。

1. 图形的产生:最重要的是选好旋转中心点,并且把所有的情况记录在本子上,并且给他们不同的特征值,存在同一变量中。每一次变化中,每个小方块的x值和y值是如何变化的。

2. 移动:前期移动的话就是比较简单的了,按左键,所有小方块的x值-6,按右键,所有小方块的x值+6,y值不变。后期的话要考虑不能进入已落方块的身体

3.。判断已落的话,这个就有无数种方法,但是你得想好用哪种方法能够贯穿整个游戏,不然有些方法只能实现一部分功能(我之前有过一次惨痛的教训))

4.。消行的话,找规律。其实你把整个游戏界面等分几条横线时,你就可以i明白,每一次消行在程序中就是,消行的那条线的所有方块的值等于上一条线的值,上一条等于上上条,以此类推。

如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
发表于 2018-12-22 10:59:55 | 显示全部楼层
我是写扎金花的那个。写的过程中有几个难点提前跟你交流下。一个是牌的去重问题,发的牌越多面临的去重问题越大,我用的是阵列运算将已选中的牌赋值为0。还有就是比较两副牌大小问题,最后就是看牌还是闷,选择加注金额等等,当然将这么多内容显示起来也是个问题。我也不打算写人机的程序了,改为PVP了,因为扎金花毕竟是靠智慧勇气和运气的,机器很难表示出来。你写斗地主的话,如果有什么好的算法或问题可以互相交流。
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

 楼主| 发表于 2018-12-22 15:21:41 | 显示全部楼层
搭建狂魔 发表于 2018-12-22 10:59
我是写扎金花的那个。写的过程中有几个难点提前跟你交流下。一个是牌的去重问题,发的牌越多面临的去重问题 ...

斗地主我还没开始呢,如果要我来做去重的话,我会用阵列运算中的序列号来做为每一张牌的标记。然后已发的牌的序列号存到另外一个新的阵列,然后每次程序发牌的时候,先检查该随机产生的发牌的序列号是否与之前存入阵列的所有的序列号重复,这样应该可以实现发牌不重合,如果用你的方法,已选牌为零的话,也可以实现的,方法差不多。比较两幅牌的大小的话,先分类,每个人的三张牌是否为顺子(是的话,比最大的那张牌,倘若牌面一样,再比花色),是否为豹子(比任意一张牌),是否为同花顺(这个同花顺的话,花色怎么表示也是一个问题,判定和顺子一样,倘若牌面一样,再比花色),是否为对子(比成对的其中一张牌的大小,如果牌面一样,再比花色),如果都不是的话,就为单牌,比大小,一样就比花色。看牌和闷的话,都应该可以用循环切断来做,加注的话,用一个单独的阵列去记录应该也是可以的,每个人的加注金额分别写入特定的序号中。斗地主估计要几天后我才能开始写。
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2018-12-23 10:10:49 | 显示全部楼层
YAMD 发表于 2018-12-22 15:21
斗地主我还没开始呢,如果要我来做去重的话,我会用阵列运算中的序列号来做为每一张牌的标记。然后已发的 ...

想的差不多,如果从小向大去比较的话程序会更省时间。加注不用阵列也行,影响不大。程序慢慢写不急,写的过程会很有乐趣。
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

 楼主| 发表于 2018-12-23 10:43:48 | 显示全部楼层
本帖最后由 YAMD 于 2018-12-23 11:06 编辑

加油哟
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2019-8-15 18:49:24 | 显示全部楼层
支持一下吧~~~~~~~~~~~~~~~~~~
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|中文乐高 ( 桂ICP备13001575号-7 )

GMT+8, 2024-4-20 06:00 , Processed in 0.094265 second(s), 18 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表