Mam taki problem iż tworzę grę w konsoli, która składa się z kółka planszy i strzał które na to kółko spadają.
zrobiłem już ten program lecz narazie jest tam 1 strzała, i spada ona po naciścięciu jakiegoś klawisza o 1 kratkę.
chciałbym zrobić aby spadała bez względu czy coś naciśniemy czy nie. Do pobrania znaku używam tutaj getch().
Zamierzam to zrobić tak, aby program nie czekał na ten getch; ma lecieć dalej i strzałka ma spadać.. spadać.. i spadać BEZ getch().
Wkleję tu ten program i uprzedzam, że programuje w using namespace, a nie chciałem już kombinować :)
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <windows.h>
using namespace std;
string miejsce;
string wybor;
int kolko=87, nr_strzala=7, n=0;
int main()
{
cout<<"aby rozpoczac kliknij enter: "; /*rozpoczecie*/
getchar();
system("cls");
cout<<"~~witaj w mojej grze~~"<<endl; /*pierwsze wyswietlenie tablicy*/
cout<<"sterowanie to: a,w,s,d. Powodzenia:)"<<endl<<endl;
miejsce="xxxxxxxxxxxxxxx"; /* (pierwszy x)->0-14 <-(ostatni x) */
miejsce+='\n';
miejsce+="x x"; /* (pierwszy x)->16 + 14 = 30 <-(ostatni x) */
miejsce+='\n';
miejsce+="x x"; /* (pierwszy x)->32 + 14 = 46 <-(ostatni x) */
miejsce+='\n';
miejsce+="x x"; /* (pierwszy x)->48 + 14 = 62 <-(ostatni x) */
miejsce+='\n';
miejsce+="x x"; /* (pierwszy x)->64 + 14 = 78 <-(ostatni x) */
miejsce+='\n';
miejsce+="x x"; /* (pierwszy x)->80 + 14 = 94 <-(ostatni x) */
miejsce+='\n';
miejsce+="xxxxxxxxxxxxxxx"; /* (pierwszy x)->96 + 14 = 110<-(ostatni x) */
miejsce[kolko]=char(111); /* dodanie kólka na potrzeby wyswietlenia tablicy, potem jest usuwa */
cout<<miejsce<<endl;
miejsce[kolko]=char(0);
for(;;)
{
/*------------------------------------------------------------------*/
/* wybor */
for(int i=0; i<1; i++)
{
wybor=char(0);
wybor=getch();
if (wybor=="w")
{
miejsce[kolko]=char(32);
kolko-=16;
if (kolko < 17)
{
kolko+=16;
}
miejsce[kolko]=char(111);
}
else if (wybor=="s")
{
miejsce[kolko]=char(32);
kolko+=16;
if (kolko > 95)
{
kolko -= 16;
}
miejsce[kolko]=char(111);
}
else if (wybor=="a")
{
miejsce[kolko]=char(32);
kolko--;
if (kolko==16 || kolko==32 || kolko==48 || kolko==64 || kolko==80 )
{
kolko++;
}
miejsce[kolko]=char(111);
}
else if (wybor=="d")
{
miejsce[kolko]=char(32);
kolko++;
if (kolko==30 || kolko==46 || kolko==62 || kolko==78 || kolko==94)
{
kolko--;
}
miejsce[kolko]=char(111);
}
}
/*------------------------------------------------------------------*/
/* spadanie strzaly */
if(nr_strzala < 110)
{
if(nr_strzala > 16)
{
if(kolko==nr_strzala) miejsce[nr_strzala]=char(111);
else if(nr_strzala < 96) miejsce[nr_strzala]=char(32);
}
else
{
miejsce[nr_strzala]=char(120);
}
nr_strzala+=16;
miejsce[nr_strzala]='|';
}
if (nr_strzala > 96)
{
miejsce[nr_strzala]='x';
}
/*------------------------------------------------------------------*/
/* kiedy przegrywasz */
if (nr_strzala==kolko+1 || nr_strzala==kolko-1)
{
n++;
}
if(nr_strzala==kolko+16 && n!=1)
{
miejsce[kolko]=char(32);
system("cls");
cout<<"~~witaj w mojej grze~~"<<endl;
cout<<"sterowanie to: a,w,s,d. Powodzenia:)"<<endl<<endl;
cout<<miejsce<<endl;
cout<<"Ajajaj.. przegrales :]";
exit(0);
}
if(nr_strzala==kolko)
{
miejsce[nr_strzala]=char(32);
miejsce[kolko]='|';
system("cls");
cout<<"~~witaj w mojej grze~~"<<endl;
cout<<"sterowanie to: a,w,s,d. Powodzenia:)"<<endl<<endl;
cout<<miejsce<<endl;
cout<<"Ajajaj.. przegrales :]";
exit(0);
}
/*------------------------------------------------------------------*/
/* TABLICA generacja */
system("cls");
cout<<"~~witaj w mojej grze~~"<<endl;
cout<<"sterowanie to: a,w,s,d. Powodzenia:)"<<endl<<endl;
cout<<miejsce<<endl;
}
return 0;
}