我对编程游戏相当陌生;我已经3/4完成了艰苦地学习Python
,我有一个关于我制作的一个基于文本的小游戏的问题。。。所以在这个游戏中,我的家伙被困在一个荒岛上,你可以选择(原始输入)向左
向右
或
进入丛林
。选择方向后,您可以选择步行多少英里。每个方向都应该有不同的最终结果(和英里距离)。
如果您输入的数字小于到达目的地的英里数,系统会提示您选择“掉头”或“继续”。如果您输入
掉头
,系统会将您带回起点,再次要求您选择方向。如果您输入继续
,程序将返回到英里(),您可以选择新的步行里程数。
def miles():
print "How many miles do you walk?"
miles_choice = raw_input("> ")
how_much = int(miles_choice)
if how_much >= 10:
right_dest()
elif how_much < 10:
turn()
else:
print "You can't just stand here..."
miles()
好的,这里有两个问题:
>
我将如何使它,如果用户最初输入的里程数小于目的地距离,并且第二英里输入的第一英里输入==到达目的地的里程数,它将添加输入和运行我的目标函数,而不仅仅是重复英里()。
由于所有三个最终目的地都有不同的距离,我是否应该编写三个独立的英里函数?有没有办法让miles()根据选择的原始方向运行不同的endpoint?
我很抱歉,如果这没有任何意义。。。我仍在学习,我不知道如何充分解释我想要表达的意思。
@问题#1:我使用了Class实习生变量。你可能会需要他们进一步编程的部分,应该把它归零,当你完成一个方向,从零开始下一步/lvl。
@问题#2:字典是最好的方法,self.dest
。参数pos
用作从字典中获取值的键。
class MyGame:
def __init__(self):
self.current_miles = 0
self.dest = {'Left' : 10, 'Into the jungle' : 7, 'Right' : 22}
def miles(self,pos):
print "How many miles do you walk?"
miles_choice = raw_input("> ")
self.current_miles += int(miles_choice)
if self.current_miles >= self.dest.get(pos):
self.miles("Right")
elif self.current_miles < self.dest.get(pos):
print "you went "+ str(self.current_miles) + " miles"
else:
print "You can't just stand here..."
self.miles(pos)
mg = MyGame()
mg.miles('Into the jungle')
我不完全理解需求(预期行为和约束)。但是,您可以考虑将参数传递给函数(通过和参数),以传递该游戏在该方向上所能达到的最大英里数。
例如:
#!/usr/bin/env python
# ...
def miles(max_miles=10):
print "How many miles do you walk?"
while True:
miles_choice = raw_input("> ")
try:
how_much = int(miles_choice)
except ValueError, e:
print >> sys.stderr, "That wasn't a valid entry: %s" % e
continue
if max_miles > how_much > 0:
break
else:
print "That's either too far or makes no sense"
return how_much
... 在这种情况下,通过“max_miles”参数将最大有效英里数传递给函数,然后返回一个有效整数(介于1和max_miles之间)。
这个函数的调用者有责任调用right_dest()
或open()
。
请注意,我已经删除了对miles()
的递归调用,并将其替换为,而True:
循环是围绕try:。。。除了ValueError:
验证循环。在这种情况下,这比递归更合适。当“多少”的值有效时,代码将从循环中断开。
(顺便说一下,如果你调用
miles()
没有参数,那么参数将根据默认参数功能设置为10。这对Python(和Ruby)来说是不寻常的...但是基本上使得参数对于有合理默认值的情况是可选的)。
您可以在dict中存储每个方向行走的英里数,然后检查dict以查看用户是否走得足够远:
distances = {
'right': 7,
'left': 17,
'forward': 4
}
direction_choice = raw_input("> ")
miles_choice = raw_input("> ")
if how_much >= distances['direction_choice']:
right_dest()
elif how_much < distances['direction_choice']:
turn()
else:
print "You can't just stand here..."
miles()
请确保正确验证和转换用户输入,我没有解决这个问题。祝你好运!
嗨,我真的不确定从哪里开始,但我只是想学习ajax和php,但不确定我在这里错过了什么。 和我的文件... 只是想知道如何在php文件中获得要受影响的值,然后返回并更新?
我试图制作一个简单的基于文本的游戏,在这个游戏中,你在一个由“#”组成的网格周围移动“@”,并试图找到出口。我已经改变了代码,使我更容易使网格更大或更小,而无需添加或删除大量代码,它一直给我这样的输出: 我不知道这是怎么回事!只有一个“@”应该出现:(我只是python的新手,所以如果您有任何改进的建议,请不要犹豫,然后发布它们!提前感谢,
本文向大家介绍python初学者,用python实现基本的学生管理系统(python3)代码实例,包括了python初学者,用python实现基本的学生管理系统(python3)代码实例的使用技巧和注意事项,需要的朋友参考一下 这个是用python实现的基本的增删改查的学生管理系统吧,其中主要是对输入的数据进行合法性检测的问题,这次又对函数进行了练习!掌握函数更加熟练了!二话不说先贴代码,一切问题
我需要一个基于文本的python游戏的帮助,我已经完成了大部分工作,我可以在所有3个房间之间移动,顶部有“大厅”,然后往南走“卧室”往东走“地窖”我可以往回走,所以往西走“卧室”向北走,最后回到大厅。 问题是,如果我在大厅里输入东,它会跳到地窖,而不是说无效移动,那里有一面墙。我想做的是 显示玩家当前所在房间的输出。决策分支告诉游戏如何处理不同的命令。命令可以是在房间之间移动(如向北、向南、向东或
您好,我是新来的编码和创建一个基于文本的游戏在python中。我正在写代码从一个房间搬到另一个房间。我需要一些人帮我清理目前为止所做的事情。我运行了一个即时反馈程序,得到了以下提示,但不确定如何纠正: 大厅字符串是主字典中的一个关键字。修改代码,使其不是主字典中的关键字。 它说它不能分类我的代码(不确定那是什么意思) 将多个打印命令合并到一个函数中 使用非复杂条件使条件更简单 更好地练习在True
我正在为我的Java入门课做一个“石头,纸,剪刀”游戏。这里是提示:创建一个“石头,纸,剪刀”的游戏,在这里计算机随机选择石头,纸,或剪刀。让用户输入一个1、2或3的数字,每个数字代表三种选择中的一种。确定胜利者。游戏应该要求用户重新玩,如果是继续玩,如果不是停止玩。一旦用户停止播放,程序应该打印总的胜利数。 我在正确的位置声明我的变量时遇到了问题,因为我试图使用一个方法,这样我就可以调用它来再次