import sys
try: import pygame PYGAME_AVAILABLE = True except ImportError: PYGAME_AVAILABLE = False
try: import arcade ARCADE_AVAILABLE = True except ImportError: ARCADE_AVAILABLE = False
if not PYGAME_AVAILABLE and not ARCADE_AVAILABLE: print("Neither Pygame nor Arcade are installed. Please install at least one of them to run this game.") sys.exit(1)
class MultiLibraryGame: def init(self): self.width = 800 self.height = 600 self.title = "Multi-Library Game" self.player_x = self.width // 2 self.player_y = self.height // 2 self.player_speed = 5
def run_pygame(self):
pygame.init()
screen = pygame.display.set_mode((self.width, self.height))
pygame.display.set_caption(self.title)
clock = pygame.time.Clock()
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
keys = pygame.key.get_pressed()
if keys[pygame.K_w]:
self.player_y -= self.player_speed
if keys[pygame.K_s]:
self.player_y += self.player_speed
if keys[pygame.K_a]:
self.player_x -= self.player_speed
if keys[pygame.K_d]:
self.player_x += self.player_speed
screen.fill((0, 0, 0))
pygame.draw.rect(screen, (255, 0, 0), (self.player_x, self.player_y, 50, 50))
pygame.display.flip()
clock.tick(60)
pygame.quit()
def run_arcade(self):
class ArcadeGame(arcade.Window):
def __init__(inner_self):
super().__init__(self.width, self.height, self.title)
self.player_x = self.width // 2
self.player_y = self.height // 2
self.player_speed = 5
def on_draw(inner_self):
arcade.start_render()
arcade.draw_rectangle_filled(self.player_x, self.player_y, 50, 50, arcade.color.RED)
def on_key_press(inner_self, key, modifiers):
if key == arcade.key.W:
self.player_y += self.player_speed
elif key == arcade.key.S:
self.player_y -= self.player_speed
elif key == arcade.key.A:
self.player_x -= self.player_speed
elif key == arcade.key.D:
self.player_x += self.player_speed
game = ArcadeGame()
arcade.run()
def run(self):
if PYGAME_AVAILABLE:
print("Running with Pygame...")
self.run_pygame()
elif ARCADE_AVAILABLE:
print("Running with Arcade...")
self.run_arcade()
if name == "main": game = MultiLibraryGame() game.run()