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
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); :lol:
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);
}
 
     
Wyświetl posty z ostatnich:   

Wersja do druku

Skocz do:  

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