假设我正在尝试用Python制作BattleShip游戏.我有一个名为board的列表列表.板中的每个列表都是板的那一行中的空格列表,对于这个例子,它将是5x5:
[['clear', 'clear', 'clear', 'clear', 'clear'],
['clear', 'clear', 'clear', 'clear', 'clear'],
['clear', 'clear', 'clear', 'clear', 'clear'],
['clear', 'clear', 'clear', 'clear', 'clear'],
['clear', 'clear', 'clear', 'clear', 'clear']]
Run Code Online (Sandbox Code Playgroud)
我想创建一个函数来返回板中的随机空白区域.
def pl_point(board):
place = [randrange(0,5),randrange(0,5)] #heh, found out these aren't inclusive.
if board[place[0]][place[1]] == "clear": return place
else:
return pl_point() #calls itself until a clear place is found
Run Code Online (Sandbox Code Playgroud)
以下是我的问题:在获得函数调用之前它是否效率低,直到获得它想要的值(即使电路板几乎完全填满)?我应该采取更好的方式吗?
我无法弄清楚如何使用while语句,因为语句在分配之前总是引用'place',我想不出任何不会引用超出范围的地方的值或未分配的'董事会'价值.
如果这是一个重复的主题我很抱歉,我试图找到一个类似的但不能.这也是我第一次使用这个网站提出问题而不是回答问题.