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 |
|
|
Dywagacje na temat point i object [Wydzielone] |
Autor |
Wiadomość |
Apus
Twoja ulubiona misja: 2 pierwsze na Wulkanii
Pomógł: 3 razy Wiek: 19 Dołączył: 09 Kwi 2010 Posty: 246 Skąd: ze wsi
|
Wysłany: 25-01-2011, 12:59
|
|
|
Emxx52 napisał/a: | Ale popełniasz bardzo duży błąd:
Apus napisał/a: | b = space(a.position,2,0,15); | Pusta pozycja nie jest obiektem
Powinno być tak
Kod: | extern void object::Uran()
{
while (true)
{
object a, b;
a = radar(RedFlag);
b = search(UraniumOre,a.position);
if (b == null);
{
message("skończyła się ruda",DisplayWarning); //na niebiesko
break;
}
goto(b.position);
grab();
a = radar(BlueFlag);
goto(space(a.position,2,0,15);
drop();
}
message("Program zakończony",DisplayInfo); //na zielono
} |
|
LOL
Ale usunąłeś if (b =! null) które sprawdzało czy to wolne miejsce istnieje. Teraz może wyjść goto(null);
A poza tym w tym wypadku pusta pozycja dla programu jest obiektem. Umieszczam współrzędne wolnej pozycji w zmiennej object i już może być traktowana jako obiekt. Przynajmniej mi się tak wydaje. |
|
|
|
|
Emxx52
W istocie
Twoja ulubiona misja: Tropica
Dołączył: 04 Kwi 2010 Posty: 207 Skąd: Z istotnych pobudek
|
Wysłany: 25-01-2011, 13:37
|
|
|
No właśnie nie może! Możesz podać współrzędne obiektu i go znajdzie, lecz w pustej pozycji nie stoi żaden obiekt. W końcu to pusta pozycja. Zresztą nie da rady wyznaczyć coś takiego jak if(pustapozycja==null) bo nie ma możliwości sprawdzenia pustej pozycji, która nie istnieje. |
_________________ Windows w szacie Linuxa
|
|
|
|
|
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: 25-01-2011, 15:58
|
|
|
Pozycja nie może być traktowana jako obiekt, ani obiekt jako pozycja. Tyle na ten temat. |
_________________ 1Tbps Project && Telecomix Network
|
|
|
|
|
Apus
Twoja ulubiona misja: 2 pierwsze na Wulkanii
Pomógł: 3 razy Wiek: 19 Dołączył: 09 Kwi 2010 Posty: 246 Skąd: ze wsi
|
Wysłany: 25-01-2011, 19:06
|
|
|
Emxx52 napisał/a: | No właśnie nie może! Możesz podać współrzędne obiektu i go znajdzie, lecz w pustej pozycji nie stoi żaden obiekt. W końcu to pusta pozycja. Zresztą nie da rady wyznaczyć coś takiego jak if(pustapozycja==null) bo nie ma możliwości sprawdzenia pustej pozycji, która nie istnieje. |
Nie możesz porównać pustej pozycji do null. Do null możesz porównać tylko parametr tego pustego miejsca lub obiektu (np. współrzędne, temperatura silnika, poziom baterii) będący zapisany w zmiennej.
Cytat: | pustej pozycji, która nie istnieje |
A właśnie istnieje! Gdyby nie istniała to byśmy w ogóle o niej nie pisali. Ja chciałem sprawdzić czy jest jakaś w pobliżu flagi.
Pytanie do wszystkich: Czy można napisać goto(pozycja x, y, z);? |
|
|
|
|
bbiidduull
Dołączył: 09 Lut 2009 Posty: 140
|
Wysłany: 25-01-2011, 21:01
|
|
|
Da się. Tworzysz zmienna typu point np point a.x=5,a.y=5,a.z=5;, potem ujmujesz tak: goto(a);. |
|
|
|
|
krzys_h
Twoja ulubiona misja: Wszystkie :)
Pomógł: 3 razy Wiek: 20 Dołączył: 12 Gru 2010 Posty: 255 Skąd: Łódź
|
Wysłany: 26-01-2011, 08:11
|
|
|
Nie wiem, ale u mnie działa jak wpisze goto(25, -25); |
|
|
|
|
Apus
Twoja ulubiona misja: 2 pierwsze na Wulkanii
Pomógł: 3 razy Wiek: 19 Dołączył: 09 Kwi 2010 Posty: 246 Skąd: ze wsi
|
Wysłany: 26-01-2011, 11:50
|
|
|
bbiidduull napisał/a: | Da się. Tworzysz zmienna typu point np point a.x=5,a.y=5,a.z=5;, potem ujmujesz tak: goto(a);. |
Czyli zmienne typu point służą do przechowywania współrzędnych? Jeśli tak, to właśnie tego potrzebowałem i próbowałem użyć do tego zmiennej typu object.
Czyli można zrobić tak:
Kod: | extern void object::Uran()
{
object a,b;
point c;
while(true);
{
a = radar(RedFlag);
b = search(UraniumOre,a.position):
if (b == null);
{
message("skończyła się ruda",DisplayWarning);
break;
}
goto(b.position);
grab();
a = radar(BlueFlag);
c = space(a.position,2,0,15);
if (c == null)
{
message("skończyło się wolne miejsce",DisplayWarning);
drop();
break;
}
goto(c);
drop();
}
message("program zakończony",DisplayInfo);
} |
|
|
|
|
|
|
|
| |
|
|
|
|
Polski Portal COLOBOTa © 2008 - 2012 |
|
|