Skocz do zawartości

[C++] "gierka", czemu nie dziala?


kolusek18

Polecane posty

witam.
chcialem napisac taki programik, gdzie sterojac klawiszami W,S,A,D poroszalbym w rozna strony znaczek. oto kod, ktory niestety nie dziala tak jak sie spodziewalem. moze mi ktos powiedziec co tu jest zle? i ewentualnie napisac jak powinno byc?
probowalem tez urzyc instrucji wyboru switch, ale tez nie wychodzilo

kod:
Pascal
#include <cstdlib>
#include <iostream>
#include <windows.h>
#include <stdio.h>
#include <conio.h>
using namespace std;


void gotoxy(const int x, const int y)
{
HANDLE hCon = GetStdHandle(STD_OUTPUT_HANDLE);

COORD coord = {x, y};
SetConsoleCursorPosition(hCon, coord);
}



int main(int argc, char *argv[])
{

int x,y;
// int wybor;

x=15;
y=15;
gotoxy(x,y); cout<<"H"<<endl<<endl<<endl;

while(1){




if (getch()==87) { system("CLS");
y=y+1;
x=x;
gotoxy(x,y); cout<<"H"<<endl<<endl<<endl;
} else
if (getch()==83) { system("CLS");
y=y-1;
x=x;
gotoxy(x,y); cout<<"H"<<endl<<endl<<endl;
} else

if (getch()==65) { system("CLS");
x--;
gotoxy(x,y); cout<<"H"<<endl<<endl<<endl;
} else
if (getch()==68) { system("CLS");
x++;
gotoxy(x,y); cout<<"H"<<endl<<endl<<endl;
} else system("CLS");
gotoxy(x,y); cout<<"H"<<endl<<endl<<endl;


/* switch(wybor){
case 87: { system("cls");
y--;
gotoxy(x,y); cout<<"H"<<endl<<endl<<endl;
}
case 83: { system("CLS");
y++;
gotoxy(x,y); cout<<"H"<<endl<<endl<<endl;
}
case 65: { system("cls");
x--;
gotoxy(x,y); cout<<"H"<<endl<<endl<<endl;
}

case 68: { system("cls");
x++;
gotoxy(x,y); cout<<"H"<<endl<<endl<<endl;
}

} */




}





system("PAUSE");
return EXIT_SUCCESS;
}


Link do komentarza
Udostępnij na innych stronach

to moj kod!!!
ma sie poruszac tak, ze wspozedna x lub y sie zmniejsza lub zwieksza w zaleznosci od tego co wybiore i pojawia sie litera w innym punkcie dzieki funkcji gotoxy a ta poprezednia jest czyszczona uprzednio. kod sie chce skompilowac, ale gdy go wlaczam to literka "H" nie zmienia polozenia gdy wcisne W,S,D,A. [b]wogole nie zmienia polozenia!
Link do komentarza
Udostępnij na innych stronach

[quote] to moj kod!!! [/quote]
Nie ma czym sie chwalic wink.gif

Mam dla Ciebie jedna rade (na razie).
Zmien te wartosci przy if'ach na 'x' gdzie x to 'w,s,d,a' w odpowiednich miejscach.

Albo i druga wink.gif
Wroc do switcha. Dzieki temu od razu poprawisz kolejny razacy blad (narzut). Domysl sie jaki wink.gif

Down With The Sickness :)

Link do komentarza
Udostępnij na innych stronach

Naprawilem:

Pascal#include <cstdlib>
#include <iostream>
#include <windows.h>
#include <stdio.h>
#include <conio.h>

using namespace std;


void gotoxy(short int x, short int y)
{
HANDLE hCon = GetStdHandle(STD_OUTPUT_HANDLE);
COORD pas;
pas.X=x-1;
pas.Y=y-1;
SetConsoleCursorPosition(hCon, pas);
}

int main(int argc, char *argv[])
{

int x,y;
// int wybor;

x=15;
y=15;
gotoxy(x,y); cout<<"H"<<endl<<endl<<endl;

char btn;

while(1){

btn = getch();
// cout << btn;


if (getch()=='s') { system("CLS");

y=y+1;

gotoxy(x,y); cout<<"H";
}
if (getch()=='w') { system("CLS");
y=y-1;

gotoxy(x,y); cout<<"H";
}

if (getch()=='a') { system("CLS");
x--;
gotoxy(x,y); cout<<"H";
}
if (getch()=='d') { system("CLS");
x++;
gotoxy(x,y); cout<<"H";
}

}

system("PAUSE");
return EXIT_SUCCESS;
}

Pozdrawiam,

vo7 (;

Link do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.

×
×
  • Utwórz nowe...