• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed praca nad grą , błąd w strukturze (najprawdopodobniej :) )

Object Storage Arubacloud
0 głosów
187 wizyt
pytanie zadane 24 marca 2017 w C i C++ przez Jakub 0 Pasjonat (23,120 p.)
zamknięte 25 marca 2017 przez Jakub 0

hej ,zabrałem się za napisanie bardzo prostej gierki w c++ . Do określenia pozycji gracza użyłem struktury . Projekt dopiero zacząłem robić ale kompilator wyrzuca mi błąd . Kompletnie nie wiem o co chodzi crying na dole podałem cały kod programu ale kompilator wyrzuca mi błąd przy tej funkcji :

 

    void map_generator(int *map_segment[20][10], _position &player) 
    {
        map_segment[player.x][player.y]=1; //ustawienia odpowiednich nomerow szufladek w tablicy dla generatora   
    }

 

dziękuję za wszelką pomoc i komentarze ... oto kod :

 

#include <iostream>
#include <windows.h>
#include <conio.h>
#include <cstdlib>
#include <vector>

using namespace std;

struct _position //struktura z osia x i y
{
    int x;
    int y;
};

class _game
{
private:
    int map_segment[20][10]; //mapa
    _position player; //obiekt struktury
    vector<_position>monster[3]; //to narazie nie wazne 

    //begin procedure

    void map_generator(int *map_segment[20][10], _position &player) 
    {
        map_segment[player.x][player.y]=1; //ustawienia odpowiednich nomerow szufladek w tablicy dla generatora  
    }

    void player_command(_position &player) //porusznie gracza
    {
        char z = getch();

        if(z=='A') z='a';
        if(z=='D') z='d';

        switch(z)
        {
        case'a':{
            if(player.y==0) player.y=0;
            else player.y--;
        }
        break;
        case'd':{
            if(player.y==9) player.y=9;
            else player.y++;
        }

        }
    }

public:
    //loop procedure

    void public_game_loop() //petla gry 
    {
        //
    }
};

int main()
{
    _game g;
    g.public_game_loop();

    return 0;
}

 

komentarz zamknięcia: już znam odpowiedź
komentarz 24 marca 2017 przez Jakub 0 Pasjonat (23,120 p.)
najprawdopodobniej chodzi o to : map_segment[player.x][player.y]=1;
komentarz 24 marca 2017 przez Jakub 0 Pasjonat (23,120 p.)
racja :) ,ale nie miałem tego jak inaczej napisać , dzięki za zwrócenie uwagi

2 odpowiedzi

+1 głos
odpowiedź 24 marca 2017 przez Gramad Obywatel (1,660 p.)
wybrane 25 marca 2017 przez Jakub 0
 
Najlepsza

Funkcje map_generator() i player_command() mają dostęp do wszystkich atrybutów obiektu bo to są jego metody. Także, po co przesyłać przez argument?

Zamień
 

void map_generator(int *map_segment[20][10], _position &player) 
void player_command(_position &player)

 

Na:

void map_generator()
void player_command()


Jakbyś pokazał kod wywołania funkcji map_generator() i to jakie są w tym momencie wartosci w _position player to moglo by pomoc.

No i koniecznie wrzuć te błędy, ktore pokazal kompilator
;)
 

komentarz 25 marca 2017 przez Jakub 0 Pasjonat (23,120 p.)
dzięki za odpowiedź :) , no teraz niby działa ale po usunięciu wskaźników z parametrów funkcji będą one miały dostęp tylko do kopi zmiennych , a mi zależy żeby one zmieniały ich wartość
1
komentarz 25 marca 2017 przez QizmoPL Stary wyjadacz (11,440 p.)
jezeli chodzi o tablice, to nie dzialasz odrazu na oryginalnych zmiennych? Pierwszy elemnt tablicy to wskaznik na jej adres
komentarz 25 marca 2017 przez Jakub 0 Pasjonat (23,120 p.)

ok . już poczytałem i znam odpowiedź wink

+1 głos
odpowiedź 24 marca 2017 przez Evelek Nałogowiec (28,960 p.)
int map_segment[20][10] - po co ta gwiazdka tam? Strzelam, że to nie jest tablica trójwymiarowa ani żaden wskaźnik do tablicy dwuwymiarowej. Tym bardziej widząc jak używasz tej tablicy w tej funkcji.

Podobne pytania

0 głosów
1 odpowiedź 454 wizyt
0 głosów
1 odpowiedź 222 wizyt
pytanie zadane 10 września 2018 w Sprzęt komputerowy przez Aldmor Nowicjusz (210 p.)
0 głosów
1 odpowiedź 449 wizyt
pytanie zadane 18 czerwca 2020 w C i C++ przez Hubertius Bywalec (2,970 p.)

92,572 zapytań

141,423 odpowiedzi

319,645 komentarzy

61,959 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...