Reklama
Strona 2 z 2 PierwszaPierwsza 12
Pokazuje wyniki od 16 do 20 z 20

Temat: [C++] Problem z grą - Exception thrown: read access violation

  1. #16
    Avatar Dio Paladin
    Data rejestracji
    2007
    Wiek
    28
    Posty
    959
    Siła reputacji
    17

    Domyślny

    Dobra, trochę się pospieszyłem... Rozumiem, że błąd leży tu:
    Kod:
    for(int u = 0; u < this->iloscGraczy; u++)
    	{
    	       if (status[u] == 2 && status[u+1] != 2) continue;
                   else if (najlepszyGracz == -1) najlepszyGracz = u;
    	       else if (tablicaGraczy[u]->policzPunkty() > tablicaGraczy[najlepszyGracz]->policzPunkty()) 
    	       najlepszyGracz = u;
    	}
    I wiem, że muszę to przerobić tak, aby w przypadku kiedy dwie lub więcej osób przegrało, program nie próbował odwołać się do elementu tablicy -1. Dla dwóch graczy umiem to jakoś koślawo zrobić ale jak przerobić tą funkcję dla różnej ilości graczy? (maksymalnie 8). Znowu zastygłem przy tym więc proszę o jakiegoś tipa... ;d

  2. #17
    Avatar Chels
    Data rejestracji
    2013
    Wiek
    30
    Posty
    2,824
    Siła reputacji
    13

    Domyślny

    Cytuj Pumpkin napisał Pokaż post
    Cytat został ukryty, ponieważ ignorujesz tego użytkownika. Pokaż cytat.
    typie ale on to chce na wskaźnikach zrobić a nie kopiować obiekty,
    no po tym co mu polecilem to owszem kopiowany bylby obiekt ;p
    nie zaglebialem sie w algorytm

    a zeby sobie skopiowac adres moze sobie uzyc &
    Ostatnio zmieniony przez Chels : 21-05-2016, 16:46

  3. Reklama
  4. #18
    Avatar kuba_k31
    Data rejestracji
    2006
    Wiek
    29
    Posty
    2,322
    Siła reputacji
    19

    Domyślny

    Cytuj Dio Paladin napisał Pokaż post
    Cytat został ukryty, ponieważ ignorujesz tego użytkownika. Pokaż cytat.
    Dobra, trochę się pospieszyłem... Rozumiem, że błąd leży tu:
    Kod:
    for(int u = 0; u < this->iloscGraczy; u++)
    	{
    	       if (status[u] == 2 && status[u+1] != 2) continue;
                   else if (najlepszyGracz == -1) najlepszyGracz = u;
    	       else if (tablicaGraczy[u]->policzPunkty() > tablicaGraczy[najlepszyGracz]->policzPunkty()) 
    	       najlepszyGracz = u;
    	}
    I wiem, że muszę to przerobić tak, aby w przypadku kiedy dwie lub więcej osób przegrało, program nie próbował odwołać się do elementu tablicy -1. Dla dwóch graczy umiem to jakoś koślawo zrobić ale jak przerobić tą funkcję dla różnej ilości graczy? (maksymalnie 8). Znowu zastygłem przy tym więc proszę o jakiegoś tipa... ;d
    A coś takiego nie byłoby lepsze?
    Kod:
    najlepszyGracz = 0;
    for(int u = 0; u < this->iloscGraczy; u++)
           if (tablicaGraczy[u]->policzPunkty() > tablicaGraczy[najlepszyGracz]->policzPunkty() && status[u] != 2)  najlepszyGracz = u;
    Ostatnio zmieniony przez kuba_k31 : 21-05-2016, 17:08
    Cytuj Minsafo napisał Pokaż post
    Cytat został ukryty, ponieważ ignorujesz tego użytkownika. Pokaż cytat.
    domknąłem

  5. #19
    Avatar Dio Paladin
    Data rejestracji
    2007
    Wiek
    28
    Posty
    959
    Siła reputacji
    17

    Domyślny

    Cytuj kuba_k31 napisał Pokaż post
    Cytat został ukryty, ponieważ ignorujesz tego użytkownika. Pokaż cytat.
    A coś takiego nie byłoby lepsze?
    Kod:
    najlepszyGracz = 0;
    for(int u = 0; u < this->iloscGraczy; u++)
           if (tablicaGraczy[u]->policzPunkty() > tablicaGraczy[najlepszyGracz]->policzPunkty() && status[u] != 2)  najlepszyGracz = u;
    Królu złoty, zielony już wyleciał. Program działa pięknie, problem został rozwiązany.

  6. #20
    Avatar kuba_k31
    Data rejestracji
    2006
    Wiek
    29
    Posty
    2,322
    Siła reputacji
    19

    Domyślny

    A tutaj:
    Kod:
    for(int u = 0; u < this->iloscGraczy; u++)
    	{
    	       if (status[u] == 2 && status[u+1] != 2) continue;
                   else if (najlepszyGracz == -1) najlepszyGracz = u;
    	       else if (tablicaGraczy[u]->policzPunkty() > tablicaGraczy[najlepszyGracz]->policzPunkty()) 
    	       najlepszyGracz = u;
    	}
    mając np. 2 graczy (zmienna iloscGraczy = 2) pętla wykonała by się 2 razy, ale za drugim razem sprawdzałbyś wartości dla status[1] i status[2], czyli drugiego gracza z trzecim (który w grze nie uczestniczy).
    Nie wiem czy przez to Ci sie sypalo, ale na przyszłość warto na to uważać :D
    Cytuj Minsafo napisał Pokaż post
    Cytat został ukryty, ponieważ ignorujesz tego użytkownika. Pokaż cytat.
    domknąłem

Reklama

Informacje o temacie

Użytkownicy przeglądający temat

Aktualnie 1 użytkowników przegląda ten temat. (0 użytkowników i 1 gości)

Podobne tematy

  1. Pytanie dot. rule violation.
    Przez Filia the Dragon w dziale Tibia
    Odpowiedzi: 5
    Ostatni post: 10-01-2014, 15:56
  2. Niesluszny rule violation
    Przez adikk3 w dziale Tibia
    Odpowiedzi: 1
    Ostatni post: 29-04-2013, 17:09
  3. "Disk read error occured" - problem z dyskiem
    Przez SerQ w dziale Sprzęt i oprogramowanie
    Odpowiedzi: 1
    Ostatni post: 07-12-2012, 20:06
  4. Problem z dyskiem "Raw Read Error Rate"
    Przez M4arcin w dziale Sprzęt i oprogramowanie
    Odpowiedzi: 4
    Ostatni post: 01-07-2012, 12:12
  5. You read: Point of no return! Potrzebna pomoc
    Przez Alex17-17 w dziale Tibia
    Odpowiedzi: 3
    Ostatni post: 30-09-2010, 18:48

Zakładki

Zakładki

Zasady postowania

  • Nie możesz pisać nowych tematów
  • Nie możesz pisać postów
  • Nie możesz używać załączników
  • Nie możesz edytować swoich postów
  •