пишу от лица своего друга (сам он не может), пишет тетрис под borland C++ for Dos v 3.11
есть 1 вопрос про осуществление движения фигур.
алгоритм всем известен: если ничего не нажато, то фигура сдвинулась вниз, если игрок нажал на перемещение, то фигура сдвинулась в сторону и вниз.
вопрос собственно в следующем: какой функцией (или как-то иначе) можно считать клавишу и если игрок не нажимал бы её что бы фигура двигалась дальше а не зависала и не ждала, когда же пользователь соблаговолит нажать что-нибудь...
рабочая версия пока такая:
#include<conio.h>
#include<stdio.h>
#include<dos.h>
void game();
void sozdaniye_pole();
void vivod_pole();
int zapysk_figyri();
int n=12,m=12;
unsigned char a[20][20],b[20][20];
void main(void)
{
clrscr();
game();
getch();
}
void sozdaniye_pole()
{
int i=1,j=1;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
if((i==1) || (i==12))
a[i][j]=205;
else
if((j==1) || (j==12))
a[i][j]=186;
else
a[i][j]=' ';
a[1][1]=201;
a[1][12]=187;
a[12][1]=200;
a[12][12]=188;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
b[i][j]=a[i][j];
vivod_pole();
}
void vivod_pole()
{clrscr();
printf("\n\n\n\n\n");
for(int i=1;i<=n;i++)
{printf("\n");
printf("\t\t\t\t");
//delay(200);
for(int j=1;j<=m;j++)
printf("%c",b[i][j]); }
}
int zapysk_figyri()
{int y[5],x[5],f1=0,f2=2,A,i,j;
char c,k;
y[1]=1;
y[2]=2;
y[3]=3;
x[1]=6;
x[2]=6;
x[3]=6;
while(f1!=1)
{for(i=1,j=1;i<=3;i++)
b[y[i]][x[j]]='*';
vivod_pole();
f2=2;
while(f2!=3)
{
c=getch();
if(((x[3]==11) && (c==54)) || ((x[3]==2) && (c==52)))
c=50;
A=c-48;
switch(A)
{case 2: y[1]++;
y[2]++;
y[3]++;
f2=3;break;
case 4: x[1]--;
x[2]--;
x[3]--;
f2=3;break;
case 6: x[1]++;
x[2]++;
x[3]++;
f2=3;break;
} }
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
b[i][j]=a[i][j];
/*k=a[i3][j3];
printf("\t\t\t%c%d",k,k);
getch(); */
if((a[y[3]][x[3]]=='*') || (a[y[3]][x[3]]==205))
f1=1;}
return 0;}
void game(void)
{int f=0;
sozdaniye_pole();
//while(f!=1)
f=zapysk_figyri();
}
тут фигура из 3 вертикальных ячеек, управление стрелками на цифрах (те что справа) для движения вниз жать 2, влево 4 и вправо 6. Реализовать постоянное падение не проблема, но как тогда двигать фигуру не ясно....