午夜视频免费看_日韩三级电影网站_国产精品久久一级_亚洲一级在线播放_人妻体内射精一区二区三区_91夜夜揉人人捏人人添红杏_91福利在线导航_国产又粗又猛又黄又爽无遮挡_欧美日韩一区在线播放_中文字幕一区二区三区四区不卡 _日日夜夜精品视频免费观看_欧美韩日一区二区三区

主頁 > 知識庫 > Python實戰之實現康威生命游戲

Python實戰之實現康威生命游戲

熱門標簽:地圖制圖標注位置改變是移位嗎 地圖標注微信發送位置不顯示 房產電銷外呼系統 蓋州市地圖標注 浙江電銷卡外呼系統好用嗎 地圖標注的意義點 南京銷售外呼系統軟件 315電話機器人廣告 上海機器人外呼系統哪家好

前言

康威生命游戲設計并不難,我的思路就是借助pygame進行外觀的展示,最近一段時間的游戲項目都是使用pygame進行的,做起來比較順利。內部代碼的實現也比較簡單根據他的規則我們需要的是多次的計算和判斷,再刷新數組。

一、康威生命游戲規則

當周圍僅有1個或沒有存活細胞時, 原來的存活細胞進入死亡狀態。(模擬生命數量稀少)當周圍有2個或3個存活細胞時, 網格保持原樣。當周圍有4個及以上存活細胞時,原來的存活細胞亦進入死亡狀態。(模擬生命數量過多)當周圍有3個存活細胞時,空白網格變成存活細胞。(模擬繁殖)

二、設計流程

1. 引入庫

代碼如下(示例):

import sys
import random
import numpy as np
import pygame

2. 設計思路

在這篇博客里面我們實現了下面第一個圖的內容。

感興趣的朋友也可以加下面的思路:

3. 設計窗口

首先我們借用了之前的pygame窗口的代碼,實現窗口的調用。與之前有所不同的變化是,我們在展開窗口之前首先確定大小。
我們實現了游戲大小的自定義,窗口大小的自定義,可以與后面游戲設計增加統一性,增加美觀性。

中間的部分代碼是一些顏色的調出,和窗口的填充。

import sys
import random
import numpy as np
import pygame
pygame.init()#初始化init()及設置
n=int(input("請輸入階數:"))
size=width,height=50*n+2,50*n+2
screen=pygame.display.set_mode(size)#窗口大小
pygame.display.set_caption("康威生命游戲")#窗口名字
icon=pygame.image.load("Icon.jpg")
pygame.display.set_icon(icon)
BLACK=pygame.Color("black")
GAINSBORO=pygame.Color("gainsboro")
MOCCASIN=pygame.Color("moccasin")
WHITE=pygame.Color("white")
screen.fill(MOCCASIN)
fps=5
fclock=pygame.time.Clock()#創建一個Clock對象用于操作時間

while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:  # 點擊了退出
            sys.exit()  # 退出

    pygame.display.update()  # 對顯示窗口進行更新,默認窗口全部重繪
    fclock.tick(fps)  # 窗口刷新速度,每秒3次

三、初始生命矩陣

我們通過循環產生隨機數來產生隨機的初始生命。

random.randint(a,b):產生一個位于a-b之間的隨機整數,包括a,b。

## 生成初始生命
a=[]
for i in range(0,n):
    a.append([])
    for j in range(0,n):
        a[i].append(random.randint(0,1))

四、周圍生命的檢測

我們將生命周圍八個位置的索引差值存放在一個列表中,通過循環檢測有效位置上生命的個數,存放入列表中。
包含兩個判斷。

1.首先要判斷位置的有效性

2.另一個是判斷是否有生命

