Discussion in 'Python' started by saad imran, Nov 13, 2013.

Could you point out any errors in my code:

#This is a game where you have to escape a dragon.

import random
import pygame

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)
print("Correct!")
userX += 75
else:
print("UH-OH!")
dragonX += 75

elif questionSelection == 2:
print(que1)
print("Correct!")
userX += 75
else:
print("UH-OH!")
dragonX += 75

elif questionSelection == 3:
print(que1)
print("Correct!")
userX += 75
else:
print("UH-OH!")
dragonX += 75

elif questionSelection == 4:
print(que1)
print("Correct!")
userX += 75
else:
print("UH-OH!")
dragonX += 75

elif questionSelection == 5:
print(que1)
print("Correct!")
userX += 75
else:
print("UH-OH!")
dragonX += 75

elif questionSelection == 6:
print(que1)
print("Correct!")
userX +=75
else:
print("UH-OH!")
dragonX += 75

elif questionSelection == 7:
print(que1)
print("Correct!")
userX += 75
else:
print("UH-OH!")
dragonX += 75

elif questionSelection == 8:
print(que1)
print("Correct!")
userX += 76
else:
print("UH-OH!")
dragonX += 75

else:
print(que9)
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!")

2. ### Gary HerronGuest

On 11/12/2013 08:18 PM, saad imran wrote:
> Could you point out any errors in my code:
>
>

<Snip 280+ lines of code.>

Nope.

You've got to do *some* of the work if you expect free volunteer help
from people around here. Take the time to tell us what you expect this
program to do, what actually happens when you run it, what errors you
get. If you get Python traceback, cut and paste it into an email.
Tell us how you have tried to fix the problem, whatever that may be.
Give some hint where in the nearly 300 lines of code the problem may be
occurring.

You can get lots of free volunteer help from this group, but the
question, as you've asked it, is a misuse (or even an *abuse*) of this
group.

Gary Herron

Gary Herron, Nov 13, 2013

3. ### Mark LawrenceGuest

On 13/11/2013 04:34, Gary Herron wrote:
> On 11/12/2013 08:18 PM, saad imran wrote:
>> Could you point out any errors in my code:
>>
>>

> <Snip 280+ lines of code.>
>
> Nope.
>
>
>
> You've got to do *some* of the work if you expect free volunteer help
> from people around here. Take the time to tell us what you expect this
> program to do, what actually happens when you run it, what errors you
> get. If you get Python traceback, cut and paste it into an email. Tell
> us how you have tried to fix the problem, whatever that may be. Give
> some hint where in the nearly 300 lines of code the problem may be
> occurring.
>
> You can get lots of free volunteer help from this group, but the
> question, as you've asked it, is a misuse (or even an *abuse*) of this
> group.
>
> Gary Herron
>
>

It's my belief that the above is way OTT given the dross we've had to
put up with from a certain Greek individual over the last few months.
Why isn't the OP here being spoon fed?

--
Python is the second best programming language in the world.
But the best has yet to be invented. Christian Tismer

Mark Lawrence

Mark Lawrence, Nov 13, 2013
4. ### Dave AngelGuest

On Tue, 12 Nov 2013 20:18:58 -0800 (PST), saad imran
<> wrote:
> Could you point out any errors in my code:
> que1 = "4481 *2"
> ans1 = "8962"
> que2 = "457 * 21"
> ans2 = "9597"

These values should all be in a single named structure, probably a
list of tuples. Then all that duplicated code could be condensed into
a single block.

Is that the error you wanted us to find?

--
DaveA

Dave Angel, Nov 13, 2013
5. ### Steven D'ApranoGuest

On Tue, 12 Nov 2013 20:18:58 -0800, saad imran wrote:

> Could you point out any errors in my code:

As others have pointed out, you'll have better results if you tell us
what errors you have, what result you actually expected, and what you
have tried to do to fix it.

If you just want a general code review, it is best to make that clear by
saying you have no known errors.

Also, unfortunately not everyone here is familiar with PyGame. For PyGame
questions, you may be better asking for help on a PyGame forum or mailing
list. We'll help if we can, but we're not experts.

