Algrytm na życie :)
Wersja 0.1
$dziewczyny = ludzie::szukaj('plec = \'female\'');
foreach($dziewczyny as $dziewczyna) {
if ($ja->sprawdz( $dziewczyna )) {
$ja->zakochaj_sie( $dziewczyna );
break;
}
}
Wersja 0.2 (pomógł dunDer)
$dziewczyny = ludzie::szukaj('plec = \'female\'');
foreach($dziewczyny as $dziewczyna) {
if ($ja->sprawdz_kryteria( $dziewczyna )) {
// jesli ma chlopaka...
if ( $dziewczyna->chlopak ) {
try { $ja->wyeliminuj( $dziewczyna->chlopak ); } // .. to probujemy pozbyc się jej chłopaka
catch (Exception $e) { continue; } // jesli sie nie uda, to szukamy następnej...
}
// probojemy sie zakochac
try {
$ja->zakochaj_sie( $dziewczyna );
$ja->dziewcznyna = & $dziewczna; // przypisanie obiektu :)
if (defined('SLUB') && $ja->chce_slubu && $ja->dziewczyna->chce_slubu) {
$ja->slub($ja->$dziewczyna);
$ja->dziewczyna->slub($ja);
}
} catch (NieszczesliwaMilosc $e) {
// sprawdzamy kod bledu:
switch ($e->getCode) {
case 2: $ja->przerwa(14*24*3600); break; // robimy sobie przerwe na 2 tygodnie
/* ... */ // lista innych przypadkow
case 404: $ja->kill(); break; // w ostatecznosci... zabijamy sie ;)
default: continue;
} // eof try{}
if ($ja->szczesliwy && $ja->dziewczyna->szczesliwa) {
break; // nie szukamy dalej :D
} else {
// a jesli nie...
$ja->dziewczyna = null;
continue; // szukamy następnej...
}
}
break; // nie szukamy dalej :D
}
}
Komentarze
hmm a co jesli warunek sprawdzi sie dla dziewczyny>1 albo dziewczyny<1? - ja bym wykluczyl takie mozliwosci w kodzie :P
Ja jako obiekt mam w sobie funkcję sprawdź, która jako argument przyjmuje dziewczynę i zwraca po prostu wynik - tak, albo nie. Potem już kolejna funkcja, a raczej procedura 'zakochaj_sie'. 'break' jest po to, zeby nie szukac juz nastepnej jak jest jedna.
Napisalem ten kod podczas rozmowy na gg z kumplem.
a no racja ... mam male czcionki w morskiej malpie i dlatego nie zauwazylem :P
brakuje tylko przed break :
$ja->wyeliminuj_chlopaka($dziewczyna);
$ja->wyeliminuj_konkurencje($dziewczyna);
if ($ja->spraw_by_odwzajemnila_uczucie($dziewczyna)) { break; } else { $ja->destroy(); }
Heh dobre :)
tylko w tym pierwszym bym zmienil na:
if ( $dziewczyna->chlopak ) $ja->wyeliminuj( $dziewczyna->chlopak );
Moj kod jest bardzo uproszczony i w wersji 0.1, który można w nieskończoność rozszerzać. Całość na GNU/GPL, więc jeśli masz ochotę, to możesz go doskonalić wedle uznania :)
no tak ... ja mysle ze to co podales to w wersji Enterprise, bo w wersji Lite wystarczy jak jest biorac pod uwage to ze bardzo czesto ta trafiona ma $dziewczyna->chlopak = true. No to teraz na sourceforge do SVN :P hehe
to jeszcze pierwsza linijke mojego kodu zmienie:
$dziewczyny = ludzie::szukaj("plec = 'female' AND chlopak = NULL");
ale nie nie ... bo teraz eliminujesz za duzo prawdziwych wynikow dla $ja->spradz($dziewczyna) :/
@dunDer - no wlasnie nie. Z ludzi wyszukuje wolne dziewczyny, a potem dla każdej sprawdzam czy spelnia moje kryteria. Jeszcze powinienem je posortowac wg. ilosci spelnianych kryteriow :D
ale po co tylko wolne? czasami zajete sa lepsze, wiec lepiej wszystkie a pozniej wyeliminowac chlopaka :P hehe
hmm juz wiem! mozna to rozwiazac komendami z linii polecen:
usage: girlfinder [--wolne] [--brute-force]
:D
Choroba zawodowa? :D
@Matt - majaczenie na jawie prędzej ;). A jeszcze kolosa z infy rano po tej notce milałem.
ratujmy go ! to nasz kolega ! lol ...

