学习型 ASP/PHP/ASP.NET 主机 30元/年全能 ASP/PHP/ASP.NET 主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付
发新话题
打印

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

强人

TOP

怎么玩一会就不消了啊 ,还是有点问题吧

TOP

我还没碰到过不能消的情况,不过有问题也是有可能的,有没有发现是在在什么情况下不能消呢?
OldHandle = findobj( \'Name\', \'悲伤\' ) ;if ~isempty(OldHandle),delete(OldHandle) ;end for Time = \'现在\':\'每一天\':\'永远\',set( gco, \'心情\', \'快乐\');end % 这段代码为你天天快乐而存在

TOP

高手啊
顶了先
不过运行起来还是有些BUG 有时消不掉

TOP

以后多向高手学习

TOP

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

TOP

[em24]向高手学习,拿下这个大西瓜

TOP

以下是引用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

OldHandle = findobj( \'Name\', \'悲伤\' ) ;if ~isempty(OldHandle),delete(OldHandle) ;end for Time = \'现在\':\'每一天\':\'永远\',set( gco, \'心情\', \'快乐\');end % 这段代码为你天天快乐而存在

TOP

我的运行不了?

TOP

真的是强

TOP

发新话题