Zmud pomoc
Re: Zmud pomoc
OMG!
A myslalem, ze ja glupie skrypty wymyslam...
wez monety z sakiewki
wez monety z plecaka
liczbamonet = 0
policz miedziane monety
miedziakiON
doliczyles sie XX miedzianych monet
miedziaki off
policz srebrne monety
srebrneON
doliczyles sie XX srebrnych monet
srebrne x 12(?) <- nie wiem
srebrne + miedziaki = liczbamonet
srebrne off
itp
...
zapakuj monety do pojemnika
liczbamonet - wydatek = liczbamonet
echo liczbamonet
TA DA !!
A myslalem, ze ja glupie skrypty wymyslam...
wez monety z sakiewki
wez monety z plecaka
liczbamonet = 0
policz miedziane monety
miedziakiON
doliczyles sie XX miedzianych monet
miedziaki off
policz srebrne monety
srebrneON
doliczyles sie XX srebrnych monet
srebrne x 12(?) <- nie wiem
srebrne + miedziaki = liczbamonet
srebrne off
itp
...
zapakuj monety do pojemnika
liczbamonet - wydatek = liczbamonet
echo liczbamonet
TA DA !!
Tęczowe serce...
- Herenvarno
- Posty: 809
- Rejestracja: 09 mar 2010 11:22
Re: Zmud pomoc
Przy trzech tysiącach+ monet, mój skrypt jest szybszy o niebo od twego pomysłu.
Gdyby zależało mi na czasochłonnym liczeniu, stojąc jednocześnie w miejscu, pewnie stosowałbym to rozwiązanie.
Jedyna potrzeba zliczania na ten sposób monet, jest dla mnie przeliczenie kasy po treningach.
Gdyby zależało mi na czasochłonnym liczeniu, stojąc jednocześnie w miejscu, pewnie stosowałbym to rozwiązanie.
Jedyna potrzeba zliczania na ten sposób monet, jest dla mnie przeliczenie kasy po treningach.
Nie każdy jest mile widziany w moim domu. Gdybym wszystkich traktował jednakowo, nikogo nie wyróżniłbym!
Re: Zmud pomoc
Jedyne optymalne co mi przychodzi do głowy to:
1 etap:
- wydajesz wszystkie miedziaki aż spłacisz należność
jeśli nie wystarczyło
- wydajesz wszystkie srebrne aż spłacisz należność
jeśli nie wystarczyło
- wydajesz wszystkie złote aż spłacisz należność
jeśli nie wystarczyło
- wydajesz wszystkie mithrylowe aż spłacisz należność
2 etap:
obliczasz różnicę pomiędzy tym co zapłaciłeś a ceną (np ujednoliconą w miedziakach) i robisz modulo na nominały
edit:
no i potem dodajesz to do swoich ilości monet, które wcześniej pomniejszyłeś o to ile jakich wydałeś przed otrzymaniem reszty
1 etap:
- wydajesz wszystkie miedziaki aż spłacisz należność
jeśli nie wystarczyło
- wydajesz wszystkie srebrne aż spłacisz należność
jeśli nie wystarczyło
- wydajesz wszystkie złote aż spłacisz należność
jeśli nie wystarczyło
- wydajesz wszystkie mithrylowe aż spłacisz należność
2 etap:
obliczasz różnicę pomiędzy tym co zapłaciłeś a ceną (np ujednoliconą w miedziakach) i robisz modulo na nominały
edit:
no i potem dodajesz to do swoich ilości monet, które wcześniej pomniejszyłeś o to ile jakich wydałeś przed otrzymaniem reszty
- Herenvarno
- Posty: 809
- Rejestracja: 09 mar 2010 11:22
Re: Zmud pomoc
W ten sposob dziala moj skrypt, w petlach %while.
Jak wspomnialem, jest to baaaardzo "zasobozerny" sposob, moze dlatego, ze liczac od srebrnych w "gore", odejmuje po jednej monecie - na poczatku srebrnej, az do wyczerpania itp.
Spowodowane jest to tym, ze kazdy rodzaj monet posiada inna wartosc w miedziakach, i nie jest to system dziesietny. Dlatego zapytalem, czy ktos ma pomysl na "zgrabne rozwiazanie".
Chyba wpadlem na pomysl jak to rozwiazac. Na chwile obecna zawieszam temat. Jesli bedzie dzialalo zgodnie z przewidywaniami, poinformuje jak to zrobilem.
Dziekuje wszystkim za chec pomocy.
Jak wspomnialem, jest to baaaardzo "zasobozerny" sposob, moze dlatego, ze liczac od srebrnych w "gore", odejmuje po jednej monecie - na poczatku srebrnej, az do wyczerpania itp.
Spowodowane jest to tym, ze kazdy rodzaj monet posiada inna wartosc w miedziakach, i nie jest to system dziesietny. Dlatego zapytalem, czy ktos ma pomysl na "zgrabne rozwiazanie".
Chyba wpadlem na pomysl jak to rozwiazac. Na chwile obecna zawieszam temat. Jesli bedzie dzialalo zgodnie z przewidywaniami, poinformuje jak to zrobilem.
Dziekuje wszystkim za chec pomocy.
Nie każdy jest mile widziany w moim domu. Gdybym wszystkich traktował jednakowo, nikogo nie wyróżniłbym!
Re: Zmud pomoc
W porządku. Ale znając cenę, możesz przedstawić ją w miedziakach. Odejmujesz tyle ile masz. Resztę dzielisz przez 12 i zaokrąglasz w górę (tyle brakuje srebra). Odejmujesz ile masz i resztę dzielisz przez 20 znów zaokrąglając w górę (tyle brakuje złota). To samo z mithrylem. W drugą stronę robisz to samo tylko rozdzielasz po nominałach to co zapłaciłeś z nadwyżką.
Masz 8 warunków z 8 sumami. Bez żadnej pętli.
edit up: powodzenia
Masz 8 warunków z 8 sumami. Bez żadnej pętli.
edit up: powodzenia
- Herenvarno
- Posty: 809
- Rejestracja: 09 mar 2010 11:22
Re: Zmud pomoc
Kod: Zaznacz cały
#Math Miedz_Mith {@VMith*24000}
#Math Miedz_Gold {@VGold*240}
#Math Miedz_Silv {@VSilver*12}
#if (@VMiedz<@Naleznosc) {
#math VMiedz {@VMiedz+@Miedz_Silv}
#var Miedz_Silv {0}
#if (@VMiedz<@Naleznosc) {
#math VMiedz {@VMiedz+@Miedz_Gold}
#var Miedz_Gold {0}
}
#if (@VMiedz<@Naleznosc) {
#math VMiedz {@VMiedz+@Miedz_Mith}
#var Miedz_Mith {0}
}
#if (@VMiedz<@Naleznosc) {
#ec "Blad w obliczeniach, przelicz w tradycyjny sposob"
} {
#Math VMith {%eval(@Miedz_Mith*24000)}
#Math VGold {%eval(@Miedz_Gold*240)}
#Math VSilv {%eval(@Miedz_Silver*12)}
#VMiedz {@VMiedz-@Naleznosc}
; ponizej alias przeliczajacy miedziaki na najwyzsze nominaly.
; zwracajacy wynik Math_NOMINAL= ilosc sztuk
Przelicz_Na_Najwyzszy_Nominal @VMiedz
#Math VMith {@Math_Mith+@VMith}
#Math VGold {@Math_Gold+@VGold}
#Math VSilv {@Math_Silv+@VSilv}
#Var VMiedz {@Math_Miedz}
}
} {#Math VMiedz {@Math_Miedz-@Naleznosc}}
Nie każdy jest mile widziany w moim domu. Gdybym wszystkich traktował jednakowo, nikogo nie wyróżniłbym!
Re: Zmud pomoc
Kod: Zaznacz cały
#if @bilet - @cu < 0
{
@cu = @cu - @bilet
}{
@bilet = @bilet - @cu
#if @bilet - @ar*12 < 0
{
@cu = %mod((@ar*12-@bilet),12)
@ar = (@ar*12-@bilet)/12
}{
#if
Ostatnio zmieniony 19 maja 2015 07:00 przez Talisa, łącznie zmieniany 2 razy.
Everyone is fighting their own battle to be free from their past, to live in the present, and create a meaningful future for themselves. Don't judge, have a heart.
- Herenvarno
- Posty: 809
- Rejestracja: 09 mar 2010 11:22
Re: Zmud pomoc
Tez dobre.
Nie każdy jest mile widziany w moim domu. Gdybym wszystkich traktował jednakowo, nikogo nie wyróżniłbym!
Re: Zmud pomoc
A odnośnie samego liczenia monet, to też jest szybszy sposób niż przez "policz", który można robić w trakcie wykonywania innych czynności (bo jednak "policz" niestety blokuje wszystko).
Wystarczy brać z sakiewki po n+1 monet, gdzie n+1 to minimalna ilość monet w których dostajesz komunikat "wziales wiele monet". Później po prostu przemnożyć ilość iteracji wyciągnięcia przez n+1, dodać ostatnią iterację i jest policzone (przez skrypt w ułamku sekundy).
Wystarczy brać z sakiewki po n+1 monet, gdzie n+1 to minimalna ilość monet w których dostajesz komunikat "wziales wiele monet". Później po prostu przemnożyć ilość iteracji wyciągnięcia przez n+1, dodać ostatnią iterację i jest policzone (przez skrypt w ułamku sekundy).
Re: Zmud pomoc
Tylko jak ktoś wejdzie wtedy na lokację to mu monitor eksploduje