python - 从玩家那里得到输入后,猜数字游戏停止
问题描述
我做了这个简单的猜数字游戏,但是当我尝试它时,代码在获得玩家输入后结束。
代码:
class Gra():
def __init__(self, minimum, maximum, dobra_liczba):
self.minimum = minimum
self.maximum = maximum
self.dobra_liczba = dobra_liczba
def sprawdz_liczbe_int(self, liczba):
print("sprawdzam liczbe")
if isinstance(liczba, int) and self.minimum <= liczba <= self.maximum:
return True
else:
return False
def czy_liczba_trafiona(self, liczba):
if liczba == self.dobra_liczba:
print("trafiłeś!")
else:
print("pudło!")
def graj(self):
x = int(input("wpisz liczbe od "+str(self.minimum)+" do "+str(self.maximum)+": "))
print(x)
if self.sprawdz_liczbe_int(x) == True:
self.czy_liczba_trafiona(x)
a1 = Gra(0, 100, 50)
a1.graj()
我尝试运行此代码但它没有工作,但是当我尝试在线编译器代码时工作。
解决方案
我在这里假设您希望玩家继续玩直到他被击中。在这种情况下,您需要循环调用玩家输入猜测的方法,在您的情况下就是graj(self)
方法。此外,如果您的方法是返回一个布尔值,例如 in 中的sprawdz_liczbe_int(self, liczba)
那个,那么您不需要“if”语句,因为返回语句本身就足够了。
class Gra():
def __init__(self, minimum, maximum, dobra_liczba):
self.minimum = minimum
self.maximum = maximum
self.dobra_liczba = dobra_liczba
def sprawdz_liczbe_int(self, liczba):
print("sprawdzam liczbe")
return isinstance(liczba, int) and self.minimum <= liczba <= self.maximum # Immediately return the result of the statement whether it's True or False
def czy_liczba_trafiona(self, liczba):
if liczba == self.dobra_liczba:
print("trafiłeś!")
else:
print("pudło!")
self.graj() # Loop over the input method
def graj(self):
x = int(input("wpisz liczbe od "+str(self.minimum)+" do "+str(self.maximum)+": "))
print(x)
if self.sprawdz_liczbe_int(x): # Basically saying: "If True:"
self.czy_liczba_trafiona(x)
a1 = Gra(0, 100, 50)
a1.graj()
推荐阅读
- java - 如果未选择任何选项,则以角度禁用 nb-stepper 按钮
- html - 在 Dash 中将破折号组件向右移动
- sql-server - 努力将动态 SQL 语句链接在一起而没有错误
- rust - Rust crates 的发行说明在哪里发布
- kubernetes - 终止宽限期秒未按预期工作
- elasticsearch - 将搜索短语匹配到布尔字段值
- sql - 在 BigQuery 标准 SQL 中,如何获取行子集的中位数
- java - hive 2.3.9 无法使用 JDBC Uri 打开客户端传输:jdbc:hive2://localhost:10000/default: java.net.ConnectException: Connection denied
- typescript - 从不同文件导入多个同名模块
- extjs - Extjs 用于可视化图表数据的问题,该图表从控制器中的存储集加载它们