温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

python如何实现生命游戏

发布时间:2022-05-09 10:39:21 来源:亿速云 阅读:184 作者:zzz 栏目:大数据

本篇内容主要讲解“python如何实现生命游戏”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python如何实现生命游戏”吧!

代码如下:

#-*-coding:utf-8-*-

fromtimeimportsleep

fromccopyimportdeepcopy

世界_高=20#世界长度

世界范围=40#世界宽度

活着_CON=3#复活条件

KEEP_CON=2#保有条件

类单元(对象):

'''''细胞对象'''

def__init__(self,pos):

'''''自身坐标x,y,已经是否还存活'''

自我点,自我是活着的=位置,假

self.x,self.y=self.point

defsetAlive(self):

自我是活着的=真

defsetDied(self):

self.is_alive=False

defdisplay(self):

ifself.is_alive:

返回' * '

返回""

defdisplayLinux(self):

'''''在Linux操作系统操作系统环境下可以打印黑白块'''

ifself.is_alive:

return  ' \ 033[0;37;47m\033[0m  '

return  ' \ 033[0;30;40m\033[0m  '

类游戏管理器(对象):

def__init__(self):

self.world=self.initWorld()

self.initAliveCell()

定义网络(自我):

world=[]

pos  _ xinxrange(WORld  _ WIDE):

列=[]

适用于操作系统范围(世界高):

column.append(单元格((pos_x,pos_y)))

world.append(列)

返回世界

definitAliveCell(self):

fromrandomimportchoice

自视甚高。世界3:

forcellinhigh:

ifchoice((0,1))==0:

继续

cell.setAlive()

defget邻居(self,cell_obj):

live_count=0

forx  _ ofexrange(-1,2):

fory  _ of  exrange(-1,2):

c_x,c_y=cell_obj.x  x_of,cell  _ obj.y  y  _ of

if((c_x,c_y)==cell_obj.point)或\

(c_x0orc_x=WORLD_WIDE)或\

(c_y0orc_y=WORLD_HIGH):

'''''排除自身和越界的点'''

继续

ifself.world[c_x][c_y].is_alive:

live_count=1

returnalive  _ count

defdisplay(self):

打印'=' *万维网#等号分割线

用于dexinxrange(世界_高):

打印""。加入([高[指数]).为highleinself显示Linux()。世界])

打印'=' *万维网

defgameStart(self):

whileTrue:

self.display()

new_world=deepcopy(self.world)

forp_x,wide  _ listinenumerate(self。世界):

forp_y,_ in  numerate(wide  _ list):

current  _ cell=new  _ world[p  _ x][p  _ y]

nei  _ num=self。获取邻居(当前单元格)

ifnei_num==ALIVE_CON:

current  _ cell.setAlive()

elifnei_num!=KEEP_CON:

current_cell.setDied()

self.world=new_world

睡眠(0.2)

if__name__=='__main__':

world=GameManager()

try:

world.gameStart()

键盘中断:除外

'''''防止拷贝退出报错'''

到此,相信大家对“python如何实现生命游戏”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI