Дата публикации:

Python cmd игра. можете помочь с игрой в cmd, по типу snake.просто не понимаю как сделать логику.


Python cmd игра. можете помочь с игрой в cmd, по типу snake.просто не понимаю как сделать логику.

Конечно, я могу помочь с написанием игры в cmd по типу змейки. Вот небольшой набросок кода, который может помочь вам начать:

import msvcrt
import os
import random

# Определение размеров окна cmd
os.system("mode con cols=120 lines=30")

# Определение размеров игрового поля
width = 40
height = 20

# Инициализация змейки
snake = [(width // 2, height // 2)]
direction = (0, 0)

# Инициализация фрукта
fruit = (random.randint(1, width-2), random.randint(1, height-2))

# Основной игровой цикл
while True:
    os.system("cls")  # Очистка экрана

    # Отрисовка игрового поля
    print("#" * (width + 2))
    for y in range(height):
        for x in range(width):
            if x == 0 or x == width - 1:
                print("#", end="")
            elif (x, y) in snake:
                print("O", end="")
            elif (x, y) == fruit:
                print("F", end="")
            else:
                print(" ", end="")
        print()
    print("#" * (width + 2))

    # Управление змейкой
    if msvcrt.kbhit():
        key = msvcrt.getch()
        if key == b"w" and direction != (0, 1):
            direction = (0, -1)
        elif key == b"s" and direction != (0, -1):
            direction = (0, 1)
        elif key == b"a" and direction != (1, 0):
            direction = (-1, 0)
        elif key == b"d" and direction != (-1, 0):
            direction = (1, 0)

    # Обновление положения змейки
    head = (snake[0][0] + direction[0], snake[0][1] + direction[1])
    snake.insert(0, head)
    if head == fruit:
        fruit = (random.randint(1, width-2), random.randint(1, height-2))
    else:
        snake.pop()

    # Проверка на столкновение со стеной или самой собой
    if (head[0] == 0 or head[0] == width - 1 or
            head[1] == 0 or head[1] == height - 1 or
            head in snake[1:]):
        break

    # Задержка для обновления экрана
    time.sleep(0.1)

print("Игра окончена!")

В этом коде используется модуль msvcrt для обработки нажатий клавиш, модуль os для очистки экрана и модуль random для генерации случайных координат фрукта. Змейка представлена в виде списка координат, а направление движения задается с помощью кортежа (x, y), где x и y могут быть -1, 0 или 1.

Вы можете доработать этот код, добавив функции для подсчета очков, увеличения сложности и т.д.

 

 
Загрузка...