怎样用C++在控制台中编写俄罗斯方块.doc

上传人:鲁** 文档编号:545127456 上传时间:2023-02-05 格式:DOC 页数:15 大小:82.51KB
返回 下载 相关 举报
怎样用C++在控制台中编写俄罗斯方块.doc_第1页
第1页 / 共15页
怎样用C++在控制台中编写俄罗斯方块.doc_第2页
第2页 / 共15页
怎样用C++在控制台中编写俄罗斯方块.doc_第3页
第3页 / 共15页
怎样用C++在控制台中编写俄罗斯方块.doc_第4页
第4页 / 共15页
怎样用C++在控制台中编写俄罗斯方块.doc_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《怎样用C++在控制台中编写俄罗斯方块.doc》由会员分享,可在线阅读,更多相关《怎样用C++在控制台中编写俄罗斯方块.doc(15页珍藏版)》请在金锄头文库上搜索。

1、怎样用C+在控制台中编写俄罗斯方块 收藏 我都没有在CSDN上写过东西,也不知道也什么好,下面就来讲诉一下我编的一个游戏吧。这是一人每个人小时候都玩过的游戏,也就是俄罗斯方块。我个人觉得俄罗斯方块这个游戏用MFC来编比较简单,而且我也编了一个MFC版的俄罗斯方块,但在此我不想讲诉怎样用MFC来编写俄罗斯方块,因为那太简单了,而且很多人也做过同样的事情,我想介绍的是怎样在控制台中编写这个游戏,而且等我讲诉完后,你会发现原来俄罗斯方块也可以这样编,同时你来可以学习到不少底层的API函数,这对初学C+的人来说是一个很好的提高。我一再试图把程序写得短一些,但还是有496行,需要你的一点点耐心,以下我先

2、给出源代码:#include #include #include #include using namespace std;/-/ 重要数据定义typedef struct m_point /控制台中的坐标点定义, 其中0=x=24, 0=y79 int x; int y;m_point;typedef struct block /方块定义, 一个方块有四个点, 例如: m_point opt; m_point pt2; m_point pt3; m_point pt4;block;block bloary64; /方块数组,一共有6种,每种有4个方向bool scrop1510; /游戏空间

3、定义,初始值全标记为0,向屏幕打印蓝色方块, /如果标记为1,则向屏幕找印深蓝色方块/ 数据定义完毕/-/ 功能函数声明void begin(); /开始函数void color(int n_color); /设置字符颜色int getrand(int max); /获得不大于max的随机数void go(int x, int y); /使光移动到指定位置void show_unit(); /输出 字符char getudlr(); /接受键盘上的上下左右及回车键并返回相应字符 u d l r kvoid show_block(block b); /输出方块void init(); /初始化b

4、lock bloary64数组void show_scrop(); /根据scrop1510的值打印相应颜色的方块bool isexist(block b); /判断当前方块中的四个坐标是否在游戏空间中被标记为 1void markspace(block b); /当方块停留时,把方块四个点的坐标在游戏空间数组scrop中的相应位置标记为1void move_block(block &b, char ch, int &lark); /移动方块void change_block(block &b, int i, int &j, int lark); /改变当前方块的方向,注:一共有四个方向voi

5、d check(int &score); /消行函数void wait(float secs); /让程序等待secs秒void othergetch(); /起暂停功能void out(char* chars, int n); /相当于C+中的cout功能void initb(int optx, int opty, /容易看出这个函数中传递了8个int值,分别用于这四点的横坐标和纵坐标, /另外bloc是一个block结构体,block结构体中含有8个int值来表示方块的4个点 int pt2x, int pt2y, int pt3x, int pt3y, int pt4x, int pt4

6、y, block &bloc);/ 功能函数声明完毕int main() begin(); return 0;/ 以下是功能函数定义部分void begin() system(color ec); system(title 俄罗斯方块); color(0xec); go(33,2); out(制作人:ckh2007,15); go(33,3); out(游戏规则:,10); go(33,4); out(1.按左右下键进行移动,20); go(33,5); out(2.按向上键改变形状,18); go(33,6); out(3.按回车重新开始,12); init();lapp: for(int

7、i=0; i15; i+) for(int j=0; j10; j+) scropij=0; int score = 0; while(1) block b; int lark=1; /lark变量很重要,用于标记俄罗斯方块是否停下 int i=getrand(6); int j=getrand(4); go(20,21); b = bloaryij; show_scrop(); show_block(b); if(isexist(b) system(cls); go(37,12); out(失败,结束!,10); othergetch(); exit(-1); while(lark!=0)

8、show_scrop(); show_block(b); char ch=getudlr(); go(18,21); if(ch!=u) move_block(b, ch, lark); if(ch=u) change_block(b, i, j, lark); if(ch=k) goto lapp; if(lark=0) markspace(b); check(score); / 函数作用:初始化bloary64数组,这个数组表示16个方块的结构体,具体是,/ 一共有6种方块,每种方块又有4种不同的方向(也就是种不同的形状)/ 其中initb函数将在下面定义void init() / /*/

9、 initb(2, 1, 0, 0, 2, 0, 0, 1, bloary00); / /*/ initb(2, 1, 0, 0, 2, 0, 0, 1, bloary01); / /*/ initb(2, 1, 0, 0, 2, 0, 0, 1, bloary02); / /*/ initb(2, 1, 0, 0, 2, 0, 0, 1, bloary03); / /*/ initb(2, 1, 0, 1, 4, 1, 6, 1, bloary10); / /*/ initb(2, 1, 2, 0, 2, 2, 2, 3, bloary11); / /*/ initb(2, 1, 0, 1,

10、 4, 1, 6, 1, bloary12); / /*/ initb(2, 1, 2, 0, 2, 2, 2, 3, bloary13); / /*/ initb(2, 1, 0, 0, 0, 1, 4, 1, bloary20); / /*/ initb(2, 1, 2, 0, 4, 0, 2, 2, bloary21); / /*/ initb(2, 1, 0, 1, 4, 1, 4, 2, bloary22); / /*/ initb(2, 1, 2, 0, 0, 2, 2, 2, bloary23); / /*/ initb(2, 1, 4, 0, 0, 1, 4, 1, bloar

11、y30); / /*/ initb(2, 1, 2, 0, 2, 2, 4, 2, bloary31); / /*/ initb(2, 1, 0, 1, 4, 1, 0, 2, bloary32); / /*/ initb(2, 1, 0, 0, 2, 0, 2, 2, bloary33); / /*/ initb(2, 1, 2, 0, 0, 1, 4, 1, bloary40); / /*/ initb(2, 1, 2, 0, 4, 1, 2, 2, bloary41); / /*/ initb(2, 1, 0, 1, 4, 1, 2, 2, bloary42); / /*/ initb(

12、2, 1, 2, 0, 0, 1, 2, 2, bloary43); / /*/ initb(2, 1, 2, 0, 4, 0, 0, 1, bloary50); / /*/ initb(2, 1, 2, 0, 4, 1, 4, 2, bloary51); / /*/ initb(2, 1, 2, 0, 4, 0, 0, 1, bloary52); / /*/ initb(2, 1, 2, 0, 4, 1, 4, 2, bloary53); / / 函数作用:初始化方块,一个方块具有四个坐标,如 / 容易看出这个函数中传递了8个int值,分别用于这四点的横坐标和纵坐标,/ 另外bloc是一个block结构体,block结构体中含有8个int值来表示方块的4个点void initb(int optx, int opty, int pt2x, int pt2y, int pt3x, int pt3y, int pt4x,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号