Oryginalna strona colobot.cba.pl umarła, gdy cba.pl przestało oferować darmowy hosting. To jest statyczny mirror, pobrany w 2018. ~krzys_h
|
Forum - Polski Portal COLOBOTa |
|
|
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()
{
} |
|
|
|
|
|
|
|
| |
|
|
|
|
Polski Portal COLOBOTa © 2008 - 2012 |
|
|