📄 rus1.c
字号:
CurBox.r2.rY = 1 ;
CurBox.r3.rX = 0 ;
CurBox.r3.rY = 1 ;
CurBox.r4.rX = 1 ;
CurBox.r4.rY = 1 ;
break;
case 7:
CurBox.r1.rX = -1;
CurBox.r1.rY = 0 ;
CurBox.r2.rX = 0 ;
CurBox.r2.rY = 0 ;
CurBox.r3.rX = 1 ;
CurBox.r3.rY = 0 ;
CurBox.r4.rX = -1;
CurBox.r4.rY = 1 ;
}
return ;
}
void show_box(void)
{
mvaddch(CurBox.r1.rX + 5 + Old.rX,CurBox.r1.rY + 20 +Old.rY,' ');
mvaddch(CurBox.r2.rX + 5 + Old.rX,CurBox.r2.rY + 20 +Old.rY,' ');
mvaddch(CurBox.r3.rX + 5 + Old.rX,CurBox.r3.rY + 20 +Old.rY,' ');
mvaddch(CurBox.r4.rX + 5 + Old.rX,CurBox.r4.rY + 20 +Old.rY,' ');
mvaddch(CurBox.r1.rX + 5 + Cur.rX,CurBox.r1.rY + 20 +Cur.rY,H_H);
mvaddch(CurBox.r2.rX + 5 + Cur.rX,CurBox.r2.rY + 20 +Cur.rY,H_H);
mvaddch(CurBox.r3.rX + 5 + Cur.rX,CurBox.r3.rY + 20 +Cur.rY,H_H);
mvaddch(CurBox.r4.rX + 5 + Cur.rX,CurBox.r4.rY + 20 +Cur.rY,H_H);
return ;
}
int check_mvnext(int x,int y)
{
if(arr_rbox[CurBox.r1.rX + x][CurBox.r1.rY + y]==1)
return 1;
if(arr_rbox[CurBox.r2.rX + x][CurBox.r2.rY + y]==1)
return 2;
if(arr_rbox[CurBox.r3.rX + x][CurBox.r3.rY + y]==1)
return 3;
if(arr_rbox[CurBox.r4.rX + x][CurBox.r4.rY + y]==1)
return 4;
return 0;
}
void check_line(void)
{
int i;
int j;
//static int k;
int flag = 0;
//char tmp_str[40];
//sprintf(tmp_str,"ck=%d ",k++);
//mvaddstr(18,50,tmp_str);
for(i=1;i<(rbox_w-1);i++)
{
if(arr_rbox[CurBox.r1.rX + Old.rX][i]==0)
{
flag = 1;
}
//sprintf(tmp_str,"%d",arr_rbox[CurBox.r1.rY + Old.rY][i]);
//mvaddstr(4,50+i,tmp_str);
//sprintf(tmp_str,">;>;%d>;>;%d",CurBox.r1.rY + Old.rY,i);
//mvaddstr(10+i,60,tmp_str);
}
if(flag == 0)
{
for(j=(CurBox.r1.rX + Old.rX);j>;1;j--)
for(i=1;i<(rbox_w-1);i++)
arr_rbox[j][i] = arr_rbox[j-1][i];
}
//-----------------------
flag = 0;
for(i=1;i<(rbox_w-1);i++)
if(arr_rbox[CurBox.r2.rX + Old.rX][i]==0)
flag = 1;
if(flag == 0)
{
for(j=(CurBox.r2.rX + Old.rX);j>;1;j--)
for(i=1;i<(rbox_w-1);i++)
arr_rbox[j][i] = arr_rbox[j-1][i];
}
//-----------------------
flag = 0;
for(i=1;i<(rbox_w-1);i++)
if(arr_rbox[CurBox.r3.rX + Old.rX][i]==0)
flag = 1;
if(flag == 0)
{
for(j=(CurBox.r3.rX + Old.rX);j>;1;j--)
for(i=1;i<(rbox_w-1);i++)
arr_rbox[j][i] = arr_rbox[j-1][i];
}
//-----------------------
flag = 0;
for(i=1;i<(rbox_w-1);i++)
if(arr_rbox[CurBox.r4.rX + Old.rX][i]==0)
flag = 1;
if(flag == 0)
{
for(j=(CurBox.r4.rX + Old.rX);j>;1;j--)
for(i=1;i<(rbox_w-1);i++)
arr_rbox[j][i] = arr_rbox[j-1][i];
}
}
void show_all(void)
{
int i;
int j;
for(i=1;i<(rbox_w-1);i++)
for(j=1;j<(rbox_h-1);j++)
if(arr_rbox[j][i]==1)
mvaddch(j+rbox_top,i+rbox_left,H_H);
else
mvaddch(j+rbox_top,i+rbox_left,' ');
}
void turn_rbox(void)
{
switch(shape)
{
case 1:
switch(direction)
{
case 1:
if((arr_rbox[Cur.rX][Cur.rY+1]!=1) &&
(arr_rbox[Cur.rX][Cur.rY-1]!=1) &&
(arr_rbox[Cur.rX][Cur.rY-2]!=1))
{
mvaddch(CurBox.r1.rX + 5 + Cur.rX,CurBox.r1.rY + 20 +Cur.rY,' ');
mvaddch(CurBox.r2.rX + 5 + Cur.rX,CurBox.r2.rY + 20 +Cur.rY,' ');
mvaddch(CurBox.r3.rX + 5 + Cur.rX,CurBox.r3.rY + 20 +Cur.rY,' ');
mvaddch(CurBox.r4.rX + 5 + Cur.rX,CurBox.r4.rY + 20 +Cur.rY,' ');
CurBox.r1.rX = 0;
CurBox.r1.rY = 1;
CurBox.r2.rX = 0;
CurBox.r2.rY = 0;
CurBox.r3.rX = 0;
CurBox.r3.rY = -1;
CurBox.r4.rX = 0;
CurBox.r4.rY = -2;
mvaddch(CurBox.r1.rX + 5 + Cur.rX,CurBox.r1.rY + 20 +Cur.rY,H_H);
mvaddch(CurBox.r2.rX + 5 + Cur.rX,CurBox.r2.rY + 20 +Cur.rY,H_H);
mvaddch(CurBox.r3.rX + 5 + Cur.rX,CurBox.r3.rY + 20 +Cur.rY,H_H);
mvaddch(CurBox.r4.rX + 5 + Cur.rX,CurBox.r4.rY + 20 +Cur.rY,H_H);
direction = 2;
}
break;
case 2:
if((arr_rbox[Cur.rX-1][Cur.rY]!=1) &&
(arr_rbox[Cur.rX+1][Cur.rY]!=1) &&
(arr_rbox[Cur.rX+2][Cur.rY]!=1))
{
mvaddch(CurBox.r1.rX + 5 + Cur.rX,CurBox.r1.rY + 20 +Cur.rY,' ');
mvaddch(CurBox.r2.rX + 5 + Cur.rX,CurBox.r2.rY + 20 +Cur.rY,' ');
mvaddch(CurBox.r3.rX + 5 + Cur.rX,CurBox.r3.rY + 20 +Cur.rY,' ');
mvaddch(CurBox.r4.rX + 5 + Cur.rX,CurBox.r4.rY + 20 +Cur.rY,' ');
CurBox.r1.rX = -1;
CurBox.r1.rY = 0;
CurBox.r2.rX = 0;
CurBox.r2.rY = 0;
CurBox.r3.rX = +1;
CurBox.r3.rY = 0;
CurBox.r4.rX = +2;
CurBox.r4.rY = 0;
mvaddch(CurBox.r1.rX + 5 + Cur.rX,CurBox.r1.rY + 20 +Cur.rY,H_H);
mvaddch(CurBox.r2.rX + 5 + Cur.rX,CurBox.r2.rY + 20 +Cur.rY,H_H);
mvaddch(CurBox.r3.rX + 5 + Cur.rX,CurBox.r3.rY + 20 +Cur.rY,H_H);
mvaddch(CurBox.r4.rX + 5 + Cur.rX,CurBox.r4.rY + 20 +Cur.rY,H_H);
direction = 1;
}
break;
}
break;
case 2:
switch(direction)
{
case 1:
if(arr_rbox[Cur.rX][Cur.rY-1]!=1)
{
mvaddch(5 + Cur.rX-1,20 +Cur.rY,' ');
CurBox.r1.rX = 0;
CurBox.r1.rY = 1;
CurBox.r2.rX = 0;
CurBox.r2.rY = 0;
CurBox.r3.rX = +1;
CurBox.r3.rY = 0;
CurBox.r4.rX = 0;
CurBox.r4.rY = -1;
mvaddch(5 + Cur.rX,20 +Cur.rY-1,H_H);
direction = 2;
}
break;
case 2:
if(arr_rbox[Cur.rX-1][Cur.rY]!=1)
{
mvaddch(5 + Cur.rX,20 +Cur.rY+1,' ');
CurBox.r1.rX = 1;
CurBox.r1.rY = 0;
CurBox.r2.rX = 0;
CurBox.r2.rY = 0;
CurBox.r3.rX = 0;
CurBox.r3.rY = -1;
CurBox.r4.rX = -1;
CurBox.r4.rY = 0;
mvaddch(5 + Cur.rX-1, 20 +Cur.rY,H_H);
direction = 3;
}
break;
case 3:
if(arr_rbox[Cur.rX][Cur.rY+1]!=1)
{
mvaddch(5 + Cur.rX+1,20 +Cur.rY,' ');
CurBox.r1.rX = 0;
CurBox.r1.rY = -1;
CurBox.r2.rX = 0;
CurBox.r2.rY = 0;
CurBox.r3.rX = -1;
CurBox.r3.rY = 0;
CurBox.r4.rX = 0;
CurBox.r4.rY = 1;
mvaddch( 5 + Cur.rX, 20 +Cur.rY+1,H_H);
direction = 4;
}
break;
case 4:
if(arr_rbox[Cur.rX+1][Cur.rY]!=1)
{
mvaddch( 5 + Cur.rX, 20 +Cur.rY-1,' ');
CurBox.r1.rX = -1;
CurBox.r1.rY = 0;
CurBox.r2.rX = 0;
CurBox.r2.rY = 0;
CurBox.r3.rX = 0;
CurBox.r3.rY = 1;
CurBox.r4.rX = 1;
CurBox.r4.rY = 0;
mvaddch( 5 + Cur.rX+1, 20 +Cur.rY,H_H);
direction = 1;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -