game.py methods(chatgpt)
- handle_events()
- update()
- render()
def handle_events():
for event in pygame.event.get():
if event.type == pygame.QUIT:
quit_game()
elif event.type == pygame.MOUSEBUTTONDOWN:
mouse_pos = pygame.mouse.get_pos()
for card in player.hand:
if card.rect.collidepoint(mouse_pos):
play_card(card)
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_SPACE:
draw_card()
def update():
if check_game_over():
end_game()
return
player.hand.update()
top_card = deck.get_top_card()
if top_card.is_skip():
skip_player()
elif top_card.is_reverse():
reverse_direction()
elif top_card.is_draw_two():
draw_two_cards()
elif top_card.is_wild():
handle_wild_card()
elif top_card.is_wild_draw_four():
handle_wild_draw_four_card()
def render():
screen.fill(BG_COLOR)
player.hand.draw(screen)
top_card = deck.get_top_card()
top_card.draw(screen)
deck.draw(screen)
discard_pile.draw(screen)
current_player_name = get_current_player().name
current_player_indicator = "==> "
player_font = pygame.font.SysFont(None, 32)
player_text = player_font.render(current_player_name + current_player_indicator, True, BLACK)
screen.blit(player_text, (10, 10))
pygame.display.flip()
def play_card(card):
if can_play_card(card):
player.hand.remove(card)
discard_pile.add(card)
apply_card_effect(card)
next_player()
else:
pass
turn 관리(for -> while: running)
def print_list(lst, reverse=False):
if reverse:
for i in range(10):
print(lst[-i % len(lst) - 1])
else:
for i in range(10):
print(lst[i % len(lst)])
lst = [1, 2, 3, 4, 5]
print_list(lst, True)
print_list(lst, False)