关于俄罗斯方块的问题
我是学生,正在学习中,下面是自己写的俄罗斯方块程序,还没完整,遇到了些问题。里面的下,左,右,往下了 就只能往下,往右了就只能往右。问问怎么实现往右了还可以随意向下or向左。谢谢大家指点啊。下面是程序。很拙劣。。。
#include<stdlib.h>
#include<stdio.h>
#include<graphics.h>
#include<bios.h>
#include<conio.h>
#define LEFT 0x4b00
#define RIGHT 0x4d00
#define DOWN 0x5000
#define UP 0x4800
#define Esc 0x011b
#define SPACE 0x3920
main()
{
int x,y,m,n;
int key;
int i=0;
int r=0;
int a,b,c,d,e,f,g,h;
a=120;
b=100;
c=130;
d=140;
x=0;y=0;
initgraph(&x,&y,"");
setcolor(15);
setbkcolor(8);
for(m=100;m<=400;m=m+10)
for(n=100;n<=200;n=n+10)
{line(n,m,200,m);
line(n,m,n,400);
}
setcolor(15);
setfillstyle(1,12);
bar(a,b,c,d);
key=bioskey(0);
for(i;i<26;i++)
{
switch(key)
{ case DOWN:
b=b+10;
d=d+10;
setcolor(12);
setfillstyle(1,12);
bar(a,b,c,d);
setcolor(15);
setfillstyle(1,0);
bar(a,b-10,c,d-40);
setcolor(15);
setbkcolor(8);
for(m=100;m<=400;m=m+10)
for(n=100;n<=200;n=n+10)
{line(n,m,200,m);
line(n,m,n,400);
}
break;
case RIGHT:
a=a+10;
c=c+10;
setfillstyle(BLUE,LIGHTRED);
bar(a,b,c,d);
setfillstyle(BLUE,BLACK);
bar(a-10,b,c-10,d);
for(m=100;m<=400;m=m+10)
for(n=100;n<=200;n=n+10)
{line(n,m,200,m);
line(n,m,n,400);
case LEFT:
a=a-10;
c=c-10;
setfillstyle(BLUE,LIGHTRED);
bar(a,b,c,d);
setfillstyle(BLUE,BLACK);
bar(a+10,b,c+10,d);
for(m=100;m<=400;m=m+10)
for(n=100;n<=200;n=n+10)
{line(n,m,200,m);
line(n,m,n,400);
}
getch();
break;}}
}