Na imprezie zapoznałem się z grą LCR. Teraz nie jest to świetna gra, ponieważ nie ma umiejętności, a jedynie losowa szansa. Ale przyszło mi do głowy, że mogę to kodować i stworzyłem szybki program w R do modelowania gry.
Zasady gry zmodyfikowane z Wikipedii, aby pasowały do naszego sposobu gry:
Każdy gracz otrzymuje co najmniej 3 żetony. Gracze po kolei rzucają trzema sześciokątnymi kostkami, z których każda jest oznaczona „L”, „C”, „R” po jednej stronie i pojedynczą kropką po trzech pozostałych stronach. Za każde rzucone „L” lub „R” gracz musi przekazać jeden żeton graczowi odpowiednio po lewej lub prawej stronie. „C” oznacza żeton do środka (puli). Kropka nie ma wpływu.
Jeśli graczowi pozostało mniej niż trzy żetony, nadal jest w grze, ale ich liczba żetonów to liczba kości, które rzucają w swojej turze, zamiast rzucić wszystkimi trzema. Kiedy gracz ma zero żetonów, przekazuje kości w swojej turze, ale może otrzymywać żetony od innych i odpowiednio wykonywać następną turę. Zwycięzca jest ostatnim graczem, który umieścił żetony na środku.
Konkurs: napisz program w wybranym języku, który pobiera dane dotyczące liczby graczy i liczby początkowych żetonów i symuluje grę LCR, pokazując stan gry po wyrzuceniu każdego gracza.
Na przykład gra może być wyświetlana jako:
[[[3,3,3,3],0],[[1,4,3,4],0],[[1,4,3,4],0],[[1,4,1,4],2],[[1,4,1,2],4],
[[0,4,1,3],4],[[0,3,2,3],4],[[0,3,0,3],6],[[0,3,1,1],7],[[0,3,1,1],7],
[[2,0,1,1],8],[[2,0,0,1],9],[[2,0,0,0],10],[[0,1,0,0],11],
[[1,0,0,0],11],[[1,0,0,0],11],[[1,0,0,0],11],[[0,0,0,0],12]]
ht: JonathanAllan
Wynik nie musi wyglądać dokładnie tak, ale powinno być łatwo rozpoznać rzut kości, ile żetonów ma każdy gracz i ile żetonów ma środek na każdą turę.
To kod golfowy, więc wygrywa najkrótszy kod.
[[[3,3,3,3],0],[[1,4,3,4],0],[[1,4,3,4],0],[[1,4,1,4],2],[[1,4,1,2],4],[[0,4,1,3],4],[[0,3,2,3],4],[[0,3,0,3],6],[[0,3,1,1],7],[[0,3,1,1],7],[[2,0,1,1],8],[[2,0,0,1],9],[[2,0,0,0],10],[[0,1,0,0],11],[[1,0,0,0],11],[[1,0,0,0],11],[[1,0,0,0],11],[[0,0,0,0],12]]
- czy tak jest w tym przypadku?