Skip to content

Commit

Permalink
Add game counter and readme
Browse files Browse the repository at this point in the history
  • Loading branch information
honsour72 committed Nov 28, 2021
1 parent 0461494 commit 65bd0ec
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 3 deletions.
23 changes: 23 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Simple Tag game
___
## Task

Реализовать программу, с которой можно играть в игру «Пятнашки».

Правила игры следующие:
Головоломка представляет собой 15 квадратных костяшек с числами от 1 до 15. Все костяшки заключены в квадратную коробку (поле) размером 4 на 4.
При размещении костяшек в коробке остается одно пустое место, которое можно использовать для
перемещения костяшек внутри коробки.

![](/home/honsour72/Изображения/Снимок экрана от 2021-11-28 22-52-40.png)Фото 1

Цель игры - упорядочить размещение чисел в коробке, разместив их по возрастанию слева
направо и сверху вниз, начиная с костяшки с номером 1 в левом верхнем углу и заканчивая пустым местом в правом нижнем углу
коробки.


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


Сама программа НЕ ходит, т.е. не пытается упорядочить костяшки с целью выиграть игру.
10 changes: 7 additions & 3 deletions main.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,12 @@ def __init__(self):
self.working = True
self.node_parts = ["╔════╗", "║ {} ║", "╚════╝"]
self.nums = [str(x) for x in range(1, 16)] + [" "]
shuffle(self.nums)
# shuffle(self.nums)
self.empty_x, self.empty_y = 0, 0
self.win_message = "╔═══════════════════════════╗\n║ ПОЗДРАВЛЯЕМ, ВЫ ПОБЕДИЛИ! ║\n╚═══════════════════════════╝"
self.counter = 0
self.win_message = "╔═══════════════════════════╗\n" \
"║ ПОЗДРАВЛЯЕМ, ВЫ ПОБЕДИЛИ! ║\n" \
"╚═══════════════════════════╝\nКоличество ходов: {}"

def show_current_map(self):
for row in range(4):
Expand Down Expand Up @@ -37,6 +40,7 @@ def play(self):

def analyze_step(self, number):
if self.is_number_exist(number):
self.counter += 1
number_x, number_y = self.get_node_pos(number)
# если введенное число в одной строке с пустой ячейкой
# if abs(number_x - self.empty_x) == 0:
Expand Down Expand Up @@ -68,7 +72,7 @@ def is_win(self):
if self.nums == [str(x) for x in range(1, 16)] + [" "] or \
self.nums == ["1", "5", "9", "13", "2", "6", "10", "14", "3", "7", "11", "15", "4", "8", "12", " "]:
self.show_current_map()
print(self.win_message)
print(self.win_message.format(self.counter))
self.working = False


Expand Down

0 comments on commit 65bd0ec

Please sign in to comment.