Titanium Collector |
Wasza ocena |
Świetny |
|
60% |
[ 3 ] |
Przeciętny |
|
40% |
[ 2 ] |
Słaby |
|
0% |
[ 0 ] |
|
Głosowań: 5 |
Wszystkich Głosów: 5 |
|
|
|
Autor |
Wiadomość |
Mrocza
Twoja ulubiona misja: Swobodna na Ziemi
Pomógł: 4 razy Wiek: 26 Dołączył: 29 Sie 2011 Posty: 249 Skąd: Lublin
|
Wysłany: 29-08-2011, 12:16 Titanium Collector
|
|
|
To mój program. Co o nim sądzicie?
Titanium.txt Wersja w notatniku. |
Pobierz Plik ściągnięto 131 raz(y) 4,75 KB |
|
Ostatnio zmieniony przez Mrocza 02-12-2011, 16:36, w całości zmieniany 1 raz |
|
|
|
|
Berserker
Dark Ness
Twoja ulubiona misja: Ofrenia
Pomógł: 16 razy Wiek: 24 Dołączył: 24 Mar 2009 Posty: 496 Skąd: Bigos
|
Wysłany: 29-08-2011, 19:43
|
|
|
Nie chce mi sie calego komentowac bo generalnie jest dobrze, ale przydaloby sie nie wylaczac programu np kiedy rudy nie ma - co jesli korzystasz z kopalni i jeszcze nie wydobyla? |
_________________
|
|
|
|
|
Mrocza
Twoja ulubiona misja: Swobodna na Ziemi
Pomógł: 4 razy Wiek: 26 Dołączył: 29 Sie 2011 Posty: 249 Skąd: Lublin
|
Wysłany: 31-08-2011, 07:06
|
|
|
Poprawiłem już to o czym napisałeś, a dodatkowo dodałem możliwość uruchomienia programu z nieopróżnionym chwytakiem. Wyrzuciłem też zmienną err |
|
|
|
|
Berserker
Dark Ness
Twoja ulubiona misja: Ofrenia
Pomógł: 16 razy Wiek: 24 Dołączył: 24 Mar 2009 Posty: 496 Skąd: Bigos
|
Wysłany: 31-08-2011, 18:42
|
|
|
O, nawet jestes chetny by wdrazac w zycie komentarze
Warunek, zeby robot szedl sie ladowac przy sztywnej granicy nie ma wiele sensu, gdyz czasem ruda moze byc bardzo daleko i np. nie dojedziesz na polowie ogniwa, wiec fajnym pomyslem jest liczenie, czy warto sie ladowac.
Jestem ciekaw innych twoich programow, bo masz naprawde kilka fajnych pomyslow. |
_________________
|
|
|
|
|
Raptor
Clever Girl
Twoja ulubiona misja: Raptorowanie
Pomógł: 4 razy Wiek: 24 Dołączył: 26 Cze 2010 Posty: 432 Skąd: Isla Nublar
|
Wysłany: 31-08-2011, 20:53
|
|
|
Czyżby rodziła się konkurencja dla Ciebie Berserker? |
_________________ - Stężenie czekolady we krwi: 93‰
- Ja to bym zjadł jeszcze batona...
|
|
|
|
|
Berserker
Dark Ness
Twoja ulubiona misja: Ofrenia
Pomógł: 16 razy Wiek: 24 Dołączył: 24 Mar 2009 Posty: 496 Skąd: Bigos
|
Wysłany: 31-08-2011, 22:10
|
|
|
Moze sie doczekam drugiego pipoka, ktory umial mi wszystko wygarnac Ale czuje, ze bede wreszcie mial z kim dyskutowac. |
_________________
|
|
|
|
|
Mrocza
Twoja ulubiona misja: Swobodna na Ziemi
Pomógł: 4 razy Wiek: 26 Dołączył: 29 Sie 2011 Posty: 249 Skąd: Lublin
|
Wysłany: 31-08-2011, 23:06
|
|
|
Napisałem też program toważyszący dla drugiego robota, donosi on tylko rudę jak najbliżej huty wtedy robot z programem TitaniumCollector pracuje bardzo szybko. Testowałem cały układ przez 6 godzin dzięki programowi do niszczenia tytanu działem. Niestety na razie nie mogę wrzucić bo nie mam neta na kompie (pisze z avilli).
"towarzyszący", nie moglem sie powstrzymac //Berek |
Ostatnio zmieniony przez Berserker 31-08-2011, 23:16, w całości zmieniany 1 raz |
|
|
|
|
Berserker
Dark Ness
Twoja ulubiona misja: Ofrenia
Pomógł: 16 razy Wiek: 24 Dołączył: 24 Mar 2009 Posty: 496 Skąd: Bigos
|
Wysłany: 31-08-2011, 23:21
|
|
|
Ja lubie miec w bazie do kazdej funkcji po jednym robocie (tytan, ogniwa nuklearne, ogniwa elektryczne i inne), wiec ten robot musialby dla mnie maksymalnie w terenie pracowac - miec odpowiednie reakcje na obecnosc zagrozenia etc. |
_________________
|
|
|
|
|
Mrocza
Twoja ulubiona misja: Swobodna na Ziemi
Pomógł: 4 razy Wiek: 26 Dołączył: 29 Sie 2011 Posty: 249 Skąd: Lublin
|
Wysłany: 31-08-2011, 23:47
|
|
|
Chodzi ci o uciekanie przed mrówkami? Nie mam wpływu na robota jeżeli przemieszcza się z punktu A do punktu B używając instrukcji goto. prościej byłoby zaprogramować robota obronnego dla transporterów. |
|
|
|
|
Berserker
Dark Ness
Twoja ulubiona misja: Ofrenia
Pomógł: 16 razy Wiek: 24 Dołączył: 24 Mar 2009 Posty: 496 Skąd: Bigos
|
Wysłany: 01-09-2011, 12:37
|
|
|
Myslalem o wczesniejszym sprawdzeniu, czy jest w poblizu zagrozenie i jesli jest nie podejmowac w ogole zadnych dzialan, tylko np. za pomoca klas wyslac robota ktory by je zneutralizowal (np oslaniacz). |
_________________
|
|
|
|
|
Mrocza
Twoja ulubiona misja: Swobodna na Ziemi
Pomógł: 4 razy Wiek: 26 Dołączył: 29 Sie 2011 Posty: 249 Skąd: Lublin
|
Wysłany: 02-09-2011, 16:17
|
|
|
To jest nowa wersja mojego programu wraz ze wspomagaczem i prostą obroną.
[ Dodano: 04-09-2011, 12:43 ]
Nadszedł wrzesień. Forum zamilkło.
Titanium_v2.txt Druga wersja programu. |
Pobierz Plik ściągnięto 60 raz(y) 5,43 KB |
Titaore.txt Program wspomagający. |
Pobierz Plik ściągnięto 46 raz(y) 3,76 KB |
GrabersDefender.txt wersja BETA |
Pobierz Plik ściągnięto 53 raz(y) 1,3 KB |
|
|
|
|
|
Berserker
Dark Ness
Twoja ulubiona misja: Ofrenia
Pomógł: 16 razy Wiek: 24 Dołączył: 24 Mar 2009 Posty: 496 Skąd: Bigos
|
Wysłany: 25-09-2011, 14:23
|
|
|
Ostatnio nie mam czasu i checi by siedziec w Colobocie, ale chetnie kiedys przejrze twoje programy. |
_________________
|
|
|
|
|
Mrocza
Twoja ulubiona misja: Swobodna na Ziemi
Pomógł: 4 razy Wiek: 26 Dołączył: 29 Sie 2011 Posty: 249 Skąd: Lublin
|
Wysłany: 25-09-2011, 17:05
|
|
|
Dzięki za zainteresowanie. Osobiście też ostatnio nie grałem w ColoBoT'a.
[ Dodano: 01-12-2011, 17:55 ]
Kod: |
// TitaniumCollector 01.12.11
// Created by MROCZA
extern void object::TitaniumCollector()
{
object item; // deklaracje zmiennych
object convert;
point flag (0,0);
int i = 0;
errmode(0); // błędoodporność
convert = radar(Converter); // znajdź chutę
if ( convert == null ) // jeśli jej nie ma
{
message("Brak huty",DisplayError); // wyświetl wiadomość
return; // i przerwij program
}
recharge(); // naładuj się
while (true) // powtarzaj w nieskończoność
{
if(load == null or load.category != TitaniumOre) // jeśli nie trzymasz rudy
{ // lub nie trzymasz nic
if(load != null and load.category != TitaniumOre) // jeśli to co trzymasz
{ // nie jest rudą
goto(space(position)); // idź na wolne miejsce
drop(); // i zostaw to
}
while(true) // powtarzaj w pętli
{
item = radar(TitaniumOre); // szukaj rudy
if ( item != null ) break; // jeśli znajdziesz kontynuuj
if ( i % 100 == 0 ) message("Nie znaleziono więcej tytanu");
i++ ; // jeśli nie znajdziesz
wait(0.1); // po prostu czekaj
}
if(goto(item.position) == 211) // udaj się do rudy
{
message("Ruda niedostępna",DisplayError); // jeśli się nie da
return; // przerwij program
}
if( grab() != 0 ) continue; // podnieś tę rudę, jeśli nie ma czego podnieść
} // szukaj od nowa
while(true)
{
if (goto(convert.position) == 000 ) break; // zanieś rudę do huty
if (goto(convert.position) == 212 ) continue; // jeśli się nie da
message("Huta niedostępna",DisplayError); // wyświetl wiadomość
return; // i przerwij program
}
errmode(1); // teraz uwaga na błędy!
item = radar(Titanium,0,59,0,3); // szukaj tytanu w hucie
if ( item == null ) // jeśli go tam nie ma
{
drop(); // zostaw tę rudę
move(-2); // dosuń się
wait(10); // i zaczekaj
}
else // jeśli jest tam tytan
{
turn(60); // obróć się w prawo //
drop(); // upuść rudę /
turn(-60); // obróć się w lewo //
grab(); // podnieś tytan //
turn(-60); // obróć się w lewo ///
drop(); // upuść go /// wymień tytan na rudę
turn(120); // obróć się w prawo ///
grab(); // podnieś rudę //
turn(-60); // obróć się w lewo //
drop(); // upuść rudę /
turn(-60); // obróć się w lewo //
grab(); // podnieś tytan
errmode(0); // błędoodporność
if ( flag.x == 0 ) // jeśli wcześniej nie określono punktu składowania
{
goto(space(position,6,50,6)); // znajdź wolne miejsce
flag = position; // i ustal ten punkt
}
else // jeśli punkt składowania już istnieje
{
while(goto(flag) == 212) wait(1); // idź do niego
}
stock(); // składuj tytan
}
recharge(); // naładuj się
}
}
///////////////////////////////////////////////////////////////////////////
void object::recharge()
{
object item;
errmode(0);
if (energyCell.category == PowerCell)
{
if ( energyCell.energyLevel < 0.3 )
{
item = radar(PowerStation);
if(item != null)
{
while(true)
{
if (goto(item.position) == 000 ) break;
if (goto(item.position) == 212 ) continue;
message("Stacja energetyczna niedostępna",DisplayError);
return;
}
while( energyCell.energyLevel < 1 ) wait(0.1);
}
}
}
else
{
if ( energyCell.energyLevel < 0.05 )
{
float min = 0;
int i = 0;
while (true)
{
item = radar(NuclearCell,0,360,min,1000);
while(true)
{
if ( item != null ) break;
if ( i % 100 == 0 ) message("Nie znaleziono więcej ogniw atomowych");
item = radar(NuclearCell);
i++ ;
wait(0.1);
}
if (item.energyLevel >= 0.5) break;
min = distance (item.position, position) + 0.02;
}
while(true)
{
if (goto(item.position) == 000 ) break;
if (goto(item.position) == 212 ) continue;
message("Ogniwo atomowe niedostępne",DisplayError);
return;
}
errmode(1);
grab (InFront);
goto (space(position));
drop (Behind);
grab (EnergyCell);
drop (InFront);
grab (Behind);
drop (EnergyCell);
}
}
}
//////////////////////////////////////////////////////////////////////
void object::stock()
{
object item;
float angle;
int i, j;
point flag (0,0);
errmode(1);
item = radar(Converter);
if(direction(item.position) > 0)
{
turn(direction(item.position)-180);
}
else
{
turn(direction(item.position)+180);
}
jet(1);
wait(0.5);
move(4);
jet(-1);
wait(0.6);
errmode(0);
while(true)
{
angle = 0;
if(category == WingedGrabber) j=9;
else j=7;
for(i=0; i<j; i++)
{
if( i % 2 == 0 )
{
item = radar(Titanium,angle,30,0,3);
if ( item == null )
{
turn(angle);
while(drop() == 106) wait(0.1);
turn(-180 - angle);
if(j == 7) move(3);
return;
}
angle = angle / -1 + 40;
}
else
{
item = radar(Titanium,angle,30,0,3);
if ( item == null )
{
turn(angle);
while(drop() == 106) wait(0.1);
turn(180 - angle);
if(j == 7) move(3);
return;
}
angle = angle / -1;
}
}
}
}
//////////////////////////////////////////////////////////////////////
|
Oto program z poprawkami.
[ Dodano: 02-12-2011, 07:07 ]
Teraz tak czytam i widzę parę niedociągnięć:
W funkcji stock() chyba niepotrzebnie dodałem zmienną point flag.
W jednej z pętli if nie potrzebnie dodałem and load.category =! TitaniumOre.
Dlaczego nikt się nie zainteresuje? |
|
|
|
|
Berserker
Dark Ness
Twoja ulubiona misja: Ofrenia
Pomógł: 16 razy Wiek: 24 Dołączył: 24 Mar 2009 Posty: 496 Skąd: Bigos
|
Wysłany: 02-12-2011, 11:17
|
|
|
Dzisiaj po 21 może go uruchomie, wiec możesz się cieszyc;) |
_________________
|
|
|
|
|
Knight_in_Fire
Wiek: 27 Dołączył: 29 Sie 2010 Posty: 19 Skąd: Rybnik
|
Wysłany: 02-12-2011, 18:49
|
|
|
W stosunku do wbudowanych programów jest na pewno lepszy, szuka konkretnego miejsca na tytan, tworząc takie kwiatuszki tytanowe. Testowałem na czwartej misji Nowej Ziemi. |
|
|
|
|
|