纯小白学python

Guess the number 作业思路记录

Start time:20150326 10:32

本打算昨天回家学习4个小时,把完成作业所需要的知识点都能过一遍,结果回家后断网,无法完成作业前知识点储备。(提示:不要给任务太紧促的时间,不可预测因素总是有的,任务尽量提前

由于前期没有跟上coursera lecture进度,目前为止只看到week 1a,还有各种不熟练和不清楚的地方。所以在做这个作业之前没有足够的知识铺垫。

时间紧迫,我就先看了一下和作业直接相关的lecture,看看是什么题目,产生对任务要求的直观印象。

以我现有的知识,大致想了一下,完成作业需要的相关知识。

  • 第一步,如何产生随机数? 应该可以直接调用随机函数。

  • 第二步,解决输入数字的问题。如何让用户能够输入数字,并让系统可以识别?

  • 第三步,让被系统识别的数字,和随机产生的数进行比较,用一些if then 语句 让系统反馈给用户,是lower,还是higher,还是correct

  • 第四步,如何让系统可以计数用户到达correct之前的所有输入次数。

  • 第五步,设定界限,根据用户的输入次数,用if语句,来确定游戏的终止。

感觉思路还是太粗糙,跑去看了一下看了别人作业的源代码,发现需要代码行数很多!各种代码组块,我也没有看懂。我粗浅的认识是代码越简洁,越容易看懂。

那我还是带着问题进行相关知识储备再来做作业吧。不然我自己都不知道我在写什么。

finish time:10:42

guess the number 进一步思考问题(20150411)

start time 16:00--finish time 22:00 效率十分低

【实现效果设想】

在输入框中输入数字,并显示在画布上,点击提交后,确认输入后,系统提示猜数线索,或者提示成功,game over等。

现在实现的难度:

现在不知道python语言里有哪些可以调用的模块和函数。预想整体编程的思路是这样的:

  • 定义函数
  • 确定流程
  • 显示结果

1.定义几个关键函数?

new game 函数?用click作为事件?

定义input函数?如何解决数值输入问题? input后显示在画布上,用定义inputdraw函数解决 显示线索,用hintdraw函数? input的次数计数如何实现?

2.流程如何制定?

先选择随机范围的话进入游戏,然后判断各种,进行游戏。

3.如何将各种结果显示在画布上?

【目前断断续续写了代码如下】

# a game called "guess the number"
import random
import simplegui
import math

# initialize global variables

# user select a game range
def select1():
    global secretnumber100
    secretnumber100 = random.randrange(1,100)
    return secretnumber100

def select2():
    global secretnumber1000
    secretnumber1000 = random.randrange(1,1000)
    return secretnumber1000

def guessnumber(inp):
    guessnumber = int(inp)
    global hint
    if guessnumber > secretnumber100:
       hint = "lower"
    elif guessnumber < secretnumber100:
    hint = "higher"
    elif guessnumber == secretnumber100:
    hint = "right"
    return hint

# create frame
f = simplegui.create_frame("guess the number",200,200)
# register event handle
f.add_button("1-100",select1,100)
f.add_button("1-1000",select2,100)
f.add_input("please,enter your number",guessnumber,80,)
f.add_button("Submmit",guessnumber,60)

# draw the result in canvas  
def draw(canvas):
if select1():
   canvas.draw_text("hint",[80,20],"Red")
elif select():
   canvas.draw_text("hint",[60,20],"Red")

问题1:目前代码,实现了框架和按钮的布局。由于没有游戏开始设置,无法判断其他代码是否正常运行。

问题3:guessnumber的输入没有实现

问题2:代码未完成,关于draw函数如何输出结果不太清楚。