direction = [[-1, -1], [0, -1], [1, -1], [1, 0], [1, 1], [0, 1], [-1, 1], [-1, 0]]
    c = []
    # 計算周圍生命個數
    for i in range(0, n):
        c.append([])
        for j in range(0, n):
            count = 0   # 每一個方格
            for o in direction:
                ide = np.array([i, j]) + np.array(o)
                # 保證判斷的位置在范圍內,針對邊界方格
                if 0 = ide[0]  n and 0 = ide[1]  n:
                    if a[ide[0]][ide[1]] == 1:
                        count += 1
            c[i].append(count)

五、生命的變化

將每個位置上的生命根據計數列表進行更新,更新生命矩陣。

## 按照生命的發展規律進行新一輪的生面變化
    for i in range(0, n):
        for j in range(0, n):
            if c[i][j] = 1 or c[i][j] >= 4:#當生命稀少或者過多時生命死亡
                a[i][j] = 0
            elif c[i][j] == 3:#當生命的周圍有三個生命時,生成新生命
                a[i][j] = 1

六、生命的展示

畫出生命的方格很簡單,我們調用pygame的繪制圖形代碼:

pygame.draw.rect(screen, BLACK, (i*50, j*50, 50, 50)):這樣展示出來的是一個填充的矩形,展示在:screen上,初始位置為:(i * 50, j * 50),大小為:(50, 50),顏色為:black,默認邊框為0,即全部填充的矩形,當后面添加一個數字時,代表無填充,框線為數字大小的矩形,如:pygame.draw.rect(screen, GAINSBORO, (i*50, j*50, 50, 50),2)代表不填充,框線為2

通過畫圖重疊,我們實現每個生命之間的間隔的樣式,增強渲染效果。

for i in range(0, n):
        for j in range(0, n):
            if a[i][j]==1:
                #先畫一個滿填充的方格,有生命方格
                pygame.draw.rect(screen, BLACK, (i*50, j*50, 50, 50))
                #再畫一個不填充,框線為2的方格,套在上面的方格上面
                pygame.draw.rect(screen, GAINSBORO, (i*50, j*50, 50, 50),2)

            else:#無生命方格
                pygame.draw.rect(screen, WHITE, (i*50, j*50, 50, 50))
                pygame.draw.rect(screen, GAINSBORO, (i*50, j*50, 50, 50),2)

七、完整代碼

"""
# -*- coding: utf-8 -*-
# @Time    : 2021/4/23 0023 17:14
# @Author  : 源來很巧
# @FileName: 康威生命游戲2.py
# @Software: PyCharm
# @Blog    :https://blog.csdn.net/qq_44793283
"""
import sys
import random
import numpy as np
import pygame
pygame.init()#初始化init()及設置
n=int(input("請輸入階數:"))
size=width,height=50*n+2,50*n+2
screen=pygame.display.set_mode(size)#窗口大小
pygame.display.set_caption("康威生命游戲")#窗口名字
icon=pygame.image.load("Icon.jpg")
pygame.display.set_icon(icon)
BLACK=pygame.Color("black")
GAINSBORO=pygame.Color("gainsboro")
MOCCASIN=pygame.Color("moccasin")
WHITE=pygame.Color("white")
screen.fill(MOCCASIN)
fps=1
fclock=pygame.time.Clock()#創建一個Clock對象用于操作時間


## 生成初始生命
a=[]
for i in range(0,n):
    a.append([])
    for j in range(0,n):
        a[i].append(random.randint(0,1))