I haven't gone through your entire program in detail, but one small thing
stands out:

> # intro
> print("Welcome!")
> print("")

You don't need to print the empty string to get a blank like. You can
either call print with no arguments:

print("Welcome!")
print()

or you can manually add an extra newline to the string:

print("Welcome!\n")

Hope this helps,

--
Steven

Steven D'Aprano, Nov 13, 2013
6. ### mkharperGuest

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.
>
>
>
>
> 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)
>
>
>
> print("Correct!")
>
> userX += 75
>
> else:
>
> print("UH-OH!")
>
> dragonX += 75
>
>
>
>
>
>
>
>
>
>
>
> elif questionSelection == 2:
>
> print(que1)
>
>
>
> print("Correct!")
>
> userX += 75
>
> else:
>
> print("UH-OH!")
>
> dragonX += 75
>
>
>
>
>
>
>
> elif questionSelection == 3:
>
> print(que1)
>
>
>
> print("Correct!")
>
> userX += 75
>
> else:
>
> print("UH-OH!")
>
> dragonX += 75
>
>
>
>
>
> elif questionSelection == 4:
>
> print(que1)
>
>
>
> print("Correct!")
>
> userX += 75
>
> else:
>
> print("UH-OH!")
>
> dragonX += 75
>
>
>
>
>
> elif questionSelection == 5:
>
> print(que1)
>
>
>
> print("Correct!")
>
> userX += 75
>
> else:
>
> print("UH-OH!")
>
> dragonX += 75
>
>
>
>
>
>
>
>
>
>
>
> elif questionSelection == 6:
>
> print(que1)
>
>
>
> print("Correct!")
>
> userX +=75
>
> else:
>
> print("UH-OH!")
>
> dragonX += 75
>
>
>
>
>
> elif questionSelection == 7:
>
> print(que1)
>
>
>
> print("Correct!")
>
> userX += 75
>
> else:
>
> print("UH-OH!")
>
> dragonX += 75
>
>
>
> elif questionSelection == 8:
>
> print(que1)
>
>
>
> print("Correct!")
>
> userX += 76
>
> else:
>
> print("UH-OH!")
>
> dragonX += 75
>
>
>
>
>
> else:
>
> print(que9)
>
>
>
> 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,

You have and odd "gameloop". All others are "gameLoop".

Michael

mkharper, Nov 13, 2013
7. ### mkharperGuest

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.
>
>
>
>
> 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)
>
>
>
> print("Correct!")
>
> userX += 75
>
> else:
>
> print("UH-OH!")
>
> dragonX += 75
>
>
>
>
>
>
>
>
>
>
>
> elif questionSelection == 2:
>
> print(que1)
>
>
>
> print("Correct!")
>
> userX += 75
>
> else:
>
> print("UH-OH!")
>
> dragonX += 75
>
>
>
>
>
>
>
> elif questionSelection == 3:
>
> print(que1)
>
>
>
> print("Correct!")
>
> userX += 75
>
> else:
>
> print("UH-OH!")
>
> dragonX += 75
>
>
>
>
>
> elif questionSelection == 4:
>
> print(que1)
>
>
>
> print("Correct!")
>
> userX += 75
>
> else:
>
> print("UH-OH!")
>
> dragonX += 75
>
>
>
>
>
> elif questionSelection == 5:
>
> print(que1)
>
>
>
> print("Correct!")
>
> userX += 75
>
> else:
>
> print("UH-OH!")
>
> dragonX += 75
>
>
>
>
>
>
>
>
>
>
>
> elif questionSelection == 6:
>
> print(que1)
>
>
>
> print("Correct!")
>
> userX +=75
>
> else:
>
> print("UH-OH!")
>
> dragonX += 75
>
>
>
>
>
> elif questionSelection == 7:
>
> print(que1)
>
>
>
> print("Correct!")
>
> userX += 75
>
> else:
>
> print("UH-OH!")
>
> dragonX += 75
>
>
>
> elif questionSelection == 8:
>
> print(que1)
>
>
>
> print("Correct!")
>
> userX += 76
>
> else:
>
> print("UH-OH!")
>
> dragonX += 75
>
>
>
>
>
> else:
>
> print(que9)
>
>
>
> 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!")

