numnastics/numnastics
2019-11-30 19:26:13 -05:00

68 lines
2.7 KiB
Python
Executable File

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from libstorm_games import *
# Initial variable settings
mode = "menu"
sounds = initialize_gui("Numnastics")
def game(mode):
pygame.mixer.music.pause()
i = 0
startTime = time.time()
tries = 0
numberList = list("123456789")
random.shuffle(numberList)
while ''.join(numberList) != "123456789":
event = pygame.event.wait()
if event.type == pygame.KEYDOWN:
# Escape is the back/exit key, close the game if not playing, or return to menu if playing.
if event.key == pygame.K_ESCAPE:
if mode != "menu":
mode = "menu"
return mode
elif mode == "menu": exit_game()
elif event.key in [pygame.K_1, pygame.K_2, pygame.K_3, pygame.K_4, pygame.K_5, pygame.K_6,pygame.K_7, pygame.K_8, pygame.K_9]:
i = numberList.index((pygame.key.name(event.key)))
speak(numberList[i])
elif event.key in [pygame.K_LEFT, pygame.K_UP]:
if i > 0: i = i - 1
speak(numberList[i])
elif event.key in [pygame.K_RIGHT, pygame.K_DOWN]:
if i < len(numberList) - 1: i = i + 1
speak(numberList[i])
elif event.key == pygame.K_SPACE:
speak(str(' '.join(numberList[i:len(numberList)])))
continue
elif event.key == pygame.K_RETURN:
if i != -1:
reversedNumberList = numberList[i:len(numberList)]
reversedNumberList.reverse()
del numberList[i:len(numberList)]
numberList.extend(reversedNumberList)
tries = tries + 1
sounds['flip'].play()
speak(str(' '.join(numberList[i:len(numberList)])))
else:
i = -1
sounds['error'].play()
endTime = round(time.time() - startTime, 2)
message = ["Congratulations! You beat Numnastics in " + str(tries) + " tries."]
if int(endTime / 60) == 1:
message.append("Your time was " + str(int(endTime / 60)) + " minute and " + str(round(endTime % 60, 2)) + " seconds.")
else:
message.append("Your time was " + str(int(endTime / 60)) + " minutes and " + str(round(endTime % 60, 2)) + " seconds.")
display_text(message)
sounds['win'].play()
time.sleep(sounds['win'].get_length())
return "menu"
# Game starts at main menu
mode = game_menu("start game", "instructions", "donate", "credits", "exit_game")
while mode != "exit_game":
if mode == "menu": mode = game_menu("start game", "instructions", "donate", "credits", "exit_game")
if mode == "start game": mode = game(mode)
time.sleep(.001)