Skip to content

Commit 7730ad0

Browse files
AlexeiAlexei
Alexei
authored and
Alexei
committed
Простые шахматы
1 parent a503a2a commit 7730ad0

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed

chess_simple.py

+52
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
# Copyright 2024 by Alexei Bezborodov <[email protected]>
2+
# Общественное достояние (public domain)
3+
# Простые шахматы, без проверок на правильность хода
4+
5+
wigth = 8 # Ширина доски
6+
heigth = 8 # Высота доски
7+
8+
board_chars = "abcdefgh" # буквы на доске
9+
board = ['♖','♘','♗','♕','♔','♗','♘','♖'] + wigth * ['♙'] + (heigth - 4) * wigth * [' '] + wigth * ['♟'] + ['♜','♞','♝','♛','♚','♝','♞','♜'] # фигуры на доске
10+
11+
horisontal_line = ' ' + (2 * wigth + 1) * '-' # горизонтальная линия доски
12+
vertical_line_char = '|' # вертикальный символ клетки
13+
str_bad_command = "Ход невозможен"
14+
15+
# Всего 30 ходов
16+
for i in range(30):
17+
# Выводим доску
18+
print(horisontal_line)
19+
for row_number in range(heigth):
20+
line = str(row_number + 1) # Номера строк
21+
for stolb_number in range(wigth):
22+
line += vertical_line_char + board[row_number * wigth + stolb_number] # фигуры
23+
print(line + vertical_line_char)
24+
print(horisontal_line)
25+
26+
# Буквы для столбцов
27+
line = ' '
28+
for stolb_number in range(wigth):
29+
line += ' ' + board_chars[stolb_number]
30+
print(line)
31+
32+
# Спрашиваем ход у пользователя
33+
user_command = input("Введите ход (например e2e4):")
34+
35+
if len(user_command) != 4:
36+
print(str_bad_command)
37+
continue;
38+
39+
# Вычисляем координаты
40+
x1 = board_chars.find(user_command[0])
41+
y1 = int(user_command[1]) - 1
42+
x2 = board_chars.find(user_command[2])
43+
y2 = int(user_command[3]) - 1
44+
if x1 == -1 or x2 == -1 or y1 < 0 or y1 >= heigth or y2 < 0 or y2 >= heigth:
45+
print(str_bad_command)
46+
continue;
47+
48+
# Делаем ход
49+
tmp = board[y2 * wigth + x2]
50+
board[y2 * wigth + x2] = board[y1 * wigth + x1]
51+
board[y1 * wigth + x1] = tmp
52+

0 commit comments

Comments
 (0)