go语言写俄罗斯方块 俄罗斯方块代码c语言

俄罗斯方块的源代码?

#include graphics.h

创新互联公司服务项目包括涪城网站建设、涪城网站制作、涪城网页制作以及涪城网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,涪城网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到涪城省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!

#include stdio.h

#include dos.h

#include conio.h

#include time.h

#include math.h

#include stdlib.h

void draw_block(int x,int y,int style,int way);

void kill_line(int y);

void draw_little_block(int x,int y,int z,int style);

int check_block(int x,int y,int style);

int change(int *i,int *j,int key);

int style1,style,score,speed,l;

int board[10][20];

char str[100];

struct shape

{

int xy[8],next;

};

struct shape shapes[19]= /* 19种方块(前

8个点表示4个小方块的相对位置 第9点表示类型) */

{

{

0,-2, 0,-1, 0, 0, 1, 0, 1

},

{-1, 0, 0, 0, 1,-1, 1, 0, 2},

{ 0,-2, 1,-2, 1,-1, 1, 0, 3},

{-1,-1,-1, 0, 0,-1, 1,-1, 0},

{ 0,-2, 0,-1, 0, 0, 1,-2, 5},

{-1,-1, 0,-1, 1,-1, 1, 0, 6},

{ 0, 0, 1,-2, 1,-1, 1, 0, 7},

{-1,-1,-1, 0, 0, 0, 1, 0, 4},

{-1, 0, 0,-1, 0, 0, 1, 0, 9},

{ 0,-2, 0,-1, 0, 0, 1,-1,10},

{-1,-1, 0,-1, 1,-1, 0, 0,11},

{ 0,-1, 1,-2, 1,-1, 1, 0, 8},

{-1, 0, 0,-1, 0, 0, 1,-1,13},

{ 0,-2, 0,-1, 1,-1, 1, 0,12},

{-1,-1, 0,-1, 0, 0, 1, 0,15},

{ 0,-1, 0, 0, 1,-2, 1,-1,14},

{ 0,-3, 0,-2, 0,-1, 0, 0,17},

{-1, 0, 0, 0, 1, 0, 2, 0,16},

{ 0,-1, 0, 0, 1,-1, 1, 0,18}

};

#define MAPXOFT 9 /* 第1个方块的位置 */

#define MAPYOFT 5

#define MAPXOFT1 18 /* 下一个方块的位置 */

#define MAPYOFT1 17

#define LEFT 0x4b00

#define RIGHT 0x4d00

#define DOWN 0x5000

#define UP 0x4800

#define ESC 0x011b

#define ENTER 0x1c0d

int main()

