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
start time 16:00--finish time 22:00 效率十分低
在输入框中输入数字,并显示在画布上,点击提交后,确认输入后,系统提示猜数线索,或者提示成功,game over等。
现在实现的难度:
现在不知道python语言里有哪些可以调用的模块和函数。预想整体编程的思路是这样的:
new game 函数?用click作为事件?
定义input函数?如何解决数值输入问题? input后显示在画布上,用定义inputdraw函数解决 显示线索,用hintdraw函数? input的次数计数如何实现?
先选择随机范围的话进入游戏,然后判断各种,进行游戏。
【目前断断续续写了代码如下】
# 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函数如何输出结果不太清楚。