Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[C++][Problem] Dlaczego ten kod nie działa tak jak powinien?


Rekomendowane odpowiedzi

Opublikowano

#include <iostream>
#include <windows.h>
#include <conio.h>
using namespace std;
struct Pozycja
{
   int x, y;
};
void ruch(int* x, int* y)
{
   char guzik;
   switch(guzik)
   {
    case 'w':
	    *y--;
    break;
    case 's':
	    *y++;
    break;
    case 'a':
	    *x--;
    break;
    case 'd':
	    *x++;
    break;
   }
}
class Map
{
   public:
    void rysuj(int x, int y)
    {
	    system("cls");
	    int _x, _y;
	    for (_y =0; _y < 5; _y++)
	    {
		    for (_x =0; _x != 20; _x++)
		    {
			    if (_x+1 == x and _y+1 == y)
				    cout << "@";
			    else
				    cout << "x";
		    }
		    cout << endl;
	    }
    }
};

int main()
{
   Map mapa;
   Pozycja gracz = {1, 3};
   for(;
   {
    ruch(&(gracz.x), &(gracz.y));
    mapa.rysuj(gracz.x, gracz.y);
   }
   return 0;
}

 

Dlaczego jak naciskam "w"," s", "a" lub "d" to "@" się nie przesuwa po narysowanej mapie?

//Zakaz gifów-Dektored

Opublikowano

Jezusmaria, jakim cudem to przeoczyłem? :s

Do zamknięcia.

 

@Up, dzięki.

 

//Edit

Jednak nie działa :s Zrobiłem takie cos:

char guzik = getch();

 

I po uruchomieniu nic się nie dzieje.

 

//Edit

Już działa, zamiast *x++ dałem *x+=1 *( x)++ i jest wszystko działa jak powinno.

//Zakaz gifów-Dektored

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...