{

int gdriver,gmode,

i,j,key,x0=5,y0=1,m,n,c,key1,p,q,le=0,b;

l=1,score=0;

gdriver=DETECT;

initgraph(gdriver,gmode,"D:\\TURBOC2");

randomize();

for(m=0;m=19;m++)

for(n=0;n=19;n++)

board[m][n]=0; /* 初始游戏版 */

setcolor(10); /* 开机的画面 */

settextstyle(0,0,3);

outtextxy(10,150,"WELCOME TO RUSSIS");

outtextxy(10,250,"READY GO");

setcolor(14);

settextstyle

(0,0,4);

outtextxy(10,350,"^_^");

/*

circle(400,350,60);

ellipse(370,340,60,120,25,25);

ellipse(430,340,60,120,25,25);

ellipse(400,350,225,315,30,30);*/

getch();

settextstyle(0,0,1);

cleardevice();

setcolor(LIGHTRED); /* 画出游戏所在的范围图

*/

setlinestyle(0,0,3);

setfillstyle(1,14);

rectangle(157,419,533,429);

floodfill(300,424,LIGHTRED);

setcolor(LIGHTRED);

setlinestyle(0,0,3);

setfillstyle(1,14);

rectangle(147,95,157,429);

floodfill(152,200,LIGHTRED);

setcolor(LIGHTRED);

setlinestyle(0,0,3);

setfillstyle(1,14);

rectangle(323,95,333,429);

floodfill(330,320,LIGHTRED);

setcolor(LIGHTRED);

setlinestyle(0,0,1);

setfillstyle(1,BLUE);

rectangle(450,50,500,70);

floodfill(455,55,LIGHTRED);

setcolor(10);

for(m=0;m=10;m=m+2)

ellipse(240,94,0,180,84+m,84+m);

setcolor(14);

setfillstyle(1,0);

circle(440,330,60);

floodfill(440,330,14);

outtextxy(420,80,"* you can change the game");

/* 对游戏的说明 */

outtextxy(440,90,"-speed and the gradth by"); /*

上为变形 左右 为 调整

下为快下 ESC为退出 */

outtextxy(440,100," using 'up'and'down'.");

outtextxy(420,110,"* when you are plying the");

outtextxy(440,120,"game,you can use these pu");

outtextxy(440,130,"-tturns.");

outtextxy(420,140,"* if you want to go into t");

outtextxy(440,150,"-he game,please 'enter'.");

outtextxy(420,160,"* you can chang shapes ");

outtextxy(440,170," using UP");

outtextxy(420,180,"* RIGHT and LEFT can" );

outtextxy(440,190," move shapes");

outtextxy(10,40,"GAMESPEED:");

outtextxy(10,100,"GRADTH:");

printf("\n\n\n 1");

printf("\n\n\n\n 0");

/* setcolor(LIGHTRED);

setlinestyle(0,0,1);

setfillstyle(1,10);

rectangle(10,65,110,85);

floodfill(15,75,LIGHTRED); */

outtextxy(450,40,"SCORES:");

outtextxy(10,190,"**The speed will");

outtextxy(10,200,"increas if score");

outtextxy(10,210,"increas 3");

for(p=0;p=100;p++) /* 对速度的调整 */

{ key=bioskey(0);

if(key==ENTER)

break;

if(key==UP)

{

if(l==9)

l=9;

if(l9)

l++;

}

if(key==DOWN)

{

if(l==1)

l=l;

if(l1)

l--;

}

gotoxy(2,4);

printf("%d",l);

}

for(q=0;q=100;q++) /* 对高度的调整 */

{

key=bioskey(0);

if(key==ENTER)

break;

if(key==UP)

{

if(le==5)

le=le;

if(le5)

le++;

}

if(key==DOWN)

{

if(le==0)

le=le;

if(le0)

le--;

}

gotoxy(2,8);

printf("%d",le);

}

key=bioskey(0);

if(key==ENTER)

{

style=random(19);

for(m=1;m=le;m++) /* 具体的对高度的调整 */

{

b=random(7)+1;

for(n=1;n=10;n++)

{

if(random(2))

{

board[n-1][20-m]=1;

draw_little_block(MAPXOFT+n,MAPYOFT+21-m,1,b);

}

}

}

while(1)

{

while(1)

{

i=x0,j=y0;

style1=random(19);

setcolor(14); /* 画出下一个方

块 */

draw_block(MAPXOFT1,MAPYOFT1,style1,1);

for(j=y0;j=20;j++)

{

while(1)

{

if(bioskey(1)) /* 方块的

调整 */

{

key=bioskey(0);

change(i,j,key);

}

if(!check_block

(i,j+1,style)) /* 判断方块能不能下降 */

break;

if(j==20)

break;

if(speed==1)

{

draw_block

(i,j,style,0); /* 方块的下降 */

j++;

draw_block

(i,j,style,1);

delay(10000);

}

if(speed!=1)

{

m++;

delay

(10000);

if(m=3*(10-l))

{

m=0;

draw_block

(i,j,style,0); /* 方块的下降 */

j++;

draw_block

(i,j,style,1);

}

}

}

speed=0;

for(m=0;m=6;m+=2) /* 对有方块的位置给予1

的数值 */

board[i+shapes[style].xy[m]-1]

[j+shapes[style].xy[m+1]-1]=1;

if(board[ i][4]==1)

{

setcolor(14);

settextstyle(0,0,2);

outtextxy(10,450,"CAREFUL -_-");

delay(100000000);

delay(100000000);

setcolor(0);

outtextxy(10,450,"CAREFUL -_-");

settextstyle(0,0,1);

setcolor(LIGHTRED);

}

/* setcolor(LIGHTRED);

setlinestyle(0,0,1);

setfillstyle(1,10);

rectangle(10,65,110,85);

floodfill(15,75,LIGHTRED);*/

if(l==1) /* 显示当前游戏等级 */

{

setcolor(LIGHTRED);

setlinestyle(0,0,1); /* 容易的速度 */

setfillstyle(1,10);

rectangle(10,65,110,85);

floodfill(15,75,LIGHTRED);

outtextxy(7,70," easy speed");

}

if(l==4)

{

setcolor(BLACK);

outtextxy(7,70," easy speed");

setcolor(LIGHTRED); /* 中等难度 */

setlinestyle(0,0,1);

setfillstyle(1,10);

rectangle(10,65,110,85);

floodfill(15,75,LIGHTRED);

outtextxy(7,70," normal speed");

}

if(l==7)

{

setcolor(BLACK);

outtextxy(7,70," normal speed");

setcolor(LIGHTRED);

setlinestyle(0,0,1); /* 困难的难度 */

setfillstyle(1,10);

rectangle(10,65,110,85);

floodfill(15,75,LIGHTRED);

outtextxy(7,70," hard speed");

}

kill_line(j);

if(j==20)

break;

if(!check_block(i,j+1,style))

break;

}

draw_block(MAPXOFT1,MAPYOFT1,style1,0);

/* 对下1个方块显示位置进行覆盖 */

style=style1; /* 使的方块和显示的方块一样

*/

if(j==1) /* 关机的画面 */

{

setcolor(14);

settextstyle(0,0,2);

outtextxy(170,200,"GAME OVER");

outtextxy(170,240,"THANK YOU");

sleep(3);

exit(0);

}

}

}

}

getch();

}