## 八個方位的索引變化
direction = [[-1, -1], [0, -1], [1, -1], [1, 0], [1, 1], [0, 1], [-1, 1], [-1, 0]]
while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:  # 點擊了退出
            sys.exit()  # 退出
    c = []
    # 計算周圍生命個數
    for i in range(0, n):
        c.append([])
        for j in range(0, n):
            count = 0   # 每一個方格
            for o in direction:
                ide = np.array([i, j]) + np.array(o)
                # 保證判斷的位置在范圍內,針對邊界方格
                if 0 = ide[0]  n and 0 = ide[1]  n:
                    if a[ide[0]][ide[1]] == 1:
                        count += 1
            c[i].append(count)
    ## 按照生命的發展規律進行新一輪的生面變化
    for i in range(0, n):
        for j in range(0, n):
            if c[i][j] = 1 or c[i][j] >= 4:#當生命稀少或者過多時生命死亡
                a[i][j] = 0
            elif c[i][j] == 3:#當生命的周圍有三個生命時,生成新生命
                a[i][j] = 1
    for i in range(0, n):
        for j in range(0, n):
            if a[i][j]==1:
                #先畫一個滿填充的方格,有生命方格
                pygame.draw.rect(screen, BLACK, (i*50, j*50, 50, 50))
                #再畫一個不填充,框線為2的方格,套在上面的方格上面
                pygame.draw.rect(screen, GAINSBORO, (i*50, j*50, 50, 50),2)

            else:#無生命方格
                pygame.draw.rect(screen, WHITE, (i*50, j*50, 50, 50))
                pygame.draw.rect(screen, GAINSBORO, (i*50, j*50, 50, 50),2)
    print(np.array(a))
    pygame.display.update()  # 對顯示窗口進行更新,默認窗口全部重繪
    fclock.tick(fps)  # 窗口刷新速度,每秒3次

總結

這個游戲的實際設計并不是很困難,我們需要將具體的思路理順,哪一步首先進行,需要我們準備哪些存儲的矩陣等等。唯一的彎路是周圍生命個數的檢測,我的方法是窮舉法,將每個位置索引只差手動計算存儲起來。在小的計算量下,這層循環計算并不會浪費很多時間,如果您對此有好的建議歡迎交流。也歡迎對后面的游戲結束進行交流,后續我可以補上結束游戲的方法。

到此這篇關于Python實戰之實現康威生命游戲的文章就介紹到這了,更多相關Python實現康威生命游戲內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • python pygame 憤怒的小鳥游戲示例代碼
  • 只需要100行Python代碼就可以實現的貪吃蛇小游戲
  • python編寫五子棋游戲
  • 學會用Python實現滑雪小游戲,再也不用去北海道啦
  • 教你用Python實現一個輪盤抽獎小游戲
  • python實戰之利用pygame實現貪吃蛇游戲(二)
  • python實現21點小游戲
  • 教你用Python寫一個植物大戰僵尸小游戲
  • 憶童年!用Python實現憤怒的小鳥游戲

標簽:金華 克拉瑪依 臨汾 日照 赤峰 陽泉 雙鴨山 貴州

