C语言 Linux版俄罗斯方块,C语言版——俄罗斯方块(一)

——使用软件VC6.0(需要一个函数库——Easy_X)

#include

#include

#include

#include

#include

#include

#include

#include

#pragma comment (lib,"winmm.lib")

#define B1_x 0// 游戏矩形左边值#define B2_x 360//游戏矩形右边值#define B1_y 120//上边值#define B2_y 480

#define V_box 20//每个小方块边长#define H_box 20

#define M 18//一共有18个小方块#define N 18

#define left 1

#define right 2

#define down 3

#define up 4

#define space 5

#define F 0

#define T 1

struct MAX_BOX

{

int var;//填充值!

int color;}min_box[M][N];int R_top_x;//小游戏方块的最右边值

int R_top_y;

int bottom_y;//zuixiazhiint bottom_x;

int L_bottom_x;

int score=0;

int speed=0;

int n=1;

int full_row=0;

int flag_newbox=0;

int speed_step=30;

int sleeptime=1000;

#define MAX_BOX 19struct SHAPE{char box[2];

int color;

int next;

}shapes[MAX_BOX]=

{{0x88,0xc0,RED,1},

{0x8e,0x0,RED,2},

{0xc4,0x40,RED,3},

{0x2e,0x0,RED,0},//*******************{0x44,0xc0,MAGENTA,5},{0x8e,0x0,MAGENTA,6},{0xc8,0x80,MAGENTA,7},{0xe2,0x0,MAGENTA,4},//++++++++++++++++++++{0x8c,0x40,WHITE,9},{0x6c,0x0,WHITE,8},//*******************{0x4c,0x80,YELLOW,11},{0xc6,0x0,YELLOW,10},//____________________

{0x4e,0x0,BLUE,15},

{0x8c,0x80,BLUE,14},

{0xe4,0x0,BLUE,13},

{0x4c,0x40,BLUE,12},//&&&&&&&&&&&&&&&&&&&&&&{0x88,0x88,RED,17},

{0xf0,0x0,RED,16},//***********************{0xcc,0x0,MAGENTA,18},};

void interface_one()//第一幅画面

{

initgraph(640,480);

setbkcolor(BLACK);// 设置背景色为黑色cleardevice();// 用背景色清空屏幕settextcolor(RED);

settextstyle(50,0,_T("楷体"));

RECT r={0,0,640,480};//drawtext(_T("俄罗斯方块游戏"),&r,DT_CENTER|DT_VCENTER|DT_SINGLELINE);

getch();

closegraph();}

void interface_game()//游戏运行画面!

{

int i,j;

int x1=B1_x;

int y1=B1_y;

int x2=B2_x;

int y2=B2_y;

initgraph(640,480);

setbkcolor(BLACK);

cleardevice();

setlinecolor(RED);

line(0,30,640,30);

settextcolor(RED);

settextstyle(16,0,_T("楷体"));

RECT r={0,0,640,30};

drawtext(_T("欢迎来到俄罗斯方块游戏"),&r,DT_CENTER|DT_SINGLELINE|DT_VCENTER);

setlinecolor(RED);

for(i=0;i

{

for(j=0;j

{

min_box[i][j].var=0;

min_box[i][j].color=BLACK;line(x1,y1,x1+H_box,y1);line(x1,y1+V_box,x1+H_box,y1+H_box);line(x1,y1,x1,y1+V_box);line(x1+H_box,y1,x1+H_box,y1+V_box);x1=x1+H_box;}x1=B1_x;y1=y1+H_box;

}

}

int born_box()//随机生成方块!

{

int box_numb;srand(time(NULL));box_numb=(rand()%19);

return(box_numb);

}

int randomize()//初始化X的坐标!

{

int B_x;

srand(time(NULL));

B_x=(rand()%15)*20;return(B_x);

}

void show_score(int s)

{

char S[5];

setcolor(RED);

setfillcolor(RED);rectangle(480,120,640,180);

floodfill(501,121,RED);

RECT r={480,120,640,180};settextcolor(RED);settextstyle(25,0,_T("宋体"));

drawtext(_T("当前得分"),&r,DT_CENTER|DT_SINGLELINE|DT_VCENTER);

sprintf(S,"%d",s);

outtextxy(560,200,S);//指定位置输出字符串}

void show_level(int k)

{

char L[5];

setcolor(RED);

setfillcolor(RED);rectangle(480,240,640,300);

floodfill(501,241,RED);

settextcolor(RED);

RECT r={480,240,640,300};settextstyle(25,0,_T("宋体"));drawtext(_T("当前等级"),&r,DT_CENTER|DT_SINGLELINE|DT_VCENTER);

sprintf(L,"%d",k);

outtextxy(560,320,L);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CSDN IT狂飙上传的代码均可运行,功能ok的情况下才上传的,直接替换数据即可使用,小白也能轻松上手 【资源说明】 基于MATLAB实现的有限差分法实验报告用MATLAB中的有限差分法计算槽内电位;对比解析法和数值法的异同点;选取一点,绘制收敛曲线;总的三维电位图+使用说明文档 1、代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行本 Matlab 2020b;若运行有误,根据提示GPT修改;若不会,私信博主(问题描述要详细); 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可后台私信博主; 4.1 期刊或参考文献复现 4.2 Matlab程序定制 4.3 科研合作 功率谱估计: 故障诊断分析: 雷达通信:雷达LFM、MIMO、成像、定位、干扰、检测、信号分析、脉冲压缩 滤波估计:SOC估计 目标定位:WSN定位、滤波跟踪、目标定位 生物电信号:肌电信号EMG、脑电信号EEG、心电信号ECG 通信系统:DOA估计、编码译码、变分模态分解、管道泄漏、滤波器、数字信号处理+传输+分析+去噪、数字信号调制、误码率、信号估计、DTMF、信号检测识别融合、LEACH协议、信号检测、水声通信 5、欢迎下载,沟通交流,互相学习,共同进步!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值