int change(int *i,int *j,int key) /* 方块的具体的变化(

移动 变形 下降) */

{

if(key==UPcheck_block(*i,*j,shapes[style].next)) /*

变形 */

{

draw_block(*i,*j,style,0);

style=shapes[style].next;

draw_block(*i,*j,style,1);

}

else if(key==LEFTcheck_block(*i-1,*j,style)) /* 移动

*/

{

draw_block(*i,*j,style,0);

(*i)--;

draw_block(*i,*j,style,1);

}

else if(key==RIGHTcheck_block(*i+1,*j,style))

{

draw_block(*i,*j,style,0);

(*i)++;

draw_block(*i,*j,style,1);

}

else if(key==DOWNcheck_block(*i,*j+1,style)) /* 下降

*/

{

draw_block(*i,*j,style,0);

(*j)++;

draw_block(*i,*j,style,1);

speed=1;

}

else if(key==ESC) /* 退出 */

exit(0);

}

void draw_block(int x,int y,int style,int way) /* 画出方块

的位置 */

{

int x1=x+MAPXOFT,y1=y+MAPYOFT;

int i;

if(way==1)

{

setcolor(WHITE);

}

else

{

setcolor(BLACK);

}

for(i=0;i=6;i+=2)

{

draw_little_block(x1+shapes[style].xy[

i],y1+shapes[style].xy[i+1],way,style);

}

}

void draw_little_block(int x,int y,int z,int style) /* 画

出方块的每一个小方块的形状(方块的色彩) */

{ int m,n;

if(z==1) /* 对色彩的调整 */

{

if(0=stylestyle=3)

n=2;

if(4=stylestyle=7)

n=3;

if(8=stylestyle=11)

n=4;

if(12=stylestyle=13)

n=5;

if(14=stylestyle=15)

n=6;

if(16=stylestyle=17)

n=7;

if(style==18)

n=8;

m=1;

}

if(z==0)

{

m=0,n=0;

}

setcolor(m);

setfillstyle(1,n);

rectangle(x*16,y*16,x*16+16,y*16+16);

floodfill(x*16+2,y*16+2,m);

}

void kill_line(int y) /* 消行 */

{

int i,t=1,j,k,color=random(7)+1;

for(;y=1t=4;y--,t++) /* 对4行进行验证 */

{

for(i=1;i=10;i++)

if(!board[i-1][y-1]) /* 严整1行的数组是不是全

为1 */

break;

if(i==11)

{

setcolor(LIGHTRED); /* 对积分底色的画法

*/

setlinestyle(0,0,1);

setfillstyle(1,BLUE);

rectangle(450,50,500,70);

floodfill(455,55,LIGHTRED);

score++; /* 每消去1行 可以得1分 */

setcolor(14);

itoa(score,str,10);

outtextxy(460,55,str);

if(score!=0score%3==0)

l++; /* 每次分到一定位置是 速度进

行提高(目前是3行加1次 可以调整) */

setcolor(14); /* 每次消去是进行庆祝模式 */

settextstyle(0,0,4);

outtextxy(10,310,"COOL");

outtextxy(10,270,"^_^");

delay(100000000);

delay(100000000);

delay(100000000);

setcolor(BLACK);

settextstyle(0,0,4);

outtextxy(10,310,"COOL");

outtextxy(10,270,"^_^");

settextstyle(0,0,1);

if(score%3==0score!=0)

{

setcolor(14);

settextstyle(0,0,2);

outtextxy(10,435,"CONGRATULATION ON YOU ^_^");

sleep(2);

setcolor(BLACK);

settextstyle(0,0,2);

outtextxy(10,435,"CONGRATULATION ON YOU ^_^ ");

settextstyle(0,0,1);

}

for(k=1;k=10;k++) /* 对满了行进行消去

*/

{

setcolor(BLACK);

draw_little_block

(k+MAPXOFT,y+MAPYOFT,0,2);

}

for(j=y-1;j=1;j--) /* 消去1行后 用上面的

累下来(并且调整色彩) */

for(k=1;k=10;k++)

{

board[k-1][j]=board[k-1][j-1];

if(board[k-1][j])

{

setcolor(BLACK);

draw_little_block

(k+MAPXOFT,j+MAPYOFT,0,2);

setcolor(WHITE);

draw_little_block

(k+MAPXOFT,j+1+MAPYOFT,1,color);

}

}

delay(100000000000);

y++;

}

}

}

