Please help with this

mkharper mkharper at gmail.com
Wed Nov 13 12:09:54 CET 2013


On Wednesday, November 13, 2013 4:18:58 AM UTC, saad imran wrote:
> Could you point out any errors in my code:
> 
> 
> 
>  #This is a game where you have to escape a dragon.
> 
> # By Saad Imran
> 
> 
> 
> import random
> 
> import pygame
> 
> 
> 
> 
> 
> 
> 
> # Define questions and answers.
> 
> que1 = "4481 *2"
> 
> ans1 = "8962"
> 
> que2 = "457 * 21"
> 
> ans2 =  "9597"
> 
> que3 = "2345*23"
> 
> ans3 =  "53935"
> 
> que4 = "Who plays against the USA in golf's Walker Cup?"                                                   
> 
> ans4 = "britain"
> 
> que5 = "Which game is played in autumn using the fruit of the horse chestnut tree?"
> 
> ans5 = "conkers"
> 
> que6 = "From what country does Lego come?"
> 
> ans6 = "denmark"
> 
> que7 = "What term is used in cricket for the two men on the field who decide on whether batsmen are out, and signal for extras and boundaries?"
> 
> ans7 =  "umpire"
> 
> que8 = "What date was D-Day?"
> 
> ans8 = "06,06,1944"
> 
> que9 ="Who is called the 'Great One' in hockey history?"
> 
> ans9 = "wayne gretzky"
> 
> 
> 
> 
> 
> # intro
> 
> print("Welcome!")
> 
> print("")
> 
> name = input("What is your name? ")
> 
> print("")
> 
> print("You are in a cave and hear a dragon!",name)
> 
> print("")
> 
> print("Thinking you are doomed, you panic and run")
> 
> print("")
> 
> 
> 
> # Ask whether user wants to play or not
> 
> print("You run into a wizard who tells you that he will teleport you out of the cave if you solve his questions!")
> 
> print("")
> 
> game = input("Do you trust him?(y/n) ")
> 
> print("")
> 
> 
> 
> #if he doesn't game is ended
> 
> if game == "N" or game == "n":
> 
>     print("The dragon catches you and you are doomed!")
> 
>     gameloop = False
> 
>     loop = False
> 
> # if he does, game starts
> 
> 
> 
> else:
> 
>     gameLoop = True
> 
> 
> 
>     while gameLoop ==True:
> 
>     
> 
>         # Tell user how to write answers
> 
> 
> 
>         print("Please use all lower case letters. date format is dd,mm,yyyy")
> 
>         print("dragon is red, You are green!")
> 
> 
> 
> 
> 
> 
> 
>         # The following code intialises a pygame window where user can track progress of self and dragon
> 
>         # Needed to initialize pygame
> 
>         pygame.init()
> 
> 
> 
>         
> 
> 
> 
> 
> 
> 
> 
>         # define variable for user position
> 
>         userX =75
> 
>         userY =450
> 
> 
> 
> 
> 
> 
> 
>         # define variable for dragon position.
> 
>         dragonX = 0
> 
>         dragonY = 450
> 
>         
> 
>         
> 
>         
> 
>         
> 
> 
> 
>         
> 
>         
> 
>         
> 
>         # Define some Constants(colours and screen size)
> 
>         BLACK = (0, 0, 0)
> 
>         WHITE = (255, 255, 255)
> 
>         GREEN = (0, 255, 0)
> 
>         RED = (255, 0, 0)
> 
>             
> 
>         SCREEN_WIDTH = 700
> 
>         SCREEN_HEIGHT = 500
> 
> 
> 
>         # Create a screen 
> 
>         size = [SCREEN_WIDTH,SCREEN_HEIGHT]
> 
>         screen = pygame.display.set_mode(size)
> 
> 
> 
>         pygame.display.set_caption("dragonEscape Game")
> 
> 
> 
>         # Used to manage how fast the screen updates
> 
>         clock = pygame.time.Clock()
> 
> 
> 
>         #Loop until the user clicks the close button.
> 
>         loop = True
> 
> 
> 
>         # -------- Main Program Loop -----------
> 
>         while loop == True:
> 
>             # EVENT PROCESSING
> 
>             for event in pygame.event.get():    
> 
>                 if event.type == pygame.QUIT:   
> 
>                     loop = False                 
> 
> 
> 
>             #if user is caught
> 
> 
> 
>             if userX <= dragonX:
> 
>                 print("The dragon ate you for dinner!")
> 
>                 loop = False
> 
>                 gameLoop = False
> 
> 
> 
> 
> 
>             #if user wins
> 
>             if userX >= 680:
> 
>             
> 
>                 print("You win!")
> 
>                 loop = False
> 
>                 gameLoop = False
> 
>                 
> 
>             
> 
>          
> 
>             # DRAW COMMANDS
> 
>             screen.fill(WHITE)
> 
> 
> 
>         
> 
>             pygame.draw.rect(screen, GREEN, [userX,userY,50,50])
> 
>             pygame.draw.rect(screen, RED, [dragonX,dragonY,50,50])
> 
>             pygame.draw.line(screen, BLACK, [680,0],[680,500],40)
> 
> 
> 
> 
> 
>             #Code to generate random number
> 
> 
> 
>             questionSelection = random.randrange(1,10)
> 
> 
> 
> 
> 
>             # if statements that select question randomly based on random number generated and collects user answer
> 
>             print("")
> 
>             print("")
> 
>             print("")
> 
>             print("")
> 
>             print("")
> 
>             print("")
> 
>             if questionSelection == 1:
> 
>                 print(que1)
> 
>                 playerAnswer = input("What do you think the answer is?")
> 
>                 if playerAnswer ==ans1:
> 
>                     print("Correct!")
> 
>                     userX += 75
> 
>                 else:
> 
>                     print("UH-OH!")
> 
>                     dragonX += 75
> 
>                     
> 
>                     
> 
> 
> 
>             
> 
> 
> 
>             elif questionSelection == 2:
> 
>                 print(que1)
> 
>                 playerAnswer = input("What do you think the answer is?")
> 
>                 if playerAnswer ==ans2:
> 
>                     print("Correct!")
> 
>                     userX += 75
> 
>                 else:
> 
>                     print("UH-OH!")
> 
>                     dragonX += 75
> 
>                     
> 
>                     
> 
> 
> 
>             elif questionSelection == 3:
> 
>                 print(que1)
> 
>                 playerAnswer = input("What do you think the answer is?")
> 
>                 if playerAnswer ==ans3:
> 
>                     print("Correct!")
> 
>                     userX += 75
> 
>                 else:
> 
>                     print("UH-OH!")
> 
>                     dragonX += 75
> 
>                     
> 
> 
> 
>             elif questionSelection == 4:
> 
>                  print(que1)
> 
>                 playerAnswer = input("What do you think the answer is?")
> 
>                 if playerAnswer ==ans4:
> 
>                     print("Correct!")
> 
>                     userX += 75
> 
>                 else:
> 
>                     print("UH-OH!")
> 
>                     dragonX += 75
> 
>                     
> 
> 
> 
>             elif questionSelection == 5:
> 
>                 print(que1)
> 
>                 playerAnswer = input("What do you think the answer is?")
> 
>                 if playerAnswer ==ans5:
> 
>                     print("Correct!")
> 
>                     userX += 75
> 
>                 else:
> 
>                     print("UH-OH!")
> 
>                     dragonX += 75
> 
>                     
> 
>                     
> 
> 
> 
>             
> 
> 
> 
>             elif questionSelection == 6:
> 
>                 print(que1)
> 
>                 playerAnswer = input("What do you think the answer is?")
> 
>                 if playerAnswer ==ans6:
> 
>                     print("Correct!")
> 
>                     userX +=75
> 
>                 else:
> 
>                     print("UH-OH!")
> 
>                     dragonX += 75
> 
>                     
> 
> 
> 
>             elif questionSelection == 7:
> 
>                 print(que1)
> 
>                 playerAnswer = input("What do you think the answer is?")
> 
>                 if playerAnswer ==ans7:
> 
>                     print("Correct!")
> 
>                     userX += 75
> 
>                 else:
> 
>                     print("UH-OH!")
> 
>                     dragonX += 75
> 
>                     
> 
>             elif questionSelection == 8:
> 
>                 print(que1)
> 
>                 playerAnswer = input("What do you think the answer is?")
> 
>                 if playerAnswer ==ans8:
> 
>                     print("Correct!")
> 
>                     userX += 76
> 
>                 else:
> 
>                     print("UH-OH!")
> 
>                     dragonX += 75
> 
>                     
> 
> 
> 
>             else:
> 
>                 print(que9)
> 
>                 playerAnswer = input("What do you think the answer is?")
> 
>                 if playerAnswer == ans9:
> 
>                     print("Correct!")
> 
>                     userX += 25
> 
>                 else:
> 
>                     print("UH-OH!")
> 
>                     dragonX += 75
> 
>                     
> 
>                     
> 
>             print("")
> 
>             print("")
> 
>             print("")
> 
>             print("")
> 
>             print("")
> 
>             
> 
>             
> 
>             
> 
>             
> 
>             # Update Screen
> 
>             pygame.display.flip()
> 
> 
> 
>             # Set frames per second
> 
>             clock.tick(20)
> 
>         # -------- End of Main Program Loop --------
> 
> 
> 
> 
> 
>         # Close the window and quit.
> 
>         pygame.quit()
> 
> 
> 
> 
> 
> #game over, ending remarks.
> 
> print("Thanks for playing!")


