На вечірці мене познайомили з грою LCR. Зараз це не чудова гра, оскільки немає майстерності, а лише випадковий шанс. Але це змусило мене задуматися, я можу це кодувати, і я зробив швидку програму в R, щоб моделювати гру.
Правила гри, змінені з Вікіпедії, щоб відповідати тому, як ми грали:
Кожен гравець отримує щонайменше 3 фішки. Гравці приймають його по черзі, щоб розгорнути три шестигранні кубики, кожен з яких позначений символами "L", "C", "R" на одній стороні, і одна крапка на трьох сторонах, що залишилися. За кожен кинутий "L" або "R", гравець повинен передавати один чіп гравцеві відповідно зліва або справа. "С" позначає мікросхему до центру (горщика). Крапка не має ефекту.
Якщо у гравця залишилось менше трьох фішок, вони все ще в грі, але їх кількість фішок - це кількість кісток, які вони роблять на черзі, а не прокатування всіх трьох фішок. Коли у гравця нульові фішки, вони передають кістки на свою чергу, але можуть отримувати фішки від інших і відповідно робити наступний хід. Переможець - останній гравець, який поставив фішки в центр.
Конкурс: складіть програму своєю мовою, яка вибирає, яка приймає дані про кількість гравців та кількість стартових фішок та імітує гру LCR, показуючи стан гри після того, як кожен гравець прокатується.
Наприклад, гра може виводитися у вигляді:
[[[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: ДжонатанАллан
Вихідні дані не повинні виглядати точно так, але слід легко розрізати рулон з кістки, скільки фішок у кожного гравця і скільки фішок має центр за кожен крок.
Це код гольфу, тому найкоротший код виграє.
[[[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]]
- це так?