mam problem, mianowicie zachciało mi się startu programu a dokładniej gry w pełnym okienku konsoli, myślałem że to żaden problem, jednak okazuje się być inaczej, nie mogę sobie sam z tym poradzić bo i w necie nie mogę nic znaleźć
a o to kod prostej gierki znanego wszystkim snake-a
:
a o to kod prostej gierki znanego wszystkim snake-a
#include<iostream.h>
#include<windows.h>
#include"conio.h"
//*****************RYSOWANIE RAMKI**********************************************
void ramka() //rysuje ramke na ekranie
{ int c;
gotoxy(1, 2);
for (int i=0; i<70; ++i)
printf("%c", 205);
printf(" %c", 30);
gotoxy(1, 22);
for (int j=0; j<70; ++j)
printf("%c", 205);
printf(" %c", 31);
}
//*****************OBSLUGA KURSORA**********************************************
void gotoxy(int x, int y)
{
COORD coord;
coord.X = x;
coord.Y = y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
}
//******************DEKLAROWANIE STRUKTURY**************************************
struct struktura
{
int w;
int x;
int y;
};
static struktura snake[1000];
int p;
//******************DEKLAROWANIE STRUKTURY**************************************
struct strukt
{
int x;
int y;
int ok;
};
static strukt biji;
int opt_cor;
int a;
int b;
char znak;
//*********************CIAŁO FUNKCJI********************************************
int main()
{
int z,zz;
int speed;
char speed1[3];
int x;
int y;
char opt_ex='n';
char opt;
cout<<endl<<endl;
ramka();
gotoxy(32,5);
cout<<"Jak grac?"<<endl;
gotoxy(15,8);
cout<<"Kierujesz weza za pomoca tych 4 klawiszy"<<endl;
gotoxy(15,11);
cout<<"[W] - w gore"<<endl;
gotoxy(15,12);
cout<<"[S] - w dol"<<endl;
gotoxy(15,13);
cout<<"[A] - w lewo"<<endl;
gotoxy(15,14);
cout<<"[D] - w prawo"<<endl<<endl<<endl;
gotoxy(15,16);
cout<<"Kontroluj weza by rosl jak najdluzszy "<<char(1)<<endl;
gotoxy(15,17);
cout<<""<<endl<<endl<<endl;
cout<<" Press any key to continue game ... ";
getch();
do
{
p=0;
system("cls");
for(a=2;a<73;a++)
{
gotoxy(a,1); cout<<char(205)<<endl;
gotoxy(a,21); cout<<char(205)<<endl;
}
gotoxy(1,1); cout<<char(201)<<endl;
gotoxy(1,21); cout<<char(200)<<endl;
gotoxy(73,1); cout<<char(187)<<endl;
gotoxy(73,21); cout<<char(188)<<endl;
for(a=2;a<21;a++)
{
gotoxy(1,a); cout<<char(186)<<endl;
gotoxy(73,a); cout<<char(186)<<endl;
}
gotoxy(37,1); cout<<p<<endl;
do
{
gotoxy(25,8); cout<<"Wybierz poziom trudnosci";
gotoxy(30,10); cout<<"Level (1-5) : "<<endl;
gotoxy(44,10); speed1[0]=getch(); putch(speed1[0]);
speed=atoi(speed1);
}while(speed>5&&speed<=0);
gotoxy(25,8); cout<<" "<<endl;
gotoxy(30,10); cout<<" "<<endl;
opt='0';
opt_ex='n';
biji.ok=1;
znak='w';
b=0;
for(a=0;a<1000;a++)
{
snake[a].w=0;
snake[a].x=0;
snake[a].y=0;
}
snake[b].w=1;
x=23;
y=20;
do
{
if(biji.ok==1)
{
biji.x=(rand() % 70)+2;
biji.y=(rand() % 18)+2;
biji.ok=0;
}
for(a=0;a<1000;a++)
{
if(snake[a].w==1)
{
gotoxy(snake[a].x,snake[a].y); cout<<char(0)<<endl;
}
}
for(a=999;a>0;a--)
{
if(snake[a].w==1&&snake[a-1].w==1)
{
snake[a].x=snake[a-1].x;
snake[a].y=snake[a-1].y;
}
}
snake[0].x=x;
snake[0].y=y;
for(a=0;a<1000;a++)
{
if(snake[a].w==1)
{
gotoxy(snake[a].x,snake[a].y); cout<<char(1)<<endl;
}
}
gotoxy(biji.x,biji.y); cout<<char(21)<<endl;
if(kbhit())
{
opt=getch();
}
if(opt=='w')
{
if(znak=='s')
{
opt=znak;
}
else
{
y=y-1;
}
}
if(opt=='s')
{
if(znak=='w')
{
opt=znak;
}
else
{
y=y+1;
}
}
if(opt=='d')
{
if(znak=='a')
{
opt=znak;
}
else
{
x=x+1;
}
}
if(opt=='a')
{
if(znak=='d')
{
opt=znak;
}
else
{
x=x-1;
}
}
znak=opt;
for(a=1;a<1000;a++)
{
if(snake[a].w==1)
{
if(x==snake[a].x&&y==snake[a].y)
{
for(zz=0;zz<10;zz++)
{
if(zz%2==0)
{
for(z=0;z<1000;z++)
{
if(snake[z].w==1)
{
gotoxy(snake[z].x,snake[z].y); cout<<' '<<endl;
}
}
}
else
{
for(z=0;z<1000;z++)
{
if(snake[z].w==1)
{
gotoxy(snake[z].x,snake[z].y); cout<<char(2)<<endl;
}
}
}
Sleep(200);
}
gotoxy(30,15); cout<<"Gra skonczona !!!"<<endl;
cout<<char(7)<<endl;
opt=char(27);
}
}
}
if(x==1||x==73||y==21||y==1)
{
for(zz=0;zz<10;zz++)
{
if(zz%2==0)
{
for(z=0;z<1000;z++)
{
if(snake[z].w==1)
{
gotoxy(snake[z].x,snake[z].y); cout<<' '<<endl;
}
}
}
else
{
for(z=0;z<1000;z++)
{
if(snake[z].w==1)
{
gotoxy(snake[z].x,snake[z].y); cout<<char(2)<<endl;
}
}
}
Sleep(100);
}
gotoxy(30,15); cout<<"Gra skonczona !!!"<<endl;
cout<<char(7)<<endl;
opt=char(27);
}
if(x==biji.x&&y==biji.y)
{
gotoxy(x,y); cout<<' '<<endl;
biji.ok=1;
p=p+speed;
b=b+1;
gotoxy(37,1);
cout<<p<<endl;
snake[b].w=1;
}
Sleep(170/speed);
}while(opt!=char(27));
do
{
system("cls");
gotoxy(30,12);
cout<<"Zdobyles "<<p<<" punktow.";
gotoxy(27,23); cout<<"Replay? [Y]es / [N]o : "<<endl;
gotoxy(50,23); opt_ex=getch();
if(opt_ex=='y'||opt_ex=='Y'||opt_ex=='n'||opt_ex=='N')
{
opt_cor=1;
}
else
{
opt_cor=0;
}
}while(opt_cor==0);
}while(opt_ex=='y'||opt_ex=='Y');
cout<<endl;
MessageBox(NULL,"Konrad Ignerowicz\n nr indexu 147433\n","Informatyka: Zaliczenie gry",
MB_OK | MB_SYSTEMMODAL|MB_ICONINFORMATION|MB_SERVICE_NOTIFICATION|MB_RTLREADING);
}