Board Game "MathTricks"
MathTricks се играе от двама играчи на дъска с размер N x M, въведени от потребителя. Всеки играч разполага с един пул, който може да движи хоризонтално, вертикално или диагонално.
Клетка може да има:
- Събиране/Разлика с число (5,-11) -> резултат + стойността на клетката (Х + 5 || Х - 11)
- Умножение с число (х2) -> резултата по числото (Х х 2). може да има 0.
- Деление на число (/2) -> резултата делено на числото. не може да има 0.
Правила:
- Начален вход -> 2 ints за размер (>> "length" "width")
- На всеки ход програмата очаква координати за следващ ход (може да е само към съседна клетка)
- Ходовете се редуват докато някой играч остане без свободна съседна клетка
- При генериране трябва да има поне една клетка с: 4.1) Положително число (опер. Събиране) 4.2) Отрицателно число (опер. изваждане) 4.3) Умножение с 0 4.4) Умножение с 2 4.5) Деление с 2
- Игралната дъска дава еднакъв спортен шанс за победа
- Дъската се генерира с добри логически решения (по-голяма дъска -> по-висок множител)
- Опция save state -> запазване на играта във файл (deserialize) в текущ момент, а след това се чете от файла (serialize) и се продължава от стартово меню
Условия:
- Минимален размер -> 4 х 4.
- Не задължително квадратна дъска.
- Игралната дъска е различна за всяка игра.
- Играчите стартират от (0, 0) и (N, M) - тези клетки имат стойност 0.
Ограничения за ходове:
- Пул не може да е извън полето
- Играч не може да мести в несъседна клетка
- Играч не може да постави пул върху вече премината клетка
Победител е човека с повече точки, независимо кой е бил затворен. Играта приключва ако някой няма валиден ход.
Библиотеки използвани за проекта:
- Оцветяване на конзола
- Генериране на произволни числа
- Писане/четене на конзола/файл
- Cmath /на стр. 1 от изискванията се допуска използването на дадената библиотека/