php俄罗斯方块代码,[原创]Matlab做的俄罗斯方块(含代码)

以下是引用swf_2008在2007-5-17 9:36:53的发言:

能不能在方块移除的几句程序后面加些注释,不大看的懂啊.谢谢

for num = 1: length( LastBlockYData )

% 对最后一个下来的方块按行搜索

[YData, Index] = find( TotalYData == LastBlockYData(num) ) ;

% 判断是否满12个(满12个为整行,可以消除)

if length( YData ) == 12

% 保存下行号

CompleteLine = [CompleteLine, LastBlockYData(num)] ;

UsefulIndex = [UsefulIndex, Index] ;

end

end

% 处理需要消除的行

if ~isempty( CompleteLine )

% 在所有方块序列中删除这些行

TotalXData( UsefulIndex ) = [] ;

TotalYData( UsefulIndex ) = [] ;

% 得到完成行的数目,得到相应的分数

LineNumber = length( CompleteLine ) ;

ScoreArray = [100 300 600 1000] ;

NewScore = ScoreArray(LineNumber) ;

% 更新总分

CurrentScore = getappdata( handles.RussiaBlock, 'CurrentScore' ) ;

TextString = get( handles.ScoreText, 'String' ) ;

TextString{2} = CurrentScore + NewScore ;

set( handles.ScoreText, 'String', TextString ) ;

setappdata( handles.RussiaBlock, 'CurrentScore', CurrentScore + NewScore ) ;

% 更新游戏等级(如果需要的话)

UpdateGameLevel( handles.RussiaBlock, CurrentScore + NewScore ) ;

% 处理需要下移的方块

for num = LineNumber : -1 : 1

[YData, Index] = find( TotalYData > LastBlockYData(num) ) ;

% 从下往上,逐行下移一行(20象素)

TotalYData(Index) = TotalYData(Index) - 20 ;

end

end

% 设置新的方块序列

set( handles.BlockHandle, 'XData', TotalXData, 'YData', TotalYData ) ;

end

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值