【发布时间】:2019-11-03 00:01:44
【问题描述】:
任务要求制作一个剪刀石头布游戏,用户选择一个选项,然后random.randint(0,2) 为计算机生成随机选项。
我已经写了一个工作游戏(芬兰语的变量、函数和打印):
import random
kierrokset = 0
voitot = 0
tasapelit = 0
def arvoTietokone():
tietokone = random.randint(0,2)
if tietokone == 0:
print("tietokone valitsi: Jalka")
return tietokone
elif tietokone == 1:
print("tietokone valitsi: Ydinase")
return tietokone
else:
print("tietokone valitsi: Torakka")
return tietokone
def arvoVoittaja(pelaaja, tietokone):
global kierrokset, voitot, tasapelit
if pelaaja == "Jalka":
if tietokone == 0:
print("Tasapeli!")
tasapelit += 1
kierrokset += 1
elif tietokone == 1:
print("Hävisit!")
kierrokset += 1
else:
print("Voitit!")
voitot += 1
kierrokset += 1
elif pelaaja == "Ydinase":
if tietokone == 0:
print("Voitit!")
voitot += 1
kierrokset += 1
elif tietokone == 1:
print("Tasapeli!")
tasapelit += 1
kierrokset += 1
else:
print("Hävisit!")
kierrokset += 1
elif pelaaja == "Torakka":
if tietokone == 0:
print("Hävisit!")
kierrokset += 1
elif tietokone == 1:
print("Voitit!")
voitot += 1
kierrokset += 1
else:
print("Tasapeli!")
tasapelit += 1
kierrokset += 1
while True:
pelaaja = input("Jalka, Ydinase vai Torakka? (Lopeta lopettaa): ")
if pelaaja == "Lopeta":
print("Pelasit",kierrokset,"joista voitit",voitot,"ja pelasit tasan",tasapelit,"peliä.")
break
print("Sinä valitsit: ",pelaaja)
tietokone = arvoTietokone()
arvoVoittaja(pelaaja, tietokone)
我对代码本身没有任何问题,但关键在于:
课程使用的测试平台对代码进行 3 次不同的测试,每次选择的计算机都必须完全不同。在 Test1 计算机选择必须是 Rock,在 Test2 计算机选择必须是 Paper,在 Test3 计算机选择必须是 Scissors。
How can you produce the choices exactly in that order (Rock, Paper, Scissors) when the choice is generated on random?
就好像任务需要 3 个特定顺序的特定随机数。
这在逻辑上是否可行,还是课程任务无效/设计不当?
我已经向处理课程的老师发送了反馈,但我还没有收到回复。
【问题讨论】:
-
从逻辑上讲,预定义的随机值是没有意义的。从技术上讲,这当然是可能的,例如通过用其他东西替换代码中的“randint”或在实际程序运行之前用适当的值(必须首先找到)调用“random.seed”来操纵随机生成器使其不是随机的。如果程序在回合之间关闭并重新打开,它还需要将其间的状态存储在文件中。
-
您的课程中有文件或网络功能吗?也许该任务根本不需要随机性,而是要求您将程序的状态存储在文件中。 (或者,您可以使用网络服务来存储状态,但这可能超出了家庭作业的范围。)
-
@phihag 文件在前一章学习过,但是平台不允许外部文件,它只是一个预先准备好的提交表单文件,你写代码然后点击“执行”课程平台运行测试以检查代码是否完成任务。我们不会从我们的电脑上提交实际文件,这些文件和其他一切都在平台服务器上运行。我们只需将代码填写到“编辑器”表单中。在任务简报开始时,任务确实说“电脑选择是随机生成的”。
-
@MichaelButscher 是的,但是课程平台只是一个提交字段“编辑器”,我们只是在其中编写代码然后单击“执行”以查看它是否通过测试。无法使用外部文件,文件或测试等所有内容都在平台端运行。我认为任务/课程平台在设计上有错误。
标签: python python-3.x random