Ниже приведен вывод кода, который будет формировать игру-лабиринт, которую я пытаюсь создать, это можно назвать начальной комнатой, в которую упал игрок:
- Красный прямоугольник формирует моего персонажа, я закодировал его, чтобы перемещаться по комнате
- Бирюзовые прямоугольники, которые находятся за пределами синего прямоугольника, образуют проходы: Север, Восток, Юг, Запад
- Темно-синий прямоугольник образует границу, где красный прямоугольник не может пересекаться.
- Код должен позволять красному прямоугольнику перемещаться в другую комнату (мы назовем эту комнату 2), когда он приближается коткрытый проход, вторая комната должна быть идентична первой (т.е. с 4 проходами)
- Игра заканчивается, когда в одной из комнат есть что-то, называемое выигрышным проходом, поэтому в приведенном выше примереесли северный проход был известен как выигрышный проход, и мой красный прямоугольник приблизился к нему, игра закончилась бы
- Если он приблизится к закрытому проходуЭто должно вывести что-то вроде «Вы не можете туда пойти».
Проблема, с которой я сталкиваюсь, заключается в том, чтобы заставить код читать информацию из текстового файла, который бы указывал, сколько комнат, каку многих из этих комнат есть открытые проходы, у скольких из них есть закрытые проходы, и у какой комнаты есть выигрышный проход.Как только код узнает, что, например, существует 4 комнаты, он создаст 4 экземпляра вышеуказанного изображения, а затем покажет пользователю случайную комнату, после чего пользователю придется перемещаться по разным комнатам, используя открытые проходы, пока он не найдет выигрышный проход.,
Я вставил код ниже, любая помощь будет принята с благодарностью, или если у вас есть какие-либо комментарии, не стесняйтесь спрашивать:
import pygame
import random
pygame.init()
win = pygame.display.set_mode((700,700))
pygame.display.set_caption("Maze Game")
def draw_rect_outline(surface, rect, color, width=1):
x, y, w, h = rect
width = max(width, 1)
def text_objects(text, font):
textSurface = font.render(text, True, (0,0,0))
return textSurface, textSurface.get_rect()
class player(object):
def __init__(self, x, y, width, height):
self.x = x
self.y = y
self.width = width
self.height = height
self.vel = 20
def draw(self,win):
pygame.draw.rect(win, (255, 0, 0), (self.x, self.y, self.width, self.height)) #Drawing the Character#
def redrawgamewindow():
win.fill((0,0,0))
user.draw(win)
pygame.draw.rect(win, (0, 100, 255, 155), (80, 80, 550, 550), 10) # Blue Rectangle#
#Would all of these passageways go into one class or multiple classes?#
pygame.draw.rect(win, (64,224,208), (350, 30, 40, 40)) # North Passage#
pygame.draw.rect(win, (64,224,208), (350, 643, 40, 40)) # South Passage#
pygame.draw.rect(win, (64,224,208), (643, 350, 40, 40)) # East Passage
pygame.draw.rect(win, (64,224,208), (30, 350, 40, 40)) # West Passage#
pygame.display.update()
#Maybe I should move the below code into a function#
user = player(100, 100, 40, 60)
run = True
while run:
pygame.time.delay(100)
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
keys = pygame.key.get_pressed() # Moving the player around the room #
if keys [pygame.K_LEFT]:
user.x -= user.vel
if keys [pygame.K_RIGHT]:
user.x += user.vel
if keys [pygame.K_UP]:
user.y -= user.vel
if keys [pygame.K_DOWN]:
user.y += user.vel
redrawgamewindow()
pygame.quit()