巨人網絡通訊聲明:本文標題《Python實戰之實現康威生命游戲》,本文關鍵詞  Python,實戰,之,實現,康威,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Python實戰之實現康威生命游戲》相關的同類信息!
  • 本頁收集關于Python實戰之實現康威生命游戲的相關信息資訊供網民參考!
  • 推薦文章
    国产日韩欧美日韩大片| 91网站免费视频| 狠狠爱在线视频一区| 美女被爆操网站| 亚洲成人久久久久| 久久久久久久黄色片| **欧美日韩vr在线| 久久99精品国产麻豆婷婷| 日韩欧美亚洲在线| 一区二区三区精品| 中文字幕5566| 久久国产精品影视| 蜜桃伊人久久| 中国女人做爰视频| 色悠悠久久综合| 日本福利片在线观看| 高清欧美性猛交xxxx黑人猛交| 久久精品91| 好吊色这里只有精品| 欧美日韩精品在线播放| 97在线观看视频免费| 欧美亚洲国产视频| 国产成人精品三级| 色婷婷狠狠18| 日韩精品中文字幕在线观看| 一区二区美女视频| 欧美午夜精品理论片a级大开眼界| 欧美国产激情二区三区| 久久人妻少妇嫩草av蜜桃| 亚洲色图美腿丝袜| 欧美77777| 日本一区二区三区四区五区六区| 色婷婷久久99综合精品jk白丝| 91 在线视频| 国产精品一区二区三| 26uuu亚洲综合色欧美| 欧美性猛交xx| 久久久国产精彩视频美女艺术照福利| 污污视频在线观看网站| 97超碰人人澡| 亚洲丁香久久久| 亚洲AV午夜精品| 高清无码视频直接看| 欧美一区二区福利视频| 国产又黄又爽视频| 400部精品国偷自产在线观看| 欧美日韩成人综合| 国产又粗又大又爽| 少妇熟女一区二区| 欧美成人性战久久| 丰满大乳国产精品| 免费在线观看亚洲视频| 亚洲精品永久免费| 另类专区欧美蜜桃臀第一页| 91国产精品视频在线观看| 最新91在线视频| 国产精品一区二区久激情瑜伽| 日本免费色视频| 欧美日韩国产成人在线| 成人午夜在线播放| 老司机免费视频| 国产z一区二区三区| 久久精品一区蜜桃臀影院| www.超碰97| 国产精品久久久久av| 亚洲日韩欧美一区二区在线| 国语对白在线播放| 久久精品二区| 欧美一区二区三区在线视频| 亚洲精品成人区在线观看| 欧美日韩国产精品激情在线播放| 中文字幕免费精品一区高清| 国产呦萝稀缺另类资源| 影音先锋黄色资源| 91理论片午午论夜理片久久| 午夜影视日本亚洲欧洲精品| 日本成人一级片| 久久手机在线视频| 日韩中文字幕免费视频| 91蜜桃视频在线| 成人一级黄色大片| 日产精品久久久一区二区| 日韩一区二区在线免费观看| 日韩永久免费视频| 无套内谢丰满少妇中文字幕| 国产精品 欧美在线| 亚洲午夜国产一区99re久久| 日韩av免费播放| 日韩视频免费播放| 色综合视频网站| 国产精品超碰97尤物18| 天天干天天干天天| 久久久久久免费看| 欧美丰满老妇厨房牲生活| 国产精品国产三级国产普通话三级 | 朝桐光av在线一区二区三区| 北条麻妃av高潮尖叫在线观看| 久久久久久久爱| 亚洲美女偷拍久久| 一级黄色片在线播放| 欧美日韩亚洲自拍| 国产精品91久久久久久| 一本久道久久综合中文字幕 | 国产一区二区三区在线免费观看| 成人免费毛片片v| 免费在线观看a级片| 五码日韩精品一区二区三区视频| 日韩精品一区二区视频| 成人成人成人在线视频| 欧美毛片在线观看| 丝袜人妻一区二区三区| 色综合久久悠悠| 亚洲成人av电影| 成人毛片在线精品国产| 深田咏美中文字幕| 久久久7777| 在线日韩欧美视频| 亚洲视频一区二区免费在线观看| 这里只有精品6| 香蕉网在线视频| 精选一区二区三区四区五区| 亚洲人成电影在线播放| 久久精品一区四区| 99精品在线视频观看| 四虎成人免费视频| 免费观看成人高| 日韩中文在线视频| 亚欧色一区w666天堂| 日韩成人午夜精品| 永久免费看片直接| 草b视频在线观看| 国产福利精品av综合导导航| 7777精品伊人久久久大香线蕉的 | 91九色视频在线观看| 亚洲国产精品成人精品| 91蜜桃在线免费视频| 在线观看毛片网站| 成人做爰69片免费| 亚洲欧洲日韩精品| 国产91对白在线播放| 777奇米成人网| 国产夜色精品一区二区av| 在线免费看av片| 在线视频 日韩| 裸体裸乳免费看| 国产成人一区二区在线| 精品国产一区二区在线观看| 国产日产欧产精品推荐色| 超碰在线观看av| 三级黄色录像视频| 亚洲精品一二三四五区| 国产激情美女久久久久久吹潮| 中文字幕少妇一区二区三区| 岛国av一区二区| 成人动漫一区二区在线| 999av视频| 少妇的滋味中文字幕bd| 国内外免费激情视频| 国产精品久久久久久免费观看| 在线视频一区二区| 色香蕉成人二区免费| va亚洲va日韩不卡在线观看| 国产精品久久久久久69| 久久久免费看片| 天天插天天操天天射| 欧美日韩在线播放一区二区| 97高清免费视频| 欧美精品一区二区精品网| 亚洲日本在线a| 国产一区二区三区免费观看| 一区二区三区精| 中文字幕美女视频| 国产免费中文字幕| 成人污网站在线观看| 99re国产在线播放| 国外成人在线视频| 精品网站999www| 在线观看视频91| 亚洲三级在线观看| 成人激情综合网站| 久久久青草婷婷精品综合日韩| 综合激情网五月| 国产又大又粗又爽的毛片| 美女一区二区三区视频| 亚洲视频小说| 国产精品成人观看视频免费| 91高清视频免费| 日韩在线视频国产| 精品福利二区三区| 色偷偷久久人人79超碰人人澡| 中文字幕国产精品一区二区| 精品一区二区久久| 人妻少妇精品无码专区久久| 天天干天天干天天| 99鲁鲁精品一区二区三区| 逼特逼视频在线观看| www黄色av| 九一免费在线观看| 欧美日韩一区在线播放| 51国偷自产一区二区三区的来源| 性色av一区二区三区红粉影视| 亚洲性xxxx| 欧美精品一区二区三区高清aⅴ| 色域天天综合网| 亚洲自拍偷拍麻豆| 欧美极品另类videosde| 成人午夜av影视| 久久99精品久久久久久| 五月婷婷在线播放| 国产露脸国语对白在线| 黄色片中文字幕| 久久精品国产av一区二区三区| 免费人成又黄又爽又色| 蜜臀视频在线观看| 天美一区二区三区| 天天综合网久久| 国产精品亚洲二区在线观看| 国产av第一区| 影音先锋亚洲视频| 亚洲精品成人久久久998| 精品不卡一区二区三区| 99r国产精品视频| 成人精品在线视频| 国产视频观看一区| 国产欧美日韩丝袜精品一区| 国产99久久久欧美黑人| 国语对白做受69| 91精品国产高清久久久久久| 欧美激情亚洲国产| 欧美高清视频一区二区| xvideos亚洲人网站| 日韩中文字幕在线视频| 在线性视频日韩欧美| 永久免费精品影视网站| 永久555www成人免费| 在线观看视频亚洲| 色久欧美在线视频观看| 亚洲av无码乱码国产精品| 7777精品久久久大香线蕉| 精品伦理一区二区三区| 国产黄色录像片| 婷婷六月综合亚洲| 裸体裸乳免费看| 免费成人在线网站| 欧美激情精品久久久久久大尺度| 免费的av网站| 一区二区视频在线| 蜜桃视频在线观看成人| 国产福利免费视频| 欧美色倩网站大全免费| 国产成人综合精品| 国产精品偷伦视频免费观看了| 欧美aaaaaa午夜精品| 日韩精品免费综合视频在线播放 | 一区二区 亚洲| 亚洲h在线观看| 麻豆免费精品视频| 精品一区二区久久久| 国产一区91精品张津瑜| 国产 欧美在线| 91亚洲大成网污www| 中文字幕乱码日本亚洲一区二区| 中文字幕制服丝袜一区二区三区 | 中文字幕av免费专区久久| 国产精品国产三级国产专播品爱网 | 欧美精品三级日韩久久| 欧美一二三区在线观看| 亚洲美女在线看| 色偷偷9999www| 久久久久久av| 91精品国产综合久久久久久久久| 国产精品毛片一区视频 | 亚洲黄色片免费看| 久久人妻少妇嫩草av无码专区| 战狼4完整免费观看在线播放版| 免费一级片视频| 伊人精品在线视频| 天堂va蜜桃一区二区三区漫画版| 国内精品免费**视频| xnxx国产精品| 亚洲大尺度视频在线观看| 欧美日韩国产色站一区二区三区| 亚洲精品电影网| 久久精品国产成人精品| 国产成人小视频在线观看| 国产精品二区在线| 国产成人生活片| 在线能看的av网站| 欧美大波大乳巨大乳| 国产福利拍拍拍| 黑人精品一区二区三区| 高清在线观看日韩| 亚洲一区二区三区中文字幕在线| 欧美精品一二三| 亚洲视频在线播放| 国产成人午夜视频网址| 日韩高清专区| 午夜免费高清视频| 亚洲av毛片基地| 中文字幕在线播放av| 久久成人免费网| 亚洲欧美一区二区三区久本道91 | 欧美大片国产精品| 久久91精品国产91久久跳| 91精品中文在线| 日本美女爱爱视频| 国产精久久久久| 日本网站免费观看| 久久人人精品| 国产精品久久久久久久久久久免费看 | 紧身裙女教师波多野结衣| 国产精品乱码久久久| 国产黄色成人av| 五月婷婷综合网| 亚洲欧美国产va在线影院| 欧洲午夜精品久久久| 水蜜桃一区二区三区| 一级黄色特级片| 欧美日韩在线观看成人| 亚洲精品一区二区三区蜜桃| www.色精品| 在线免费观看视频一区| 精品国产一区二区三区在线观看 | 天堂在线视频免费观看| 久久久91精品国产一区二区三区| 欧美性生活大片视频| 色偷偷91综合久久噜噜| 国产在线一区二区三区四区| 成人免费无码av| 国产成人无码aa精品一区| 亚洲av成人无码久久精品老人| 国产精品免费视频网站| 亚洲第一中文字幕| 成人午夜一级二级三级| 能在线观看的av| 九九热最新地址| 另类小说欧美激情| 天天射综合影视| 欧美成人免费全部| 日本一区二区三区免费看| 香蕉视频xxxx| 中文字幕乱码无码人妻系列蜜桃| 成人免费观看av| 欧美精品乱码久久久久久按摩| 高清一区二区三区四区五区| 亚洲一区综合| 国产精品美女高潮无套 | 亚洲国产精品99久久久久久久久| 欧美一级一区二区| 国产日韩精品电影| 国产九九在线视频| 久久久精品毛片| 久久精品网站免费观看| 亚洲高清久久久久久| 亚洲一区免费网站| www.这里只有精品| 国产性生活视频| 久久日韩精品一区二区五区| 欧美不卡在线视频| 97netav| 亚洲av无码久久精品色欲| 一级成人免费视频| 国产精品视频一二三| 一个色综合导航| 欧美在线播放一区| 成人免费毛片糖心| 蜜桃视频一区二区三区| 在线视频欧美区| 国产精品小说在线| www.国产福利| 国产suv精品一区二区69| 亚洲精品免费在线观看| 久久99国产精品自在自在app | 欧美日韩一区在线观看视频| 亚洲永久无码7777kkk| 午夜视频免费在线| 欧美性一级生活| 成人免费视频网| 亚洲精品一二三四| 日本黄色大片视频| 在线看一区二区| 亚洲free性xxxx护士白浆| 久久久精品人妻一区二区三区| 亚洲欧美另类日韩| 91福利社在线观看| 91在线直播亚洲| 中文在线观看免费视频| 日本美女一区二区| 91精品麻豆日日躁夜夜躁| 国产在线精品一区二区三区》| 韩国无码一区二区三区精品| 青青草一区二区三区| 欧美一级片免费看| 久久人人爽爽人人爽人人片av| 91l九色lporny| 成人动漫精品一区二区| 国产一区二区三区在线播放免费观看 | 日韩美女主播视频| 日本成人在线免费观看| 青娱乐精品视频| 亚洲第一网中文字幕| 五月天久久狠狠| 国产精品1000| 亚洲欧美韩国综合色| 日韩美女视频在线观看| 无人码人妻一区二区三区免费| 久久香蕉精品| 亚洲黄色片网站| 国产对白在线播放| 日韩欧美国产另类|