ANTICHAT

ANTICHAT (https://forum.antichat.xyz/index.php)
-   Общие вопросы программирования (https://forum.antichat.xyz/forumdisplay.php?f=206)
-   -   Помогите с кодом пайтон (https://forum.antichat.xyz/showthread.php?t=1536324)

Trevor Phillips 18.05.2025 21:57

В этом коде надо найти и исправить ошибки, вроде бы все правильно но пишет что есть ошибки

Код писал не я а нейросет дипсик

import pygame

import sys

import random

import math

import os

from pygame.locals import *

from pygame import gfxdraw

# Инициализация

pygame.init()

pygame.mixer.init()

screen = pygame.display.set_mode((1280, 720), HWSURFACE | DOUBLEBUF)

clock = pygame.time.Clock()

class WorldGenerator:

def __init__(self):

self.palette = {

'time_rift': (45, 170, 255),

'chrono_steel': (80, 90, 100),

'void': (15, 25, 35),

'hud': (200, 220, 240)

}

def generate_terrain(self):

terrain = pygame.Surface((1280, 720))

for y in range(720):

for x in range(1280):

n = math.sin(x * 0.01) * math.cos(y * 0.01) + random.random() * 0.1

color = [c * (0.4 + n * 0.6) for c in self.palette['chrono_steel']]

terrain.set_at((x, y), color)

return terrain

class ChronoCore:

def __init__(self):

self.running = True

self.phase = "dialogue"

self.world = WorldGenerator()

self.terrain = self.world.generate_terrain()

self.font = pygame.font.SysFont('Arial', 24)

self.save_file = "saves.txt"

self.paradox_level = 0.0

self.current_era = 2023

self.player_pos = [640, 360]

self.inventory = {

'crystals': 0,

'memories': []

}

self.story_events = [

{

'year': 2023,

'text': "ВРЕМЕННОЙ РАЗРЫВ: Лаборатория квантовых исследований...\nВыберите действие:",

'choices': [

("Активировать стабилизатор", "reduce_paradox"),

("Войти в портал", "era_1945")

]

},

{

'year': 1945,

'text': "Альтернативная реальность: Третий Рейх победил...\nВыберите действие:",

'choices': [

("Уничтожить лабораторию", "major_paradox"),

("Украсть чертежи", "add_memory")

]

}

]

self.current_event = 0

self.init_audio()

def init_audio(self):

if not os.path.exists('sounds'):

os.makedirs('sounds')

try:

pygame.mixer.music.load('sounds/background.mp3')

pygame.mixer.music.set_volume(0.3)

pygame.mixer.music.play(-1)

except Exception as e:

print(f"Ошибка аудио: {e}")

def save_game(self):

try:

with open(self.save_file, 'w') as f:

f.write(f"era={self.current_era}\n")

f.write(f"paradox={self.paradox_level}\n")

f.write(f"crystals={self.inventory['crystals']}\n")

f.write(f"memories={','.join(self.inventory['memories'])}\n")

f.write(f"event={self.current_event}\n")

except Exception as e:

print(f"Ошибка сохранения: {e}")

def load_game(self):

try:

if not os.path.exists(self.save_file):

return

with open(self.save_file, 'r') as f:

data = {}

for line in f.read().split('\n'):

if '=' in line:

key, val = line.split('=', 1)

data[key] = val

self.current_era = int(data.get('era', 2023))

self.paradox_level = float(data.get('paradox', 0))

self.inventory['crystals'] = int(data.get('crystals', 0))

self.inventory['memories'] = data.get('memories', '').split(',')

self.current_event = int(data.get('event', 0))

except Exception as e:

print(f"Ошибка загрузки: {e}")

def draw_hud(self):

bar_width = int(400 * (1 - self.paradox_level/100))

pygame.draw.rect(screen, (255,40,40), (20,20,400,30))

pygame.draw.rect(screen, (40,200,40), (20,20,bar_width,30))

text = self.font.render(

f"Хроно-кристаллы: {self.inventory['crystals']}/7",

True, self.world.palette['hud'])

screen.blit(text, (20, 70))

def draw_dialogue(self, text, choices):

dialog = pygame.Surface((800, 400), pygame.SRCALPHA)

pygame.draw.rect(dialog, (30,40,50,200), (0,0,800,400), border_radius=20)

lines = text.split('\n')

for i, line in enumerate(lines):

text_surf = self.font.render(line, True, (200,220,240))

dialog.blit(text_surf, (50, 30 + i*30))

for i, (choice, _) in enumerate(choices):

btn = pygame.Rect(50, 150 + i*80, 700, 60)

pygame.draw.rect(dialog, (60,70,80,200), btn, border_radius=15)

text = self.font.render(choice, True, (160,180,200))

dialog.blit(text, (btn.x + 20, btn.centery - 10))

screen.blit(dialog, (240, 100))

def handle_choice(self, result):

if result == "reduce_paradox":

self.paradox_level = max(0, self.paradox_level - 25)

elif result == "era_1945":

self.current_era = 1945

elif result == "add_memory":

self.inventory['memories'].append(f"Память {self.current_era}")

self.save_game()

self.current_event += 1

if self.current_event >= len(self.story_events):

self.show_ending()

else:

self.phase = "dialogue"

def show_ending(self):

ending_text = (

"ХРОНО-ПАРАДОКС УСТАНОВЛЕН\n\n"

f"Кристаллов собрано: {self.inventory['crystals']}/7\n"

f"Уровень парадокса: {self.paradox_level}%\n"

"Судьба временной линии зависит от ваших решений..."

)

ending_screen = pygame.Surface((800, 400), pygame.SRCALPHA)

pygame.draw.rect(ending_screen, (30,40,50,200), (0,0,800,400), border_radius=20)

lines = ending_text.split('\n')

for i, line in enumerate(lines):

text = self.font.render(line, True, (200,220,240))

ending_screen.blit(text, (50, 30 + i*30))

screen.blit(ending_screen, (240, 100))

pygame.display.flip()

pygame.time.wait(5000)

self.running = False

def run(self):

self.load_game()

if self.current_event >= len(self.story_events):

self.show_ending()

return

while self.running:

screen.fill(self.world.palette['void'])

screen.blit(self.terrain, (0,0))

for event in pygame.event.get():

if event.type == QUIT:

self.running = False

if event.type == KEYDOWN:

if event.key == K_ESCAPE:

self.running = False

if event.key == K_F5:

self.save_game()

if event.key == K_F9:

self.load_game()

if event.type == MOUSEBUTTONDOWN and self.phase == "dialogue":

mouse_pos = pygame.mouse.get_pos()

if 240

uqowivad 25.05.2025 22:57

не знаю что ты хотел от нейросет дипсик, но на данный момент оно запускается, и даже даёт выбрать

https://forum.antichat.xyz/attachmen...8590e3a503.png

https://forum.antichat.xyz/attachmen...9411c4e507.png


Время: 23:59