<p>首先,<code>random.randint(3,4)</code>只返回3或4。。。如果需要其余值,则需要为<code>(0,4)</code>。在</p>
<p>其次,这个部分不起作用,因为<code>if False</code>从来没有输入过。在</p>
<pre><code>AskYesNo('Would you like to spin? Enter y/n ')
if False:
break
</code></pre>
<p>你需要从那个函数中得到布尔值。在</p>
^{pr2}$
<p>其他一些建议包括不要重复太多。使它<a href="https://softwareengineering.stackexchange.com/questions/73065/what-are-dry-kiss-solid-etc-classified-as">DRY</a></p>
<p>例如,从</p>
<p><a href="https://stackoverflow.com/questions/3787908/python-determine-if-all-items-of-a-list-are-the-same-item">Python: determine if all items of a list are the same item</a></p>
<pre><code>def all_same(items, element):
return all(x == element for x in items)
</code></pre>
<p>您可以提取一些变量常量,使用列表和一些函数编程来检查插槽。在</p>
<p>这样,你只需要玩数字,你就有了一个完全不同的游戏,只需要做最小的改变。在</p>
<pre><code>total_slots = 3
max_range = 4
multiplier = 50
while True:
i += 1
spins = [random.randint(0, max_range) for _ in range(total_slots)]
print('\t'.join(map(str, spins)))
credits = 0
for i in range(max_range + 1): # We loop over all spin possible values
won = all_same(spins, i)
if won:
credits = (i + 1) * multiplier # when i == 0, we add 50
print('Congratulations! You have won {} credits'.format(credits))
break # can stop the for-loop
cashPool += credits # if you didn't win, nothing is added
print('You currently have {} credits'.format(cashPool))
if AskYesNo('Would you like to spin? Enter y/n '):
break
</code></pre>
<p>注意:我知道我没有包括<code>wheel</code>值。当您获得<code>wheel</code>列表中每个<code>spin</code>值的字符串后,<code>all_same</code>方法仍然有效。在</p>