乙個極致簡單優雅的生命遊戲,由Python實現

2021-09-21 18:09:47 字數 1863 閱讀 1381

可以控制台執行,不過最好還是使用windows的powershell,我覺得這個選擇對初學者很棒

簡單優雅的生命遊戲

powershell執行

'''

生命遊戲的python實現,採用原始的shell演示

author:王平

date:2019-5-7

'''import os #引入os模組以備使用清屏操作

import random

import time #引入time模組以實現自動控制

def main():

'''主程式,完成生命遊戲類的例項化與啟動

'''game = lifegame(40,90)

os.system("cls")

game.draw()

print("初始二維自動機就緒")

q = input("回車開始演化,退出按 q ")

if q == 'q':

exit()

for _ in range(100):

game.update()

game.draw()

time.sleep(0.4)

class lifegame:

'''生命遊戲類,構建二維自動機並可完成任意次迭代

'''def __init__(self,rows=20,cols=60):

self.rows = rows #其他方法屬性需要,so有必要新增物件變數

self.cols = cols

self.board =

for _ in range(rows):

line =

for _ in range(cols):

if random.random()<0.2:#以20%的概率產生初始活細胞

else:

def draw(self):

os.system("cls")

for line in self.board:

print('|',end='')

for cell in line:

print(cell,end='')

print('|')

def getcell(self,row,col):

'''座標求模是這類問題的慣常處理藝術

反捲能讓邊界問題很好的得到處理,無論維度多少

'''row %= self.rows

col %= self.cols

return self.board[row][col]

def nearby_status(self,row,col):

'''獲取鄰域的活細胞個數'''

nearby =

return len(list(filter(lambda x:x == '#',nearby)))

def update(self):

'''根據鄰域狀況更新下一代自動機的所有細胞的狀態'''

new_board =

row,col = (0,0)

for line in self.board:

new_row =

for cell in line:

count = self.nearby_status(row,col)

if count == 3:

elif count == 2:

else:

col = (col+1)%self.cols

row = (row+1)%self.rows

self.board = new_board

if __name__ == "__main__":

main()

記乙個簡單的掃雷遊戲

遊戲概述 每次輸入乙個座標,必然要判斷當前座標是不是雷,如果不是就要顯示當前座標和其周圍8個非雷座標點的周圍8個點的雷的數量。分為三部分 game.h ifndef game h define game h include include include include pragma warning...

乙個簡單的猜數遊戲

利用math.random 方法生成0 1之間的double型數dnum,將dnum轉換為0 100之間的整數inum。利用keyinput.readint 方法接收鍵盤輸入的整數innum。如果innum小於inum,在螢幕上顯示 輸入的值小,請輸入更大的數.如果innum大於inum,在螢幕上顯...

乙個簡單遊戲框架

1。系統 system t 類包含了指向我們系統要使用的純介面指標。如下列出了所有system t類提供的介面。1.logsys t 處理遊戲中所有的訊息記錄,可以選擇的輸出方式包括文字框或檔案 2 errorsys t 處理所有出錯的訊息和狀態 3 timesys t 提交時間資訊 4 facto...