Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: utf-8 -*-
- from getch import getch
- import sys
- import os
- def cls():
- """
- Эта магия очищает экран
- """
- os.system("clear")
- PX = 11
- PY = 9
- def art(what):
- wall = '\xe2\x96\x91'
- space = '\xe2\x96\x88'
- box = '\xe2\x96\x80'
- place = '\xe2\x94\xbc'
- box_on_place = 'o'
- hero = '\xe2\x98\xbb'
- if what == 'W':
- return wall
- elif what == 'S':
- return space
- elif what == 'B':
- return box
- elif what == 'P':
- return place
- elif what == 'Z':
- return box_on_place
- elif what == 'X':
- return hero
- else:
- return '?'
- LEVEL_SRC = """WWWWWWWWWWWWWWWWWWWW
- WWWWWWWWWWWWWWWWWWWW
- WWWWWSSSWWWWWWWWWWWW
- WWWWWBSSWWWWWWWWWWWW
- WWWWWSSBWWWWWWWWWWWW
- WWWSSBSBSWWWWWWWWWWW
- WWWSWSWWSWWWWWWWWWWW
- WSSSWSWWSWWWWWWSSPPW
- WSBSSBSSSSSSSSSSSPPW
- WWWWWSWWWSWSWWWSSPPW
- WWWWWSSSSSWWWWWWWWWW
- WWWWWWWWWWWWWWWWWWWW
- """
- LEVEL = LEVEL_SRC.split("\n")
- def show():
- """
- Эта функция отрисовывает картинку на экране
- """
- global PX, PY, LEVEL
- cls()
- # выведем уровень
- for numy, row in enumerate(LEVEL):
- outs = ""
- for numx, col in enumerate(row):
- if PX == numx and PY == numy:
- outs += art('X')
- else:
- outs += art(col)
- print outs
- def move_to(x, y):
- """
- На вход функция принимает перемещение по оси X и Y (-1, 0 или 1)
- """
- global PX, PY
- global LEVEL
- # следующие координаты
- nx = PX + x
- ny = PY + y
- # сначала Y - строка, потом X - столбец
- if LEVEL[ny][nx] == 'S' or LEVEL[ny][nx] == 'P':
- # пустая клетка или клетка для ящика
- # смело переместим героя на неё
- PX = nx
- PY = ny
- elif LEVEL[ny][nx] == 'B' or LEVEL[ny][nx] == 'Z':
- # клетка с ящиком или ящиком на месте - нужно
- # проверить, может ли быть ящик перемещен
- # определим, в какую сторону движется персонаж
- pass
- def main():
- global PX, PY
- while True:
- show()
- # считываем с клавиатуры
- ch = getch()
- if ch == 'j':
- move_to(-1, 0)
- elif ch == 'l':
- move_to(1, 0)
- elif ch == 'i':
- move_to(0, -1)
- elif ch == 'k':
- move_to(0, 1)
- elif ch == 'q':
- # выход
- sys.exit(0)
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement