2016-12-15 2 views
2

В настоящее время я изучаю, как использовать Python, и я пытаюсь создать симулятор монополии (для начала я просто хочу имитировать, как один игрок перемещается на доске).Итеративный поиск по зацикленному списку

Как я итеративно просматриваю список позиций на доске: например. диапазон (0, 39)? Итак, если игрок в настоящее время находится в позиции 35, и он набирает 6, он попадает в позицию 1.

Надеюсь, вы в состоянии помочь! Все самое лучшее :)

ответ

2

Вы можете использовать оператор %, как описано выше. Например -

Position  Place 
0    Go 
1    Mediterranean Avenue 
... 
35    Short Line 
36    Chance 
37    Park Place 
38    Luxury Tax 
39    Boardwalk 

Теперь, если пользователь находится в положении 35 (Short Line) и выкидывает 6, их новое положение будет:

Old_Position = 35 
Roll   = 6 
New_Position = (35 + 6) % 40 = 1 

Так что они теперь будут на позиции 1 , или Средиземноморский авеню.

3

Вы хотите посмотреть на модуль/остаток оператора,%.

https://en.wikipedia.org/wiki/Modulo_operation

Например, выражение «5 по модулю 2» будет равно 1, потому что 5 делится на 2 оставляет частное 2 и остаток 1, в то время как «9 мод 3» будет равно 0, поскольку деление 9 на 3 имеет фактор 3 и оставляет остаток от 0; нет ничего, чтобы вычесть из 9 после умножения 3 раза 3.

Вы можете использовать это, чтобы автоматически обрабатывать, когда пользователь «обертывает» плату.

0

Ничего, я нашел ответ сам. Я, должно быть, кивал. Принимая текущее поле, выполняя его по модулю, дает ответ.

playerField = ((playerField + random.choice(diceRoll)%40) 

Работы.

0

Вы можете просто вычесть число, отведенное с расстояния от игрока до конца доски.

Если разница меньше 0, отправьте плеер обратно в начало платы и добавьте абсолютное значение разницы в положение игрока.

Смежные вопросы