Jak zrobić wiarygodne losowanie do gry?

0

Serwus. W ramach cwiczeń zrobiełem sobie grę taka tekstową w sensie ze wchodzisz na strone dostajesz punkty i mozesz je wykorzystać na sile zrecznosc czy odporność. w grze jest czat i karczma i w tej karczmie pomyslalem ze zrobie mini gry takie w stylu:

  1. Orzel czy Reszka - czyli gracz wlazi i obstawia dukaty np 1 dukat i zaznacza czy wypadnie orzel czy reszka.
    i
  2. Cos w stylu losowania numerow ze gracz ustala powiedzmy 3 numery z 10 i jak trafi to wygrywa tam dukaty lub traci.

W kazdym razie zastanwiam sie jak do tych gier i w ogole do takich typu gier zrobic wiarygodne losowanie zeby na forum gracze nie mowili np ze pewnie gra tak jest ustawiona zeby przegrali czy cos. Da sie to jakos zabezpieczyc ? tak zeby dac im dane i algorytm losowania i sprawdziliby ze gra nie jest ustawiona.

0

Jak dasz im dane i algorytm to zaczną zawsze wygrywać.

0

Moim zdaniem jeśli chcesz być faktycznie wiarygodny to nie dawaj im żadnego algorytmu tylko po prostu listę n ostatnich wyników z nickami. W ten sposób będą wiedzieli, ile razy były wygrane i przegrane. Co z tego, że pokażesz na forum formułkę jak w rzeczywistości możesz dodać inny modyfikator. Co prawda można to też nagiąć przez fałszywe konta utworzone przez ciebie, ale dla mnie byłoby to bardziej wiarygodne.

0

Wasza dyskusja daje do myślenia i tak: z jednej strony utwierdza mnie, że niestety może nie dać się tego zrobić. Z drugiej strony pomyślałem że przed grą kazdy musi podać jakas liczbe dowolna. jak wszyscy podadza to bedzie jakis tam hash liczony z niej a potem np wybierze sie jakies numery na podstawie tego hasu wedle algorytmu. czyli przyklad:

gracze podaja numer
1,23,44,76,33,23,56,78,98,54
Liczby laczymy w string
z liczb liczymy hash (sh2(string))
albo hash co ma jakies same liczby 6706372326273892
i z tych danych wybieramy po dwie czyli
67,06,37,23, itd
Wyswietlajac wszystkie dane liczby po losowaniu jakie kto dal kazdy powie no faktycznie dalem taka liczbe i podaniu algorytmu moze sprawdzic czy wyszlo to co wyszlo tak ze nikt nie majstrowal przy tym.
Nie wiem na ile to jest dobre ale co myslicie o tym ?

0

A jak udowodnisz że jeden z tych graczy nie jest twoim bot'em który zobaczył liczby przeciwników i na ich podstawie wyliczył swoją liczbę tak aby wygrać ?

0

Czegokolwiek byś nie zrobił, to i tak znajdą się osoby które stwierdzą, że losowanie jest "rigged". Wystarczy poczytać recenzję największych pokerroomów. Przykładowo PokerStars :)

http://www.pokerscout.com/AllReviews.aspx?id=1

Ludzie nie rozumieją i nie chcą zrozumieć prawdopodobieństwa.

1

A nie łatwiej wykorzystać https://api.random.org/json-rpc/1/ ? random.org jest całkiem niezłym generatorem liczb losowych i co ważne takie przeniesienie losowania do zewnętrznej usługi pozwoli ci zachować neutralność wobec kluczowego elementu gry.

0

A co myślicie o tym że na przyklad wylosowana liczba sklada sie z 3 części. I teraz powiedzmy będzie to jedna liczba składająca się z

1. 9878 hash = 9838939jj9j8wj8
2. 7878 hash = ji89j839*H
3. 7670 hash = ij9j3h*H&*

wylosowana liczba to: 987878787670

Liczby te (seed) losuje przed koljnym losowaniem i pokazuje hash tych liczb. Po wylosowaniu pokazuje uzytkownikowi jakie to były liczby i wtedy sprawdzi sobie czy hashe sie zgadzaly. To taki pomysł by byl wiarygodny ?

0

O ile dobrze cie rozumiem cała trudność polega na tym, aby od momentu pokazania hasha do momentu losowania nikt go nie odwrócił tak?
Teoretycznie jeśli pokażesz algo generowania hasza nie ma się do czego przyczepić bo pokażesz hash już wylosowanej liczby której nie zmienisz do czasu jej "odkrycia", ale obawiałbym się osobiście prób jego odwrócenia. A znasz 100% metody zabezpieczenia się przed znalezieniem kolizji? Osoby chcące złamać taki system mogą dysponować np. botnetem, słabości algorytmu na pewno też będą brali pod uwagę, nie mówiąc już o tym że to wymarzona sposobność na stworzenie tęczowych tablic.

Edycja: Zbiór możliwych "liczb" do obstawienia też bardzo zawęża tutaj pole manewru bo jeśli pozwolisz użytkownikom losować np. liczbę 1 z 80 to wystarczy, że przetestuje te 80 możliwości. Wydłużenie tego zbioru spowoduje, że ludzie nie będą w stanie doczekać się wygranej.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0