Hi Saad,

I've had a play and the following "does something".
(I'm running Python 2.7 so replaced input with raw_input.)
(User can use upper or lower case, just lower it before test.)
(I simplified the questions/answers so I could answer them.)

I'm out of time but hope the following helps.

Kind regards,


Michael


#!/usr/bin/env python
"""
    This is a game where you have to escape a dragon.
    By Saad Imran

"""

import random
import pygame

# Define questions and answers.

QUE = {1: "4 x 2",
       2: "3 x 6",
       3: "2 x 5",
       4: "6 / 2",
       5: "7 + 7",
       6: "8 - 3",
       7: "5 x 5",
       8: "4 / 1",
       9: "0 x 6", }

ANS = {1: "8;75;75",
       2: "18;75;75",
       3: "10;75;75",
       4: "3;75;75",
       5: "14;75;75",
       6: "5;75;75",
       7: "25;75;75",
       8: "4;75;75",
       9: "0;75;75", }

# intro
print("Welcome!\n")
NAME = raw_input("What is your name?: ")
print("\nYou are in a cave and hear a dragon %s!" % NAME)
print("Thinking you are doomed, you panic and run")

# Ask whether user wants to play or not
print("You run into a wizard who tells you that he will")
print("teleport you out of the cave if you solve his questions!\n")
GAME = raw_input("Do you trust him? (y/n): ")

#if he doesn't game is ended
if GAME.lower() == "n":
    print("The dragon catches you and you are doomed!\n")
    GAMELOOP = False
    LOOP = False

# if he does, game starts
else:
    GAMELOOP = True
    while GAMELOOP == True:
        print("(Dragon is red, You are green!)\n")

# Following code intialises a pygame window
# where user can track progress of self and dragon.
# Initialize pygame
        pygame.init()

# define variable for user position
        USERX = 75
        USERY = 450

# define variable for dragon position.
        DRAGONX = 0
        DRAGONY = 450
       
# Define some Constants(colours and screen size)
        BLACK = (0, 0, 0,)
        WHITE = (255, 255, 255,)
        GREEN = (0, 255, 0,)
        RED = (255, 0, 0,)
           
        SCREEN_WIDTH = 700
        SCREEN_HEIGHT = 500

# Create a screen
        SIZE = [SCREEN_WIDTH, SCREEN_HEIGHT]
        SCREEN = pygame.display.set_mode(SIZE)
        pygame.display.set_caption("dragonEscape Game")

# Used to manage how fast the screen updates
        CLOCK = pygame.time.Clock()

# Loop until the user clicks the close button.
        LOOP = True

# -------- Main Program Loop -----------
        while LOOP:
# EVENT PROCESSING
            for event in pygame.event.get():    
                if event.type == pygame.QUIT:  
                    LOOP = False                
# DRAW COMMANDS
            SCREEN.fill(WHITE)
            pygame.draw.rect(SCREEN, GREEN, [USERX, USERY, 50, 50])
            pygame.draw.rect(SCREEN, RED, [DRAGONX, DRAGONY, 50, 50])
            pygame.draw.line(SCREEN, BLACK, [680, 0], [680, 500], 40)
            pygame.display.flip()

# Code to generate random number
            QUESEL = random.randrange(1, 10)
# if statements that select question randomly based on random number generated
# and collects user answer.

            print("\n"*3)
            print(QUE[QUESEL])
            PLAYERANS = raw_input("What do you think the answer is? ")
            if PLAYERANS.lower() == ANS[QUESEL].split(';')[0].lower():
                print("Correct!")
                USERX += int(ANS[QUESEL].split(';')[1])
            else:
                print("UH-OH!")
                DRAGONX += int(ANS[QUESEL].split(';')[2])
            print "\n"*2 

# Update Screen
            pygame.display.flip()
            CLOCK.tick(20)

#if user is caught
            if USERX <= DRAGONX:
                print("The dragon ate you for dinner!")
                LOOP = False
                GAMELOOP = False
#if user wins
            if USERX >= 680:
                print("You win!")
                LOOP = False
                GAMELOOP = False

# Set frames per second
# --------- End of Main Program Loop ---------

        # Close the window and quit.
        pygame.quit()

#game over, ending remarks.
print "Thanks for playing!"




More information about the Python-list mailing list