用Python写一个生命游戏
时间: 2023-12-21 18:07:30 浏览: 22
好的,下面是Python实现生命游戏的代码:
```python
import random
import time
def initializeBoard(rows, cols):
board = []
for i in range(rows):
row = []
for j in range(cols):
row.append(random.randint(0, 1))
board.append(row)
return board
def printBoard(board):
for row in board:
print(" ".join(str(cell) for cell in row))
def getNeighbors(board, row, col):
neighbors = []
for i in range(-1, 2):
for j in range(-1, 2):
if i == 0 and j == 0:
continue
neighborRow = row + i
neighborCol = col + j
if neighborRow < 0 or neighborRow >= len(board) or neighborCol < 0 or neighborCol >= len(board[0]):
continue
neighbors.append(board[neighborRow][neighborCol])
return neighbors
def getNextState(board, row, col):
currentState = board[row][col]
neighbors = getNeighbors(board, row, col)
liveNeighbors = sum(neighbors)
if currentState == 1 and (liveNeighbors < 2 or liveNeighbors > 3):
return 0
elif currentState == 0 and liveNeighbors == 3:
return 1
else:
return currentState
def getNextBoard(board):
newBoard = []
for row in range(len(board)):
newRow = []
for col in range(len(board[0])):
newState = getNextState(board, row, col)
newRow.append(newState)
newBoard.append(newRow)
return newBoard
def main():
rows = 10
cols = 10
board = initializeBoard(rows, cols)
while True:
printBoard(board)
board = getNextBoard(board)
time.sleep(1)
if __name__ == "__main__":
main()
```
这个程序会生成一个随机的初始状态的生命游戏棋盘,并且每隔一秒钟输出一次当前的棋盘状态。你可以根据需要更改 `rows` 和 `cols` 变量来控制棋盘的大小。