Oryginalna strona colobot.cba.pl umarła, gdy cba.pl przestało oferować darmowy hosting. To jest statyczny mirror, pobrany w 2018. ~krzys_h
 Polski Portal COLOBOTa - COLOBOT Polish Portal
Forum - Polski Portal COLOBOTa
Strona głównaStrona główna UżytkownicyUżytkownicy GrupyGrupy StatystykiStatystyki


Poprzedni temat «» Następny temat
Połączenie tablicą w klasie
Autor Wiadomość
DaFFy92


Pomógł: 1 raz
Wiek: 25
Dołączył: 22 Sie 2008
Posty: 9
Wysłany: 21-02-2010, 15:55   Połączenie tablicą w klasie

Próbuje napisać skrypt, ale wyskakuje błąd podczas odpalania (podczas kompilowania nie zgłasza błędu)

Kod:
public class turniej
{
    static bool start=false;
    static string nick[4];
    static object bot[4];
    static bool ready[4];
}

extern void object::Program ()
{
    turniej tur();
    while(sizeof(tur.ready)<4) wait(0.1); {w tej linijce wywala błąd}
    while(!(tur.ready[0] && tur.ready[1] && tur.ready[2] && tur.ready[3])) wait(1);
   
    tur.start=true;       
}
 
     
adiblol 
Administrator forum
FLOSS FTW!


Twoja ulubiona misja: porównywanie formatów audio
Pomógł: 18 razy
Dołączył: 21 Kwi 2008
Posty: 1313
Skąd: pokój odsłuchowy
Wysłany: 21-02-2010, 16:28   

DaFFy92 napisał/a:
while(sizeof(tur.ready)<4) wait(0.1); {w tej linijce wywala błąd}

Problem w tym, że rozmiar tablicy jest stały, więc stosowanie instrukcji sizeof nie ma sensu.
_________________
1Tbps Project && Telecomix Network

 
 
     
DaFFy92


Pomógł: 1 raz
Wiek: 25
Dołączył: 22 Sie 2008
Posty: 9
Wysłany: 21-02-2010, 20:24   

Nie, problem jest w tym że wyświetla się wiadomość, że zmienna nie została zainicjowana.

Poza tym sprawdzanie ma sens, ponieważ w bool ready[4]; maksymalną ilość rekordów w tablicy, a sizeof() sprawdza ile ma wartości w tablicy.

Przykładem:
Kod:
extern void object::Program ()
{
int b[6];
b[0]=2;
b[1]=3;
message(sizeof(b));
}

Wynikiem jest 2
Ostatnio zmieniony przez DaFFy92 21-02-2010, 20:31, w całości zmieniany 1 raz  
 
     
Berserker 
Dark Ness


Twoja ulubiona misja: Ofrenia
Pomógł: 16 razy
Wiek: 24
Dołączył: 24 Mar 2009
Posty: 496
Skąd: Bigos
Wysłany: 21-02-2010, 20:28   

Nadaj odrazu jakas wartosc calej tablicy (np false)
_________________
 
 
     
DaFFy92


Pomógł: 1 raz
Wiek: 25
Dołączył: 22 Sie 2008
Posty: 9
Wysłany: 21-02-2010, 20:41   

Berserker napisał/a:
Nadaj odrazu jakas wartosc calej tablicy (np false)

Da się nadać jedną wartość wszystkim rekordom w tablicy? Jak?
 
     
FE4R 


Twoja ulubiona misja: Saari - Inwazja
Pomógł: 4 razy
Wiek: 24
Dołączył: 21 Paź 2009
Posty: 144
Wysłany: 22-02-2010, 00:30   

DaFFy92 napisał/a:
Berserker napisał/a:
Nadaj odrazu jakas wartosc calej tablicy (np false)

Da się nadać jedną wartość wszystkim rekordom w tablicy? Jak?

Kod:
static bool ready[4] = (false, false, false, false);

O ile się nie mylę.

@EDIT 1:
Szkoda, że wywala błąd. Być może dlatego, że tablica jest statyczna, ale nie jestem pewien. W każdym razie, gdy w taki sposób zainicjujesz tablicę poza definicją klasy, to gra nie wywali błędu.

@EDIT 2:
Tablica nie może być statyczna.

Kod:
public class MojaKlasa
{
bool list[4] = (false, false, false, false);
}

extern void object::Program1()
{

}
 
     
Wyświetl posty z ostatnich:   

Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group
Polski Portal COLOBOTa © 2008 - 2012