Загрузка...

Игра на PYTHON в консоли

Тема в разделе Python создана пользователем K1p1k 17 ноя 2024. 382 просмотра

  1. K1p1k
    K1p1k Автор темы 17 ноя 2024 23 1 июл 2022
    Мне пришла идея в голову сделать игру в консоли из коробочных модулей
    в итоге получилось интереснная игра для esp32
    только придеться keyboard установить
    [IMG]

    [IMG]
    Python
    import os
    from time import sleep, time
    import keyboard
    from random import randint


    #Создаем класс для создание поле игры в консоли
    class TGame():
    def __init__(self,
    wight: int,
    height: int,
    empty='.'
    ):
    self.wight=wight
    self.height=height
    self.empty=empty
    self.help_unity=False
    self.game_object=list()
    for i in range(0, height):
    h=list()
    for x in range(0, wight):
    h.append(empty)
    self.game_object.append(h)
    self.prefix='by @K1p1k'
    #система очистки консоли
    def clear(self):
    if os.name == 'nt':
    os.system('cls')
    else:
    os.system('clear')
    print(self.prefix)

    #создаем метод для создание обекта
    def create_object(self, x, y, symbol):
    self.game_object[y][x]=symbol
    class r():
    def __init__(sself):
    self.game_object[y][x]=symbol
    sself.x=x
    sself.y=y
    sself.symbol=symbol
    def edit_place(sself, x, y, symbol=symbol):
    self.game_object[sself.y][sself.x]='.'
    self.x=x;sself.x=x
    self.y=y;sself.y=y
    self.game_object[y][x]=symbol
    r=r()
    return r

    #делаем метод которая выводить нашу игры
    def render(self):
    self.clear()
    count=int()
    helpp=str()
    if self.help_unity:
    for i in range(0, len(self.game_object)):
    if i == 0:
    helpp+=f' '
    helpp+=f'{str(i)} '
    print(helpp)
    for i in self.game_object:
    if self.help_unity:
    print(f"{count}{' '.join(i)}")
    else:
    print(f"{' '.join(i)}")
    count+=1

    def game_start():
    #создаем экземпляр
    game=TGame(wight=20, height=20, empty='.')
    #создаем играка
    player=game.create_object(x=9, y=9, symbol='+')
    #создаем кого будем убивать
    list_stop=list()
    for i in range(0, randint(4,10)):
    list_stop.append(game.create_object(x=randint(0, game.wight-1), y=randint(0, game.height-1), symbol='/'))
    game.render()
    #создаем функцию которая изменяет положение игрока
    def movent(x, y):
    if x < game.wight and x >= 0:
    if y < game.height and y >= 0:
    player.edit_place(x=x, y=y)
    c=int()
    for i in list_stop:
    #проверяем есть игрок на сопернике
    if i.x == player.x and i.y == player.y:
    #если да то удаляем
    list_stop.pop(c)
    c+=1
    #обезательно пишем render что бы вывести обновленное поле
    game.render()

    #привязываем клавиши и назначаем изменине по xy
    keyboard.add_hotkey('w', lambda: movent(x=player.x, y=player.y-1))
    keyboard.add_hotkey('s', lambda: movent(x=player.x, y=player.y+1))
    keyboard.add_hotkey('a', lambda: movent(x=player.x-1, y=player.y))
    keyboard.add_hotkey('d', lambda: movent(x=player.x+1, y=player.y))

    #сохраняем время начала что бы вывести время прохождение
    time_start=time()
    while True:
    sleep(0.1)
    if len(list_stop) == 0:
    game.clear()
    return f'WIN\nTIME: {round(time()-time_start, 2)}'

    isFist=True
    #создим начальное меню
    while True:
    if isFist:
    if os.name == 'nt':
    os.system('cls')
    else:
    os.system('clear')
    isFist=False
    print('В данной игре вам пристоит убивать вирусы!')
    print("""
    ----------------------------
    |+ - антивирус(вы) |
    |/ - вирус |
    |----------------------------
    |w-навер |
    |S-вниз |
    |a-налево |
    |d-на право |
    |----------------------------
    """)
    print('1>> Начать играть')
    print('0>> Выйти')

    ch=input('>>')
    if ch == '1':
    print(game_start())
    ch=None
    if ch == '0':
    if os.name == 'nt':
    os.system('cls')
    else:
    os.system('clear')
    print('ПОКА <3')
    break
     
    17 ноя 2024 Изменено
  2. lessql
    lessql 17 ноя 2024 LOVE машулю :smile_love: 8653 13 апр 2020
    че за игра то хоть описал бы и скрины добавил
     
    1. Посмотреть предыдущие комментарии (2)
    2. cookie
      lessql,
      Код
      print('В данной игре вам пристоит убивать вирусы!')
      print("""
      ----------------------------
      |+ - антивирус(вы) |
      |/ - вирус |
      |----------------------------
      |w-навер |
      |S-вниз |
      |a-налево |
      |d-на право |
      |----------------------------
      """)
      print('1>> Начать играть')
      print('0>> Выйти')
    3. kripton
      Derikser, [IMG]тут вирус опасно проиграешь = del windows/system32
    4. K1p1k Автор темы
      kripton, Вы что думали я с линукса
  3. зайцевПлюсОдин
    ChatGPT тебя подавление тоже касается, понял ?
     
    18 ноя 2024 Изменено
    1. ChatGPT
    2. ШОП
      зайцевПлюсОдин, Герой! Держит весь мир на своих плечах! Если бы не он, мир превратился в мрак. Всегда на страже!
  4. cidll
    cidll 18 ноя 2024 Заблокирован(а) 1046 5 сен 2021
    Зачем?
    Тут нет слов, одни эмоции :wutcat:
    Почитай про match case's
     
    1. K1p1k Автор темы
      cidll, ой забыл убрать импорт тайма
    2. cidll
      K1p1k, только это?)
  5. XTRAFFER
    XTRAFFER 22 ноя 2024 0 19 сен 2024
    змейку напиши, тоже в консоли
     
Top
Загрузка...