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
Przesunięty przez: Schocker
20-02-2010, 21:32
Nieprzydatny program - Rejestrator wysokości
Autor Wiadomość
bbiidduull 


Dołączył: 09 Lut 2009
Posty: 140
Wysłany: 13-02-2009, 11:27   Nieprzydatny program - Rejestrator wysokości

Witam. Zrobiłem sobie ten program z nudów i moze komuś się przyda lecz w to wątpię. Rejestruje on największą , najmniejszą i średnia wysokość,. Potrzeba aby go uruchomić robota "matke" albo jak kto woli maciore :) , robota któremu sprawdzamy wysokość tzn rejestrujemy i stacje przekaźnikową. Zarejestrowaną najwyższą wysokość, i najniższą oraz średnią możecie zobaczyć gdzie ? Oczywiście w stacji przekaźnikowej. Pozdrawiam all

Kod:
extern void object::Rejestrator_Wys()
{
    // Rw - Rejestrator wysokosci rejestruje najwyzsza, najnizsza i srednia wysokosc robota
   
    object  robot,stacja;                  // potrzeba do programu
    float wys,daneW,daneN;                 // stacje przekaznikowa
                                           // robota matke i robota ktoremu sprawdzamy wysokosc
    point sta;                               
    stacja = radar(ExchangePost);       
    while(stacja == null)                 
    {
        message("Wybuduj Stację przekaźnikową informacji !!!",DisplayError);
        return;                         
    }
    send("Najwyżej",-999,100000);           
    send("Najniżej",999,100000);
    robot = radar(WingedSniffer); //tu wpisujemy nazwe robota któremu sprawdzamy wysokosc
    while(robot == null)
    {
        message("Nie ma takiego robota !!!",DisplayError);
        return;
    }
    while (true)
    {
        while(robot != null)
        {
            wys = robot.position.z;                     
            daneW = receive("Najwyżej",100000);         
            daneN = receive("Najniżej",100000);           
            message("Wysyłam Dane... Wysokość to: "+wys+" metrów",DisplayInfo);
            if (wys > daneW)                         
            {
                send("Najwyżej",wys,100000);       
            }
            else
            {
                if (wys < daneN)               
                {
                    send("Najniżej",wys,100000);
                }
            }
            send("Wys.średnia",(daneW+daneN)/2,100000);
        }
        message("Straciłem robota z radaru",DisplayError);
        return;
    }
}


Program także w załączniku

Rw.txt
Pobierz Plik ściągnięto 54 raz(y) 1,43 KB

 
     
Abadon 
Administrator forum
Administrator


Pomógł: 3 razy
Dołączył: 11 Sie 2008
Posty: 586
Wysłany: 13-02-2009, 14:44   

Hmm nieprzydatny program?...
a właściwie że przydatny (tak to byś z nudów nic nie tworzył czegoś co jest nieprzydatne). Program przyda się zapewnie przy tworzeniu Colobota 2, kiedy np. będzie potrzebna informacja na temat wysokości na której można stwierdzić wysokość "wzgórz" na mapach.
_________________

 
     
bbiidduull 


Dołączył: 09 Lut 2009
Posty: 140
Wysłany: 13-02-2009, 15:00   

No to mi kamień spadł z serca. Mam jeszcze program ze robot staje obok tytanu i jedzie do stacji przekaźnikowej i pokazuje czas w jakim przebył droge i zapisuje najlepszy wynik. :) Taki o śmiechowy
 
     
Abadon 
Administrator forum
Administrator


Pomógł: 3 razy
Dołączył: 11 Sie 2008
Posty: 586
Wysłany: 13-02-2009, 15:03   

Hmm to też jest przydatne, w Coloboce 2 można zrobić wyścigi zatem :mrgreen: :lol: .
_________________

 
     
DeiDara 
Derosa out.


Twoja ulubiona misja: Wszystkie z Wulkani
Pomógł: 2 razy
Wiek: 21
Dołączył: 23 Lip 2008
Posty: 205
Skąd: Włocławek
Wysłany: 13-02-2009, 22:08   

no fajnie to by wyglądało
_________________
An open mind is like a fortress with its gates unbarred and unguarded.
 
 
     
colobotwymiiata 
Zjem cię


Twoja ulubiona misja: Swobodna na Krystalii
Pomógł: 6 razy
Wiek: 20
Dołączył: 02 Lut 2009
Posty: 329
Skąd: Oleśnica
Wysłany: 20-02-2009, 23:31   

A skoro mierzymy już czas i wysokość, daj program , co mierzy prędkość, żeby było do kompletu(to nie sarkazm-program się przyda).
 
 
     
bbiidduull 


Dołączył: 09 Lut 2009
Posty: 140
Wysłany: 20-03-2010, 15:00   

Pomyślimy i jak coś to dam na forum

[ Dodano: 17-03-2010, 23:52 ]
Jako że było się młodym i głupim :) postanowiłem naprawić swoje błędy popełnione za młodu. Tak więc powstała druga wersja tego programu a dokładnie Rec_WysV2 :D Miłej zabawy.

Kod:
extern void object::Rec_WysV2()
{
file handle();
object robot,alien;
float nW,nM,nWg,nMg,sPal,ePal,sOsl,eOsl;
int sTime,eTime,time,timeend,starttime,bb,cc;
point a,nWp,nMp;
int ant[5];
ant[0] = AlienWorm;           
ant[1] = AlienAnt;         
ant[2] = AlienSpider;       
ant[3] = AlienWasp;         
ant[4] = AlienQueen;
nWg=-999;nW=-999;nM=999;time=0;nMg=999;
handle.open("Rejestrator wysokości - dane.txt", "w");

timeend=4; // <------------- po ilu sekundach ma sie wyłaczyc program gdy robot się nie porusza
           // <------------- mozna wpisać tylko liczby parzyste !
robot=radar(WingedGrabber);
sPal=robot.energyCell.energyLevel;
sOsl=robot.shieldLevel;
starttime=lifeTime;
while(true)
{
robot=radar(WingedGrabber);  //  <-------------robot któremu sprawdzamy wysokość
alien=radar(ant);
if(robot==null)
{
message("Ups... nie odnalazłem robota...");
return;
}
if(timeend%2!=0)
{
message("Zmienna timeend przyjmuje tylko liczby parzyste!");
return;
}
if(robot.energyCell.energyLevel<0.2)
{
message("Zaleca się zakonczenia pomiaru ze wzgledu na");
message("niski poziom energii (<20%)");
}
if(robot.shieldLevel<0.2)
{
message("Zaleca się zakonczenia pomiaru ze wzgledu na ");
message("niski poziom osłony (<20%)");
}
if(distance(robot.position,alien.position)<60)
{
message("Zaleca się zakonczenia pomiaru ze wzgledu na");
message("zbliżajace się obce organizmy w promieniu <60 metrów.");
}
if(robot.position.z-topo(robot.position)>nW)
{
nW=robot.position.z;
nWp=robot.position;
nWg=robot.position.z-topo(robot.position);
}
if(robot.position.z-topo(robot.position)<nM)
{
nM=robot.position.z;
nMp=robot.position;
nMg=robot.position.z-topo(robot.position);
}
message("Aktualna wysokość: "+robot.position.z);
sTime=lifeTime;
wait(2);
eTime=lifeTime;
a=robot.position;
wait(0.01);
if(a.x == robot.position.x and a.y==robot.position.y)
{
if(sTime+2==eTime) time=time+1;
if(time==timeend/2)
{
message("Zakończono działanie programu.");
message("Zajrzyj do folderu FILES gry COLOBOT aby zobaczyć wyniki");
break;
}
}
}
ePal=robot.energyCell.energyLevel;
eOsl=robot.shieldLevel;
bb=(lifeTime-starttime)/60;
cc=(lifeTime-starttime)%60;
handle.writeln("Największa zarejestrowana wysokość:");
handle.writeln("->nad poziomem morza: "+nW+" m     Pozycja: X="+nWp.x+"  Y="+nWp.y);
handle.writeln("->nad poziomem gruntu: "+nWg+" m");
handle.writeln("");
handle.writeln("Najmniejsza zarejestrowana wysokość:");
handle.writeln("->nad poziomem morza: "+nM+" m     Pozycja: X="+nMp.x+"  Y="+nMp.y);
handle.writeln("->nad poziomem gruntu: "+nMg+" m");
handle.writeln("");
handle.writeln("Czas testu: "+bb+":"+cc+" minut:sekund");
handle.writeln("Zużyta energia podczas testu: "+(sPal-ePal)*100+"%");
handle.writeln("Uszkodzenie osłony : "+(sOsl-eOsl)*100+"%");
handle.close();
}
 
     
Wyświetl posty z ostatnich:   
Nie możesz pisać nowych tematów
Możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum

Wersja do druku

Skocz do:  

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