2013-12-17 97 views
0

我是一个相当新的程序员,我正在学习如何使用codeskulptor中的simplegui!我做了一个猜谜游戏,我用2个按钮制作了一个画布。 1按钮设置他们可以从0到100猜测的数字范围,另一个从0到1000.我想添加第三个按钮“新游戏!”。当他们推动它时,一切都会重新设置,并且他们可以再次播放,而不必退出画面。你可以在http://www.codeskulptor.org/#user27_FQ1uDycAiykat13_0.py看到我的代码感谢您的帮助!重新运行Simplegui游戏

#imports 
import math 
import simplegui 
import random 

#global variables 
secret_num = random.randint(0, 100) 
max_guesses = 7 

#define event handlers for control panel 

def range100(): 
    global secret_num, max_guesses 
    secret_num = random.randint(0, 100) 
    max_guesses = 7 
    print "You've selected to guess a number between 0 and 100! Good luck!\n" 
    #button that changes range to [0,100) 

def range1000(): 
    global secret_num, max_guesses 
    secret_num = random.randint(0, 1000) 
    max_guesses = 10 
    print "You've selected to guess a number between 0 and 1000! Good luck!\n" 
#button that changes range to 0,1000 

def get_input(guess): 
    global count, max_guesses 
    max_guesses -= 1 
    num_guessed = int(guess) 
    if num_guessed == secret_num: 
     print guess + " IS CORRECT! YOU WIN!\n" 
    elif max_guesses > 0: 
     if num_guessed > secret_num: 
      print "You guessed", num_guessed, "." 
      print "You need to guess LOWER! You have", max_guesses, "guesses   remaining!\n" 
     elif num_guessed < secret_num: 
      print "You guessed", num_guessed, "." 
      print "You need to guess HIGHER! You have", max_guesses, "guesses remaining!\n" 
    else: 
     print "YOU LOSE, LOSER! TRY AGAIN FOR BETTER LUCK!" 
     print "The correct answer was", secret_num 

#create a frame 
f = simplegui.create_frame('Guessing Game!', 250, 250) 
f.set_canvas_background('Cyan') 

#create buttons 
    f.add_button("Guess between (0,100)", range100) 
    f.add_button("Guess between (0,1000)", range1000) 
    f.add_button("New game!", get_input) 
    f.add_input("Enter a guess!", get_input, 200) 
    f.start() 
    print "Welcome to Matt Schaefer's guessing game!" 
    print "Please select the number range you wish to guess, and start your game!\n" 

回答

0

我与蟒蛇太:)

一个新手,我通常定义代表了游戏本身的函数:

例如

def game 
    rand num 
    rand num2 

    def range1 
    def range 2 
    def guesses 

    button 1 
    button2 
    button3 (game) prints "begin game again" 

我希望我帮你:)

ps显然我写的代码并不代表任何东西;)

0

每当您点击其他按钮range100range1000时,新游戏就会启动。 get_input功能仅供您猜测,并不是您想要的新游戏。你会喜欢这个New game!按钮的做法与按钮不同吗?如果你想从最后的设置开始,那么可能是另一个函数,就像range100函数一样,另一个全局变量保存最后的游戏信息,并且当你设置当前游戏全局变量时,设置最后游戏信息range100range1000

当然这只是其中的一种方法。看起来你正在参加Coursera课程“Python中的交互式编程入门”?如果是这种情况,你应该参考forum寻求帮助,而不是在这里。