0

背景

我正在尝试用 python 编写一个基本的字母游戏。在游戏中,计算机版主从可能的单词列表中挑选一个单词。每个玩家(计算机 AI 和人类)都会看到一系列空白,每个字母对应一个单词。然后每个玩家猜测一个字母和一个位置,并被告知以下内容之一:

  • 那封信属于那个位置(最好的结果)
  • 那个字母在单词中,但不在那个位置
  • 该字母不在任何剩余的空白处

当单词完全显示出来时,猜对最多字母的玩家将赢得一分。电脑版主又选了一个词,重新开始。第一个获得五分的玩家赢得比赛。在基本游戏中,两个玩家共享他们正在填写的同一组空白,因此玩家可以从彼此的工作中受益。

我的问题

有没有办法使用包含整数的变量来指定切片/步幅的程度?

因为秘密词是随机的,我无法知道它将包含多少个字符。我想首先根据用户选择的位置值的准确性来检查用户的输入(猜测),然后再检查字母是否出现在密码中(不仅仅是在他们指定的位置)。我在想我可以使用 len() 来确定秘密单词中的位置数,然后使用玩家的数字输入来切片/跨步到玩家指定的单词中的正确字符位置。

如何将用户提供的整数放入 slice/stride 命令?它似乎不接受将输入分配给变量,然后将变量放在切片/步幅内。

我是 python 的初学者,如果这是一个愚蠢的问题,我深表歉意——我最初的研究没有发现任何问题。

4

2 回答 2

2

简单地说,是的,你可以做到这一点。您需要确保您实际获得的输入一个int,并从那里使用它。

some_word = "This is the song that doesn't end"
stride = int(raw_input("Stride distance? "))

print some_word[::stride]  # prints out "Ti stesn htdented"

查看注释后,您可以通过索引来隔离字符串/序列中的单个字符。

some_word = "This is the song that doesn't end"
iso = int(raw_input("Isolated character? "))

print some_word[iso] # prints out whatever character is in that position, 0-based.
于 2013-04-05T02:15:58.543 回答
0

看起来这样做了,试图根据用户输入 2 来隔离“dude”中的“u”。

userGuessPosition = 2

secretWord = ('dude')
slice1 = (secretWord.__len__()) - userGuessPosition - 1
print (secretWord[slice1:userGuessPosition])
于 2013-04-05T03:01:34.647 回答