Also....

QUE = {1: "4481 *2",
2: "457 * 21",
3: "2345*23",
4: "Who plays against the USA in golf's Walker Cup?",
5: "Which game is played in autumn using the fruit of the horse chestnut tree?",
6: "From what country does Lego come?",
7: "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?",
8: "What date was D-Day?",
9: "Who is called the 'Great One' in hockey history?", }

ANS = {1: "8962;75;75",
2: "9597;75;75",
3: "53935;75;75",
4: "britain;75;75",
5: "conkers;75;75",
6: "denmark;75;75",
7: "umpire;75;75",
8: "06,06,1944;76;75",
9: "wayne gretzky;25;75", }

and then just test the question/answer with:

queSel = random.randrange(1, 10)

print("\n"*6)

print(QUE[queSel])
print("Correct!")
USERX += ANS[queSel].split(';')[1]
else:
print("UH-OH!")
DRAGONX += ANS[queSel].split(';')[2]

print("\n"*5)

I'm sure there's better ways. This is just what came to mind.

Regards,

Michael

mkharper, Nov 13, 2013
8. ### mkharperGuest

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.
>
>
>
>
> 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)
>
>
>
> print("Correct!")
>
> userX += 75
>
> else:
>
> print("UH-OH!")
>
> dragonX += 75
>
>
>
>
>
>
>
>
>
>
>
> elif questionSelection == 2:
>
> print(que1)
>
>
>
> print("Correct!")
>
> userX += 75
>
> else:
>
> print("UH-OH!")
>
> dragonX += 75
>
>
>
>
>
>
>
> elif questionSelection == 3:
>
> print(que1)
>
>
>
> print("Correct!")
>
> userX += 75
>
> else:
>
> print("UH-OH!")
>
> dragonX += 75
>
>
>
>
>
> elif questionSelection == 4:
>
> print(que1)
>
>
>
> print("Correct!")
>
> userX += 75
>
> else:
>
> print("UH-OH!")
>
> dragonX += 75
>
>
>
>
>
> elif questionSelection == 5:
>
> print(que1)
>
>
>
> print("Correct!")
>
> userX += 75
>
> else:
>
> print("UH-OH!")
>
> dragonX += 75
>
>
>
>
>
>
>
>
>
>
>
> elif questionSelection == 6:
>
> print(que1)
>
>
>
> print("Correct!")
>
> userX +=75
>
> else:
>
> print("UH-OH!")
>
> dragonX += 75
>
>
>
>
>
> elif questionSelection == 7:
>
> print(que1)
>
>
>
> print("Correct!")
>
> userX += 75
>
> else:
>
> print("UH-OH!")
>
> dragonX += 75
>
>
>
> elif questionSelection == 8:
>
> print(que1)
>
>
>
> print("Correct!")
>
> userX += 76
>
> else:
>
> print("UH-OH!")
>
> dragonX += 75
>
>
>
>
>
> else:
>
> print(que9)
>
>
>
> 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!")

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'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.

"""

import random
import pygame

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

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!"

mkharper, Nov 13, 2013
9. ### Peter OttenGuest

mkharper wrote:

>
> 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'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.
>
> """
>
> 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", }
>

> # Code to generate random number
> QUESEL = random.randrange(1, 10)

You can simplify that some more by putting question/answer pairs into a list

qa_pairs = [
("What is 4 x 2? ", "8"),
("What is 3 x 6? ", "18"),
#...
]

and then use random.choice() and tuple unpacking

if input(question) == answer: # python 2: replace input with raw_input
print("correct")
else:
print("UH-OH!")

You can nest the tuples if you really need other data

qa_pairs = [
("What is 4 x 2? ", ("8", 75, 75)),
("What is 3 x 6? ", ("18", 75, 75)),
#...
]