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
CBot Game
Autor Wiadomość
krzys_h 


Twoja ulubiona misja: Wszystkie :)
Wiek: 20
Dołączył: 12 Gru 2010
Posty: 255
Skąd: Łódź
  Wysłany: 14-01-2011, 17:44   CBot Game

Chciałbym zaproponować nową zabawę. Polega ona na tym, że jedna osoba daje zadanie na zaprogramowanie robota, a inni je rozwiązują. Osoba która zadała zadanie weryfikuje programy. Po podaniu prawidłowej odpowiedzi daje on swoje rozwiązanie. Następnie swoje zadanie daje osoba, która jako pierwsza odpowiedziała poprawnie. Jeśli nie da swojego zadania w ciągu 24 godzin, każy może dać swoje zadanie. I wszystko zaczyna się od początku...
Dobra, no to daję pierwsze zadanie:
CBOT GAME #1
Używając klas zaprogramuj dwa roboty latające, aby po uruchomieniu programu W OBU robotach wyświetliły wiadomość i KOLEJNO wzniosły się na wysokość 20 m n. p. m.
 
 
     
Berserker 
Dark Ness


Twoja ulubiona misja: Ofrenia
Wiek: 24
Dołączył: 24 Mar 2009
Posty: 496
Skąd: Bigos
Wysłany: 15-01-2011, 17:58   

Moj sokoli wzrok wreszcie zauwazyl ten temat.
Kod:
public class ness
{
int id = 0;
static int m = 1;
static int n = 0;
int ness()
{
n++;
id = n;
}

}
public void object::Fly()
{
int max = 2;
wait(rand()*3);
ness test();
while(test.n < max) wait(0.1);
message("");
while(test.m != test.id) wait(0.1);
jet(1);
while(position.z < 20) wait(0.1);
jet(0);
test.m++;
}

Zmienna max definiuje, ile robotow latajacych chcesz uzyc.
_________________
 
 
     
krzys_h 


Twoja ulubiona misja: Wszystkie :)
Wiek: 20
Dołączył: 12 Gru 2010
Posty: 255
Skąd: Łódź
Wysłany: 15-01-2011, 20:36   

Trochę naciągnięte, ale zaliczę ;) Twój program ma błąd a mianowicie:
Kod:
public void object::Fly()

zamiast:
Kod:
extern void object::Fly()


A moje rozwiązanie wygląda tak:
Kod:
extern void object::Lot()
{
   
    KlasaLot klasa();
    while(klasa.botsready < klasa.maxbots) wait(0.01);
    message("Przygotowani!"); //To możesz usunąć w drugim robocie dla lepszego efektu
    while(klasa.current != klasa.id) wait(0.01);
    message(category+" startuje!");
    jet(1);
    while(position.z < topo(position)+10) wait(0.01);
    jet(0);
    klasa.current++;
    klasa.botsready--;
    while(klasa.botsready > 0) wait(0.01);
    message("KONIEC"); //To też możesz usunąć w drugim robocie
    jet(-1);
    while(position.z > topo(position)) wait(0.01);
    jet(0);
   
}

//Wszystko co dalej napisane musisz usunąć w drugim robocie!!! (mogłeś na to zwrócić uwagę)
public class KlasaLot {
    static public int botsready = 0;
    static public int current = 1;
    int id;
    //Ustawienia:
    static public int maxbots = 2;
    //Koniec ustanien
   
    void KlasaLot() {
        id = ++botsready;
    }
}


Teraz ty dajesz zadanie.
 
 
     
Berserker 
Dark Ness


Twoja ulubiona misja: Ofrenia
Wiek: 24
Dołączył: 24 Mar 2009
Posty: 496
Skąd: Bigos
Wysłany: 15-01-2011, 21:48   

@up
Bo ja nie dalem programu, tylko po prostu gotowa funkcje do wklejenia na kazdym robocie ktorego chcesz uzyc :D . Na docelowych robotach wklejasz:
Kod:
Fly();
I masz

2 roboty orbitujace wokol jednego punktu po okregu, maja sie poruszac w tym samym kierunku i maja zawsze byc po przeciwnych stronach tego punktu :)
_________________
 
 
     
Wyświetl posty z ostatnich:   

Wersja do druku

Skocz do:  

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