Algorytm łączący warunki instrukcji w przy...
Gość_21977_* 30.08.2012
Witam,
Czy ktoś z Was zna algorytm na łączenie warunków instrukcji (najlepiej w PHP) w jakiejś przyzwoitej złożoności?
Mam na myśli łączenie warunków w bloki, np. zamiast
Czy ktoś z Was zna algorytm na łączenie warunków instrukcji (najlepiej w PHP) w jakiejś przyzwoitej złożoności?
Mam na myśli łączenie warunków w bloki, np. zamiast
if(gRound>=1){uzyskać połączone warunki, tj. przykładowo
give_item(id, "weapon_hegrenade");
}
if(gRound>=2 && gRound<=3){
give_item(id, "weapon_flashbang");
}
if(gRound<=2){
give_item(id, "weapon_smokegrenade");
}
if(gRound>=2 && gRound<=4 && get_user_team(id)==2){
give_item(id, "item_thighpack");
}
if(gRound<=2){
give_item(id, "item_nvgs");
}
if(gRound>=1){
give_item(id, "weapon_hegrenade");
}
if(gRound<=2){
give_item(id, "weapon_smokegrenade");
give_item(id, "item_nvgs");
}
if(gRound>=2){
if(gRound<=3){
give_item(id, "weapon_flashbang");
}
if(gRound<=4 && get_user_team(id)==2){
give_item(id, "item_thighpack");
}
}
MarWit
30.08.2012
Dla tego konkretnego przypadku można to zrobić tak:
switch( true )
{
case( gRound >= 1 ): give_item( id, "weapon_hegrenade" )
case( gRound <= 2 ): {
give_item( id, "weapon_smokegrenade" );
give_item( id, "item_nvgs" );
}
case( gRound <= 3 ): give_item(id, "weapon_flashbang");
case( gRound <= 4 ): if( get_user_team( id ) == 2 ) give_item( id, "item_thighpack" );
}
Gość_21977_* 31.08.2012
Ogólnie chodzi mi o algorytm, który by wybierał odpowiednie warunki i je łączył w przyzwoitym czasie, bo na razie wyskrobałem funkcje klasy, które generują taki kod:
I tutaj tkwi problem, a raczej w optymalizacji kodu / zastosowaniu innego algorytmu.
A oto kod PHP:
I dokumentacja:
if(gRound>=1){Jak widać, niestety, warunek gRound>=2 jest podwójnie, niepotrzebnie powtórzony.
give_item(id, "weapon_hegrenade");
}
if(gRound<=3 && gRound>=2){
give_item(id, "weapon_flashbang");
}
if(gRound<=2){
give_item(id, "item_nvgs");
give_item(id, "weapon_smokegrenade");
}
if(gRound<=4 && gRound>=2 && get_user_team(id)==2){
give_item(id, "item_thighpack");
}
I tutaj tkwi problem, a raczej w optymalizacji kodu / zastosowaniu innego algorytmu.
A oto kod PHP:
Spoiler
I dokumentacja:
Spoiler
Portek
31.08.2012
Nie ma chyba czegoś takiego, bo jak niby to miało by wyglądać? Switch w tym wypadku to właściwie ten zapis, przy użyciu innej funkcji, aczkolwiek chyba jako jedyny jako tako spełnia Twoje wymagania.
Gość_21977_* 31.08.2012
W takim razie chyba nie ma co się nad tym rozwlekać.
Dzięki za odpowiedź.
Dzięki za odpowiedź.
MarWit
31.08.2012
Możecie jeszcze skorzystać z rejestru flag. Chyba byłoby to optymalniejsze.