int check_block(int x,int y,int style) /* 验证能不能往下1

个位置累方块 */

{

int x1=x+MAPXOFT,y1=y+MAPYOFT;

int x2,y2,i;

for(i=0;i=6;i+=2)

{

x2=x1+shapes[style].xy[ i];

y2=y1+shapes[style].xy[i+1];

if(x2=10x220y226(y26||board[x2-10][y2-

6]==0))

continue;

else

break;

}

if(i==8)

return 1;

else

return 0;

getch();

}

我这里也是别人那里看来的。希望对你有用

golang游戏开发怎么样

Golang游戏开发是一个非常开放的领域,它可以使用Go语言来开发游戏,让开发者利用Go语言的优势快速开发游戏。Go语言拥有简单、可拓展、高效的特点,可以有效地满足游戏开发需求。

Go语言提供了一套完整的工具链,包括编译器、调试器和测试框架,为开发者提供了强大的开发支持。此外,Go语言还拥有丰富的标准库,能够帮助开发者编写游戏的核心逻辑,提高开发效率。

Go语言还可以使用第三方框架,比如GoLang Game Engine(GLE),可以帮助开发者快速开发2D游戏和3D游戏。GLE可以让开发者简单地搭建游戏环境,提供各种游戏开发工具,大大提高了游戏开发效率。

总的来说,Golang游戏开发是一个非常有前景的领域,它拥有强大的开发工具和丰富的库,为开发者提供了极大的便利性。开发者可以利用Go语言的优势快速开发高质量的游戏,更好地满足游戏玩家的需求。

跪求 汇编语言课程设计 俄罗斯方块 要求是16位的。 求神人相助。。。。。。

DATA SEGMENT ;成功,实现计时器功能

MIN1 DB 30H

MIN2 DB 30H

SEC1 DB 30H

SEC2 DB 30H

TIME DB ?

DATA ENDS

STACK SEGMENT

STACKA DB 100H DUP(?)

STACK ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,SS:STACK

START:MOV AX,DATA

MOV DS,AX

MOV AH,00H

MOV AL,00H

INT 10H

MOV AH,01H

INT 21H

CMP AL,20H

JE EXIT

MAIN PROC NEAR

MOV AX,DATA

MOV DS,AX

CALL SHOWTIME

RET

MAIN ENDP

EXIT:MOV AH,4CH

INT 21H

SHOWTIME PROC NEAR

MOV AX,DATA

MOV DS,AX

MOV AH,2

MOV DH,5

MOV DL,15

INT 10H

MOV DL,MIN1

MOV AH,02H

INT 21H

MOV DL,MIN2

MOV AH,02H

INT 21H

MOV DL,3AH

MOV AH,02H

INT 21H

MOV DL,SEC1

MOV AH,02H

INT 21H

MOV DL,SEC2

MOV AH,02H

INT 21H

;TOSTRAT:

MOV AH,2CH

INT 21H

MOV TIME,DH

GOTEST1SECOND:

MOV AH,2CH

INT 21H

CMP DH,TIME

JNE L1

JMP GOTEST1SECOND

L1:INC SEC2

MOV AL,SEC2

CMP AL,3AH

JE L2

JMP MAIN

L2:MOV AL,30H

MOV SEC2,AL

INC SEC1

CMP SEC1,36H

JE L3

JMP MAIN

L3:MOV AL,30H

MOV SEC1,AL

INC MIN2

CMP MIN2,3AH

JE L4

JMP MAIN

L4:MOV AL,30H

MOV MIN2,AL

INC MIN1

CMP MIN1,36H

JE L5

JMP MAIN

L5:MOV AL,0

MOV SEC2,AL

MOV SEC1,AL

MOV MIN2,AL

MOV MIN1,AL

CALL MAIN

RET

SHOWTIME ENDP

CODE ENDS

END START ;END MAIN

这个吗?


分享标题:go语言写俄罗斯方块 俄罗斯方块代码c语言
分享URL:http://csdahua.cn/article/ddgpdjh.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流