Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Gra w konsoli CMD, rysowanie i poruszanie się po mapie

Ostatnio zmodyfikowano 2023-03-16 19:22
Autor Wiadomość
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ą:
C/C++
#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; //37,38,39,40,41
        }
        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; //wyjscie nie
            }
        }
        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 );
   
}
P-174997
pekfos
» 2019-08-09 17:47:27
» Kurs STC » PodstawyWstawianie kodu źródłowego lekcja

Ten sam problem:
Pomocy! Mam mały problem!
Menu główne w grze w konsoli CMD
oh, wait..
Wszystkie operatory zawierające '=' są formatu @=, gdzie @ to =, !, +, -, *, /, itd.

» Kurs C++ / FAQNajczęściej spotykane bugi pytanie/odpowiedź

C/C++
if( 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:
C/C++
if( x != 36 && x != 37 && x != 38 && x != 39 )
lub sprytniej:
C/C++
else

C/C++
if( poruszanie == 97 )
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.
C/C++
if( poruszanie == 'a' )
Nie musisz zmieniać niczego więcej.
P-174998
mayorovd
» 2023-03-15 23:24:19
Post usunięty przez moderatora
P-180055
mayorovd
» 2023-03-16 19:22:34
Post usunięty przez moderatora
P-180056
« 1 »
  Strona 1 z 1