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 |
|
|
Zmienna nie została zainicjalizowana [radar2()] |
Autor |
Wiadomość |
jedrus113
Wielki Geniusz
Twoja ulubiona misja: Na pewno nie 1: Na Saari 1: Uran
Wiek: 23 Dołączył: 07 Lip 2009 Posty: 20 Skąd: 127.0.0.1
|
Wysłany: 07-07-2009, 18:53 Zmienna nie została zainicjalizowana [radar2()]
|
|
|
Dzieńdobrywieczór!
Napisałem program, a raczej próbowałem napisać program który by mi powiedziała czy na planecie są wrogowie.
to co mi się udalo napisać:
Kod: | extern void object::Radar2()
{
string queen, egg, ant, spider, wasp, worm;
if(radar(AlienQueen) != null) queen == "Krolowa obcych";
if(radar(AlienEgg) != null) egg == ", jaja obcych";
if(radar(AlienAnt) != null) ant == "mrowki";
if(radar(AlienSpider) != null) spider == ", pajaki";
if(radar(AlienWasp) != null) wasp == ", osy";
if(radar(AlienWorm) != null) worm == ", robaki";
message("Na planecie wykryto "+queen+egg+ant+spider+wasp+worm+"!");
}
|
Ale gdy uruchomiam ten program to mnie się wyświetla "Zmienna nie została zainicjalizowana." Co to wogle znaczy? I co zrobiłem żle?
Czy muszę pozostawić probram w wersji 1.0:
Kod: | extern void object::Radar()
{
object item;
if(radar(AlienQueen) != null) message("Na planecie jest Krolowa obcych");
if(radar(AlienEgg) != null) message("Na planecie sa jaja obcych");
if(radar(AlienAnt) != null) message("Na planecie sa mrowki");
if(radar(AlienSpider) != null) message("Na planecie sa pajaki");
if(radar(AlienWasp) != null) message("Na planecie sa osy");
if(radar(AlienWorm) != null) message("Na planecie sa robaki");
}
|
ps. A przy okazji czy da się zrobić żeby peogram odrazu podawał ile jest tych wrogów? |
_________________ Moja stronka www.jedrus113.cba.pl |
|
|
|
|
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
|
|
|
|
|
jedrus113
Wielki Geniusz
Twoja ulubiona misja: Na pewno nie 1: Na Saari 1: Uran
Wiek: 23 Dołączył: 07 Lip 2009 Posty: 20 Skąd: 127.0.0.1
|
Wysłany: 07-07-2009, 19:28 Działa
|
|
|
adiblol napisał/a: | Musisz zainicjować zmienne pustą wartością |
Działa dzięki adibol!!
Kod: | extern void object::Radar2()
{
string queen, egg, ant, spider, wasp, worm;
queen = "";
egg = "";
ant = "";
spider = "";
wasp = "";
worm = "";
if(radar(AlienQueen) != null) queen = " Krolowa obcych";
if(radar(AlienEgg) != null) egg = " jaja obcych";
if(radar(AlienAnt) != null) ant = " mrowki";
if(radar(AlienSpider) != null) spider = " pajaki";
if(radar(AlienWasp) != null) wasp = " osy";
if(radar(AlienWorm) != null) worm = " robaki";
message("Na planecie wykryto"+queen+egg+ant+spider+wasp+worm+"!");
} |
A da się zrobić żeby program sprawdzał ile jest tych wrogów? |
_________________ Moja stronka www.jedrus113.cba.pl |
|
|
|
|
Schocker
Wants cookies!
Twoja ulubiona misja: Hmm... All.
Pomógł: 3 razy Wiek: 22 Dołączył: 31 Maj 2009 Posty: 177 Skąd: Wadowice
|
Wysłany: 07-07-2009, 19:59
|
|
|
Czyżby coś w stylu "Szukaj wroga, jeśli jest, zapisz to w zmiennej i dodaj do innej 1..." Stop! Odwołuję! Chyba, że da się zrobić "Znajdź, wyklucz, znajdź następnego."... |
_________________ But there's no sense crying over every mistake, you just keep on trying 'till you ran out of cake -GlaDOS
|
|
|
|
|
jedrus113
Wielki Geniusz
Twoja ulubiona misja: Na pewno nie 1: Na Saari 1: Uran
Wiek: 23 Dołączył: 07 Lip 2009 Posty: 20 Skąd: 127.0.0.1
|
Wysłany: 07-07-2009, 20:49
|
|
|
Dobra już jest i działa Radar3.0
Kod: | int Compte(int cat) //cat - kategoria
{
int i, total;
object p;
total = 0;
for ( i=0 ; i<10000 ; i++ )
{
p = retobject(i);
if ( p == null ) break;
if ( p.category == cat ) total ++;
}
return total;
}
extern void object::Radar3()
{
message("Na planecie jest:");
if(radar(AlienQueen) != null)
{
int liczbakroli=Compte(AlienQueen);
message(Compte(AlienQueen)+"Krolowych obcych");
}
if(radar(AlienEgg) != null)
{
int liczbajaj=Compte(AlienEgg);
message(Compte(AlienEgg)+" jaj obcych");
}
if(radar(AlienAnt) != null)
{
int lczbamrowek=Compte(AlienAnt);
message(Compte(AlienAnt)+" mrowek");
}
if(radar(AlienSpider) != null)
{
int lczbapajakow=Compte(AlienSpider);
message(Compte(AlienSpider)+" pajakow");
}
if(radar(AlienWasp) != null)
{
int lczbaos=Compte(AlienSpider);
message(Compte(AlienSpider)+" os");
}
if(radar(AlienWorm) != null)
{
int lczbarobali=Compte(AlienWorm);
message(Compte(AlienWorm)+" robakow");
}
}
|
|
_________________ Moja stronka www.jedrus113.cba.pl |
|
|
|
|
pipok
Gość
|
Wysłany: 08-07-2009, 13:32
|
|
|
adiblol napisał/a: | Musisz zainicjować zmienne pustą wartością | Nie rób koledze wody z mózgu
Błąd polegał na użyciu operatora "==", oznaczającego "czy jest równe?", zamiast operatora "=", oznaczającego "nadaj wartość".
Zapis Cytat: | queen == "Krolowa obcych" | oznacza "sprawdź czy zmienna 'queen' ma wartość "Krolowa obcych"
Zapis Cytat: | queen = "Krolowa obcych" | oznacza "przypisz zmiennej 'queen' wartość "Krolowa obcych" |
|
|
|
|
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: 08-07-2009, 13:41
|
|
|
Ja nie zauważyłem tego błędu, ale zauważyłem że jesli jakiegoś wroga nie ma to zmienna nie jest zainicjowana. |
_________________ 1Tbps Project && Telecomix Network
|
|
|
|
|
pipok
Dołączył: 24 Cze 2009 Posty: 53
|
Wysłany: 08-07-2009, 14:09
|
|
|
adiblol napisał/a: | Ja nie zauważyłem tego błędu, ale zauważyłem że jesli jakiegoś wroga nie ma to zmienna nie jest zainicjowana. | Prawda A jak wróg jest, to też nie jest inicjowana )
jedrus113, napisanie "=" zamiast "==" (lub odwrotnie) to częsty błąd. Trzeba się pilnować, bo w wielu kontekstach formalnie obie konstrukcje są poprawne i tylko od zamiaru programisty zależy, która jest tą właściwą. Dlatego nie pojawia się komunikat o błędzie kompilacji, dopiero podczas wykonywania programu można wyłapać, że coś jest nie tak. |
|
|
|
|
jedrus113
Wielki Geniusz
Twoja ulubiona misja: Na pewno nie 1: Na Saari 1: Uran
Wiek: 23 Dołączył: 07 Lip 2009 Posty: 20 Skąd: 127.0.0.1
|
Wysłany: 08-07-2009, 14:56
|
|
|
Moim zamiarem jest zniszczenie świata i do tego używam "=="!!
No w końcu czeba sobie jakoś radzić skoro w CBot'cie niema komendy "destoryThe(word)" |
_________________ Moja stronka www.jedrus113.cba.pl |
|
|
|
|
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
|
|
|
|
|
|
|
| |
|
|
|
|
Polski Portal COLOBOTa © 2008 - 2012 |
|
|