Я пытаюсь реализовать игру в дартс на хаскеле.Я решил представить результат каждого этапа в разных слоях списков.Каждый первый элемент внутреннего списка представляет множитель (одинарный, двойной, тройной), каждый второй элемент представляет значение точек, которые умножаются.Каждый игрок начинает со счетом 501 очков.Эти очки уменьшаются на количество очков, которые игрок получает за каждый ход.Если игрок наберет 0 очков, он выиграет полную ногу.
Это пример случайной игры, в которой побеждает первый игрок:
leg1 = [[[3,20],[3,20],[3,20]],[[3,20],[3,19],[2,25]],[[3,19],
[3,19],[3,19]],[[3,20],[3,19],[2,25]],[[2,25],[2,25],[2,25]]]
-- the outer list represents the full leg.
-- the second layer of lists represents a full turn of a player.
-- the inner lists are composed of a pair of two elements
-- and every pair represents one shot.
Моя цель - написать функциюкоторый принимает случайный этап в качестве входного параметра и выполняет следующие действия для различных погонь:
Погоня 1: Должен возвращаться 1, если начинающий игрок выигрывает полный лег.
Погоня 2: Должен возвращаться2, если другой игрок выигрывает.
Погоня 3: Должно возвращаться 0, если существует недопустимая комбинация внутренней пары элементов списка (например, [3,0] недопустимо, поскольку тройной 0 не существует вигра).
Пример:
legWinner leg1 -- call of the function with parameter.
-> 1 -- return value.
Я не совсем уверен, как подойти к определению этой функции.