‘壹’ “俄罗斯方块”是什么意思
《俄罗斯方块》(Tetris, 俄文:Тетрис)是一款由俄罗斯人阿列克谢·帕基特诺夫于1984年6月发明的休闲游戏。
该游戏曾经被多家公司代理过。经过多轮诉讼后,该游戏的代理权最终被任天堂获得。任天堂对于俄罗斯方块来说意义重大,因为将它与GB搭配在一起后,获得了巨大的成功。
《俄罗斯方块》的基本规则是移动、旋转和摆放游戏自动输出的各种方块,使之排列成完整的一行或多行并且消除得分。
俄罗斯方块游戏规则
由小方块组成的不同形状的板块陆续从屏幕上方落下来,玩家通过调整板块的位置和方向,使它们在屏幕底部拼出完整的一条或几条。这些完整的横条会随即消失,给新落下来的板块腾出空间,与此同时,玩家得到分数奖励。
没有被消除掉的方块不断堆积起来,一旦堆到屏幕顶端,玩家便告输,游戏结束。
‘贰’ c语言中俄罗斯方块属于哪种数据类型
C语言里面没有俄罗斯方块这个数据类型啊兄弟,如果你是说C语言编写的俄罗斯方块程序,那么你可以定义一个名字叫做eluosifangkuai的结构体,里面方一些相关属性。
‘叁’ 俄罗斯方块
国内主要流行时间段:1990年~至今
俄罗斯方块的发明者,是当时还被称为"苏联"的联邦科学员阿莱克斯?帕吉托夫,该游戏最初是作为自我消遣的电脑游戏而被制作出来的。此后,由于政治和经济等多方面的原因,该游戏曾经被多家公司代理过。经过多轮诉讼的争夺后,该游戏的代理权最终还是被任天堂获得。俄罗斯方块对于任天堂来说意义重大,因为将它与GB搭配在一起后,产生了令人意想不到的效果,获得了巨大的成功。而对于中国玩家来说,俄罗斯方块可以说是第一次让国人认识到游戏是一种老少皆宜的娱乐方式,从某种程度上扭转了国人的"游戏是小孩子的东西"或"游戏是毒害儿童的元兇"等错误观念。
‘肆’ 俄罗斯方块游戏有那些类型~~~~
有标准,经典,新式,最近有个表态俄罗斯方块,真的很崩溃
‘伍’ 俄罗斯方块是什么游戏
《俄罗斯方块》是休闲类型的游戏。
《俄罗斯方块》(Tetris,俄文:Тетрис)是一款由俄罗斯人阿列克谢·帕基特诺夫于1984年6月发明的休闲游戏。
简介
顾名思义,俄罗斯方块自然是俄罗斯人发明的。这人叫阿列克谢·帕基特诺夫(АлексейПажитнов英文:Alexey Patnov)。
俄罗斯方块原名是俄语Тетрис(英语是Tetris),这个名字来源于希腊语tetra,意思是“四”,而游戏的作者最喜欢网球(tennis)。于是,他把两个词tetra和tennis合而为一,命名为Tetris,这也就是俄罗斯方块名字的由来。
‘陆’ 一个简单的c语言写的俄罗斯方块程序
1、考虑怎么存储俄罗斯方块
俄罗斯方块的形状一共有19种类型,如果拿数组来表示的话,可能会比较会浪费空间(网上有很多实现代码)
考虑到每种方块形状的范围是4 *4的小方块,用 字模点阵的方式来存储,即设置一个4行4列的数组,元素置1即代表这个位置有小
方块,元素置0即代表这个位置无小方块,这个整个的4*4的数组组成俄罗斯方块的形状。
1000
1000
1100
0000
上述4*4来表示L形状的方块。
4*4 =16 bit 正好为short类型,所以每一个方块可以用一个short类型的数据来表示。
我们把俄罗斯方块点阵的数位存在rockArray中,我们可以事先把这19种方块的字模点阵自己转化成十六进制,然后在rockArray数组的初始化时赋值进去。
但是这种方式扩展性不好,每当有一种新方块时需要改动,
所以可以写一个配置文件来表示19种方块。(RockShape.ini)
@###@###@@######1234
从配置文件中读取方块的类型的代码在(Init.h的ReadRock函数中)在下面3中解释下代码如何实现
2如何画出方块
可以使用EasyX库来画出简单的图形,
EasyX库是在VC下实现TC的简单绘图功能的一个库,这个库很容易学会(直接 网络EasyX库,里面有详细的教程)
那么如何画出方块,方块已经存储到一个short类型中了
从short中读取出,可以用一个掩码mask = 1来与short的每个bit位相与,结果为1,则画出一个小方块;
函数声明:
void DisplayRock(int rockIdx, RockLocation_t* LocatePtr, bool displayed)1
参数1:表示在数组中的下标,取出short类型的方块表示数据
参数2:表示当前坐标,即画出方块的左上角的坐标x,y
参数3:true表示画出该方块,false 表示擦除该方块。
//方块在图形窗口中的位置(即定位4*4大块的左上角坐标) typedef struct LOCATE
{ int left; int top;
} RockLocation_t;123456
3如何实现同一种类型方块的翻转,
在按‘↑’时应该翻转同一种类型的方块,
比如下面的横杆和竖杆
@###@###@###@###@@@@############****1234567891011
可以假想成静态循环链表来实现这种方式
使同一种类型的方块循环起来,
用一个struct结构来表示一种方块
typedef struct ROCK
{ //用来表示方块的形状(每一个字节是8位,用每4位表示方块中的一行)
unsigned short rockShapeBits; int nextRockIndex; //下一个方块,在数组中的下标 } RockType;123456
定义一个RockType类型的数组来存储19种方块
RockType RockArray[19] = { (0, 0) };
当我们按“↑”时,把传入画方块函数DrawRock中的rockIndex变为当前方块结构体中的nextRockIndex即可。
简单解释下ReadRock函数的实现:当读取到空行的时候表示 一种方块已经读取完毕,当读取到****行时 表示同一种类型的方块读取完毕,具体看代码实现,代码中具体的注释
4、主要游戏实现的逻辑
贴一个预览图吧
注:上述预览图的游戏控制区和游戏显示区在Draw.h的DrawGameWindow()函数实现的
(1)在初始位置画出方块,在预览区画出下一次的方块
(2)方块有两种行为:响应键盘命令UserHitKeyBoard(),自由下落
如果敲击键盘了(w ,a ,s ,d, )空格表示暂停,如果在规定时间内没有敲击键盘的话,方块自由下落一个单位
if (kbhit()) //如果敲击键盘了 就处理按键
{
userHit = getch();
UserHitKeyBoard(userHit, &curRockIndex, &curRockLocation);
} //没有 就自动下移一个单位 :不能用else,因为可能按键不是上下左右
DWORD newtime = GetTickCount(); if (newtime - oldtime >= (unsigned int)(300) && moveAbled == TRUE)
{
oldtime = newtime;
DisplayRock(curRockIndex, &curRockLocation, false);
curRockLocation.top += ROCK_SQUARE_WIDTH; //下落一格
}1234567891011121314
(3)当方块落地(即不能下移了)时,判断是否满行,如果满行则消除,然后再判断游戏是否结束,游戏结束的话,直接退出游戏
判断满行:FullLine()函数,从最底下的一行开始判断,直到遇到一行空行,
while (count != xROCK_SQUARE_NUM ) //遇到空行 14
{
linefull = true; count = 0; for (int i = 1; i <= xROCK_SQUARE_NUM; ++i)
{ if (game_board[idx][i] == 0)
{
linefull = false; count++;
}
} if (linefull) //满行,消除当前行,更新分数
{
DelCurLine(idx);//消除满行
game_socres += 3;
UpdateSocres(game_socres);
idx++;//因为下面要减1
}
idx--;
}
(4)消除满行
将要删除的满行擦除:即将方块化成与背景色相同的,该代码为黑色
然后将上面的一行向下移,移一行删除一行,直到遇到空行
具体看代码的具体实现 game.h
void DelCurLine(int rowIdx)
(4)判断方块是否能移动
在game.h中实现
bool MoveAble(int rockIndex, RockLocation_t* currentLocatePtr, int f_direction)1
**比较当前位置的坐标(左上角)开始,能否放下rockIndex的方块。
注:f_direction为”↑”的话,则传入的rockIndex为下一个方块**
如果不能移动的话,给游戏game_board设置标记表示该位置被占有
//全局变量-游戏板的状态描述(即表示当前界面哪些位置有方块) //0表示没有,1表示有(多加了两行和两列,形成一个围墙,便于判断方块是否能够移动) int game_board[yROCK_SQUARE_NUM + 2][xROCK_SQUARE_NUM + 2] = { 0 };123
实现过程遇到的一些问题
(1)在快速下落的时候,可能方块会掉出围墙的范围内,
快速下落是使方块每次下落2个单位距离。
在判断不能下落时,使当前坐标的top即y减去一个单位的距离
(2)遇到多行满行时消除不了,
在判断满行时,循环找出满行,找出一个满行,就消除一行,然后继续判断是否满行,直到遇到空行
‘柒’ 老式游戏机俄罗斯方块怎么玩
老式游戏机的俄罗斯方块操作比较简单,左边按键控制方向,右边控制变形,前几关速度比较慢,很简单,后期速度太快,玩十件套太长容易精力不集中。
‘捌’ 俄罗斯方块的起源
俄罗斯方块的起源 1985年左右,年仅16岁的天才高中生伯丁,将俄罗斯科学研究院电脑中心研究员帕吉特诺夫和帕夫洛斯基在Electronica 60上编写的一种传统的游戏程序改写成了PC版本。 最终经过各种改良,俄罗斯方块的第一个PC版本诞生了,他们给这个游戏取了一个源于希腊文字的名字“四”(tetra)——Tetris,即现在的“俄罗斯方块”。 这种将不断掉落的各种形状的方块摆满一行将之消除的游戏,不仅风靡了当时的俄罗斯, 甚至到现在依然以其不退的热度席卷着全球。众多游戏开发者也纷纷效仿制作出了各种新版本, 因此也使“俄罗斯方块”这款老少咸宜的游戏变得越来越趣味横生。俄罗斯人发明的,所以得名 ======================== 无可争议,《俄罗斯方块》是有史以来最伟大的游戏之一。然而,还有一个很强的理由让我们去掉“之一”这两个字,使它成为唯一的“最伟大的游戏”。请这样想:有哪个当代的电子游戏或电脑游戏能与它相提并论?比如说,能被100年后的人们继续拿来玩? 没有,除了《俄罗斯方块》外一个也没有。它是永恒的娱乐经典,但它实际上又和那些传统的经典娱乐方式不同,因为它的本质是电子化的,所以它的确属于现代产物。比如,《俄罗斯方块》与象棋就不同,你不能以任何实体形式去玩俄罗斯方块。的确,在许多年里,《俄罗斯方块》以无数形式经过了大量变形和更改,但游戏核心依然保持不变。这些游戏的核心能够提供吸引人亲自动手实践的挑战。 《俄罗斯方块》的起源实际上要追溯到八十年代中期,尽管它的人气一直到几年后才开始显露出来。游戏的概念十分简单,如今已经成为一种公认的规则:屏幕顶部以随机顺序落下形状各异的碎块,你要试图用它们拼成没有空隙的行列。你没法打赢《俄罗斯方块》,因为你坚持得时间越长,游戏速度也就变得越来越快,而游戏的吸引力就在于使你顶住碎块的进攻,支撑的时间比上一次更长。《俄罗斯方块》举世闻名的游戏性,在该游戏新鲜出炉时就显得非常直观。某些与坠落的玩具碎片和它们的形状有关的东西,使得哪怕新手也会很自然地企图把它们排列起来,并加以适当组合,就好似《俄罗斯方块》触动了我们某些内在的感官,使得哪怕是我们当中最杂乱无章的人也要把事情整理妥当。 这个具有定义性和广泛影响的益智游戏激发了整整一种风格的作品,特别是后来数年间发源于日本的某些优秀的益智游戏,它们全都在《俄罗斯方块》的基础上作了自己独特的改动。然而,虽然这些游戏看上去各有千秋,但它们与《俄罗斯方块》的内在相似性却无可否认。 在曾经发布过的所有游戏中,《俄罗斯方块》还被认为是仅有的一个能够真正吸引广泛人群的作品。绝大多数人都能说出,自己有某些对游戏毫无兴趣的亲朋好友,却令人难以置信地痴迷于《俄罗斯方块》。谁能说清楚,迄今为止人们究竟花了多少万个小时在这个游戏上?也许这些时间本来可以被花在更具生产力的活动上。某些批评家也许会声称,《俄罗斯方块》要比过去二十年间出现的任何东西都要浪费人们的时间。至于我们,则要欣然提名它为GameSpot评选出的历史上最伟大游戏之一。 很容易到手 《俄罗斯方块》由莫斯科科学学院程序员Alexei Pajitnov所设计。显然,人们一开始并没预料到它将会有如此广泛的吸引力。实际上,在游戏发明后的数年间,《俄罗斯方块》成了无数场专利官司和法律纠纷的目标,而许多公司也不遗余力地上阵厮杀,想要将游戏的创意据为己有。一个最初的版本是Spectrum Holobyte为IBM兼容机开发的游戏。1988年,《俄罗斯方块》在街机上也变得非常流行,这都要归功于Atari,因为他们发布了一个能让两名玩家同时游戏的版本。 还是在1988年,Tengen为任天堂娱乐系统发布了《俄罗斯方块》的一个优秀版本,但它很快便从货架上撤掉了,因为任天堂指控该公司侵犯版权。后来,任天堂把那个版本的《俄罗斯方块》换成了自己的版本,可是新版本却缺乏Tengen版的双人对打模式和出色的音乐。到了1989年,任天堂着手将一个移动版本的《俄罗斯方块》与当时崭新的GBA系统捆绑出售。GBA后来成为有史以来销售成绩最佳的游戏系统,对此,《俄罗斯方块》作出了不小的贡献。 如今你可以在从Xbox到计算器的任何平台上玩到《俄罗斯方块》。Tetrinet2.com这个网站有个优秀的PC平台免费在线版本,支持多人对打。
‘玖’ 俄罗斯方块游戏有哪些类(不是类型)
OK
‘拾’ 俄罗斯方块属于哪种类型的游戏
是一款风靡全球的电视游戏机和掌上游戏机游戏,它由俄罗斯人阿列克谢·帕基特诺夫发明,故得此名。俄罗斯方块的基本规则是移动、旋转和摆放游戏自动输出的各种方块,使之排列成完整的一行或多行并且消除得分。由于上手简单、老少皆宜,从而家喻户晓,风靡世界。