Gra w konsoli CMD, rysowanie i poruszanie się po mapie
Ostatnio zmodyfikowano 2023-03-16 19:22
gaweljar0 Temat założony przez niniejszego użytkownika |
Gra w konsoli CMD, rysowanie i poruszanie się po mapie » 2019-08-09 10:49:40 Postać może poruszać się tylko po czterech kratkach. część z grą: #include <iostream> #include <cstdlib> #include <windows.h> #include <conio.h> #include <cstdio> using namespace std; int poruszanie, czypozycjablada, czypozycjabladb; int ya, yb, y = 1, wyrownanieya, wyrownanieyb; int xa, xb, x = 1, wyrownaniexa, wyrownaniexb; int movingmenu, movingsettings, poziom = 1; int repeatmenu, repeatsettings, koniecmenu; int pointingmenu = 2, pointingsettings = 2, i; int main(); int poziomdrugi() { } int poziompierwszy() { } int Pokojglowny() { do { koniecmenu = 1; system( "cls" ); cout << "####################################NEXT################################" << endl; for( ya = 0; ya <= y - 1; ya++ ) { cout << "# #" << endl; } cout << "#"; for( xa = 0; xa <= x - 1; xa++ ) { cout << " "; } cout << "A"; for( xb = 0; xb <= 70 - x - 2; xb++ ) { cout << " "; } cout << "#" << endl; for( yb = 0; yb <= 20 - y - 2; yb++ ) { cout << "# #" << endl; } cout << "###################################EXIT#################################" << endl; if( x > 70 ) { wyrownaniexb = x - 70; x -= wyrownaniexb; } if( x < 0 ) { wyrownaniexa = 0 - x; x += wyrownaniexb; } if( y > 20 ) { wyrownanieyb = y - 70; y -= wyrownanieyb; } if( y < 0 ) { wyrownanieya = 0 - y; y += wyrownanieyb; } poruszanie = getch(); if( poruszanie == 119 ) { y = - 1; } if( poruszanie == 115 ) { y = + 1; } if( poruszanie == 97 ) { x = - 1; } if( poruszanie == 100 ) { x = + 1; } if( czypozycjablada == 1 && poruszanie == 101 ) { if( poziom == 1 ) { poziompierwszy(); koniecmenu = 2; } if( poziom == 2 ) { poziomdrugi(); koniecmenu = 2; } } if( czypozycjabladb == 1 && poruszanie == 101 ) { main(); koniecmenu = 2; } if( y == 0 ) { if( x == 36 || x == 37 || x == 38 || x == 39 ) { czypozycjablada = 1; cout << "click E to play " << poziom << " level" << endl; } if( x != 36 || x != 37 || x != 38 || x != 39 ) { czypozycjablada = 2; } } if( y == 70 ) { if( x == 36 || x == 38 || x == 38 || x == 39 ) { czypozycjabladb = 1; } if( x != 36 || x != 37 || x != 38 || x != 39 ) { czypozycjabladb = 2; } } Sleep( 100 ); } while( koniecmenu = 1 ); }
|
|
pekfos |
» 2019-08-09 17:47:27 Wstawianie kodu źródłowegoTen sam problem: Pomocy! Mam mały problem!Menu główne w grze w konsoli CMDoh, wait..Wszystkie operatory zawierające '=' są formatu @=, gdzie @ to =, !, +, -, *, /, itd. Najczęściej spotykane bugiif( x == 36 || x == 38 || x == 38 || x == 39 ) { czypozycjabladb = 1; } if( x != 36 || x != 37 || x != 38 || x != 39 ) { czypozycjabladb = 2; } |
O ile nie jesteś w stanie sprawić, że x jest jednocześnie równe 36, 37, 38 i 39, to drugi warunek jest zawsze prawdziwy. Warunkiem przeciwnym do pierwszego jest: if( x != 36 && x != 37 && x != 38 && x != 39 )
lub sprytniej: Jeśli chcesz zabłysnąć na imprezie, to z pewnością są lepsze sposoby niż uczenie się na pamięć tablicy ASCII. Kod będzie prostszy do zrozumienia, jeśli będziesz używać literałów znakowych. Nie musisz zmieniać niczego więcej. |
|
mayorovd |
» 2023-03-15 23:24:19 Post usunięty przez moderatora |
|
mayorovd |
» 2023-03-16 19:22:34 Post usunięty przez moderatora |
|
« 1 » |