婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識(shí)庫 > Python實(shí)戰(zhàn)之實(shí)現(xiàn)康威生命游戲

Python實(shí)戰(zhàn)之實(shí)現(xiàn)康威生命游戲

熱門標(biāo)簽:地圖制圖標(biāo)注位置改變是移位嗎 地圖標(biāo)注微信發(fā)送位置不顯示 房產(chǎn)電銷外呼系統(tǒng) 蓋州市地圖標(biāo)注 浙江電銷卡外呼系統(tǒng)好用嗎 地圖標(biāo)注的意義點(diǎn) 南京銷售外呼系統(tǒng)軟件 315電話機(jī)器人廣告 上海機(jī)器人外呼系統(tǒng)哪家好

前言

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

一、康威生命游戲規(guī)則

當(dāng)周圍僅有1個(gè)或沒有存活細(xì)胞時(shí), 原來的存活細(xì)胞進(jìn)入死亡狀態(tài)。(模擬生命數(shù)量稀少)當(dāng)周圍有2個(gè)或3個(gè)存活細(xì)胞時(shí), 網(wǎng)格保持原樣。當(dāng)周圍有4個(gè)及以上存活細(xì)胞時(shí),原來的存活細(xì)胞亦進(jìn)入死亡狀態(tài)。(模擬生命數(shù)量過多)當(dāng)周圍有3個(gè)存活細(xì)胞時(shí),空白網(wǎng)格變成存活細(xì)胞。(模擬繁殖)

二、設(shè)計(jì)流程

1. 引入庫

代碼如下(示例):

import sys
import random
import numpy as np
import pygame

2. 設(shè)計(jì)思路

在這篇博客里面我們實(shí)現(xiàn)了下面第一個(gè)圖的內(nèi)容。

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

3. 設(shè)計(jì)窗口

首先我們借用了之前的pygame窗口的代碼,實(shí)現(xiàn)窗口的調(diào)用。與之前有所不同的變化是,我們?cè)谡归_窗口之前首先確定大小。
我們實(shí)現(xiàn)了游戲大小的自定義,窗口大小的自定義,可以與后面游戲設(shè)計(jì)增加統(tǒng)一性,增加美觀性。

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

import sys
import random
import numpy as np
import pygame
pygame.init()#初始化init()及設(shè)置
n=int(input("請(qǐng)輸入階數(shù):"))
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()#創(chuàng)建一個(gè)Clock對(duì)象用于操作時(shí)間

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

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

三、初始生命矩陣

我們通過循環(huán)產(chǎn)生隨機(jī)數(shù)來產(chǎn)生隨機(jī)的初始生命。

random.randint(a,b):產(chǎn)生一個(gè)位于a-b之間的隨機(jī)整數(shù),包括a,b。

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

四、周圍生命的檢測(cè)

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

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

2.另一個(gè)是判斷是否有生命

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

五、生命的變化

將每個(gè)位置上的生命根據(jù)計(jì)數(shù)列表進(jìn)行更新,更新生命矩陣。

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

六、生命的展示

畫出生命的方格很簡(jiǎn)單,我們調(diào)用pygame的繪制圖形代碼:

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

通過畫圖重疊,我們實(shí)現(xiàn)每個(gè)生命之間的間隔的樣式,增強(qiáng)渲染效果。

for i in range(0, n):
        for j in range(0, n):
            if a[i][j]==1:
                #先畫一個(gè)滿填充的方格,有生命方格
                pygame.draw.rect(screen, BLACK, (i*50, j*50, 50, 50))
                #再畫一個(gè)不填充,框線為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()及設(shè)置
n=int(input("請(qǐng)輸入階數(shù):"))
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()#創(chuàng)建一個(gè)Clock對(duì)象用于操作時(shí)間


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

## 八個(gè)方位的索引變化
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:  # 點(diǎn)擊了退出
            sys.exit()  # 退出
    c = []
    # 計(jì)算周圍生命個(gè)數(shù)
    for i in range(0, n):
        c.append([])
        for j in range(0, n):
            count = 0   # 每一個(gè)方格
            for o in direction:
                ide = np.array([i, j]) + np.array(o)
                # 保證判斷的位置在范圍內(nèi),針對(duì)邊界方格
                if 0 = ide[0]  n and 0 = ide[1]  n:
                    if a[ide[0]][ide[1]] == 1:
                        count += 1
            c[i].append(count)
    ## 按照生命的發(fā)展規(guī)律進(jìn)行新一輪的生面變化
    for i in range(0, n):
        for j in range(0, n):
            if c[i][j] = 1 or c[i][j] >= 4:#當(dāng)生命稀少或者過多時(shí)生命死亡
                a[i][j] = 0
            elif c[i][j] == 3:#當(dāng)生命的周圍有三個(gè)生命時(shí),生成新生命
                a[i][j] = 1
    for i in range(0, n):
        for j in range(0, n):
            if a[i][j]==1:
                #先畫一個(gè)滿填充的方格,有生命方格
                pygame.draw.rect(screen, BLACK, (i*50, j*50, 50, 50))
                #再畫一個(gè)不填充,框線為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()  # 對(duì)顯示窗口進(jìn)行更新,默認(rèn)窗口全部重繪
    fclock.tick(fps)  # 窗口刷新速度,每秒3次

總結(jié)

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

到此這篇關(guān)于Python實(shí)戰(zhàn)之實(shí)現(xiàn)康威生命游戲的文章就介紹到這了,更多相關(guān)Python實(shí)現(xiàn)康威生命游戲內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

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

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

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Python實(shí)戰(zhàn)之實(shí)現(xiàn)康威生命游戲》,本文關(guān)鍵詞  Python,實(shí)戰(zhàn),之,實(shí)現(xiàn),康威,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Python實(shí)戰(zhàn)之實(shí)現(xiàn)康威生命游戲》相關(guān)的同類信息!
  • 本頁收集關(guān)于Python實(shí)戰(zhàn)之實(shí)現(xiàn)康威生命游戲的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    欧美三级日韩三级国产三级| 综合色中文字幕| 欧美一级艳片视频免费观看| 欧美精品亚洲一区二区在线播放| 欧美性大战久久| 欧美乱妇15p| 欧美videossexotv100| 久久综合久久99| 国产女人aaa级久久久级| 国产精品天天摸av网| 国产精品电影一区二区三区| 亚洲男人的天堂在线观看| 亚洲精品久久嫩草网站秘色| 欧美三级视频在线| 欧美日韩1区2区| 日韩欧美视频在线| 国产欧美日韩一区二区三区在线观看| 中文字幕av一区二区三区高| 亚洲另类色综合网站| 亚洲不卡av一区二区三区| 免费观看在线色综合| 国产精品一区2区| 91免费视频网址| 欧美精品日韩综合在线| 26uuu另类欧美亚洲曰本| 中日韩av电影| 午夜在线成人av| 国产在线观看一区二区| 91蝌蚪国产九色| 91精品国产一区二区三区香蕉| 久久蜜桃av一区精品变态类天堂| 国产精品不卡一区二区三区| 亚洲v日本v欧美v久久精品| 韩国精品在线观看| 99v久久综合狠狠综合久久| 欧美日精品一区视频| 久久丝袜美腿综合| 亚洲欧美激情插| 看片的网站亚洲| 92国产精品观看| 日韩欧美在线综合网| 国产精品美女视频| 日韩国产精品久久久久久亚洲| 国产精品羞羞答答xxdd| 欧美在线观看一二区| 国产剧情一区二区| 色综合激情久久| 精品动漫一区二区三区在线观看| 亚洲视频电影在线| 国产乱子轮精品视频| 欧美午夜电影一区| 日本一区二区动态图| 日日摸夜夜添夜夜添国产精品| 懂色av一区二区三区免费观看| 欧美精品色综合| 最近中文字幕一区二区三区| 极品少妇xxxx精品少妇| 色婷婷久久久综合中文字幕| 久久夜色精品国产噜噜av| 亚洲国产精品久久久男人的天堂| 成人手机电影网| 日韩欧美一卡二卡| 亚洲一区二区三区四区在线观看| 国产寡妇亲子伦一区二区| 7777精品伊人久久久大香线蕉的 | 欧美日韩国产成人在线91| 中文字幕av一区二区三区高| 久久精品99久久久| 欧美日韩亚洲综合在线| 中文字幕一区二区三区精华液 | 色狠狠色狠狠综合| 欧美激情一区二区三区| 久久国产麻豆精品| 欧美美女激情18p| 一区二区在线观看不卡| av中文字幕在线不卡| 国产色综合久久| 国产在线看一区| 欧美电影免费观看高清完整版 | 99久久精品免费看| 欧美激情在线一区二区| 国产一区二区三区在线观看免费 | 91网站最新地址| 国产欧美日韩不卡免费| 国产麻豆精品视频| 欧美一区二区三区在线观看 | 成人看片黄a免费看在线| 亚洲精品一区二区三区精华液| 免费成人av在线| 欧美一区二区私人影院日本| 日韩在线a电影| 制服丝袜亚洲播放| 日韩国产精品久久久| 欧美一区二区国产| 免费精品视频在线| 精品奇米国产一区二区三区| 六月丁香婷婷久久| 精品人在线二区三区| 国产一区欧美一区| 国产人久久人人人人爽| 成人综合在线观看| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 成人理论电影网| 中文字幕中文字幕在线一区| 99精品热视频| 一区二区欧美精品| 欧美日韩不卡一区| 喷水一区二区三区| 久久久综合网站| 成人免费视频网站在线观看| 国产精品乱人伦| 日本乱码高清不卡字幕| 亚洲成年人网站在线观看| 欧美一级免费观看| 国产在线视频一区二区| 欧美激情一二三区| 色婷婷av一区二区三区gif | 99久久伊人精品| 夜夜精品浪潮av一区二区三区| 欧美日韩高清影院| 韩国女主播成人在线| 国产精品网曝门| 欧美日韩一区二区欧美激情| 日韩1区2区3区| 久久久久亚洲蜜桃| 一本到不卡免费一区二区| 亚洲成人免费视| 亚洲精品在线电影| 91看片淫黄大片一级在线观看| 日韩精品久久理论片| 国产亚洲精品超碰| 色香蕉成人二区免费| 美女视频一区二区| 国产精品久久久久国产精品日日 | 国产精品美女久久久久av爽李琼| 一本久久综合亚洲鲁鲁五月天| 日日夜夜免费精品视频| 国产三级一区二区三区| 在线观看亚洲一区| 国内精品国产成人国产三级粉色 | 亚洲精品在线观| 色综合咪咪久久| 精品在线免费视频| 亚洲激情六月丁香| 久久亚洲综合av| 欧美图片一区二区三区| 国产在线视频精品一区| 亚洲国产欧美在线人成| 国产欧美一区二区三区在线看蜜臀| 91国产福利在线| 粉嫩嫩av羞羞动漫久久久| 亚洲成a天堂v人片| 国产精品卡一卡二卡三| 欧美一区二区福利在线| 91网页版在线| 国产高清在线精品| 亚洲成va人在线观看| 一区在线观看视频| 精品伦理精品一区| 欧美综合亚洲图片综合区| 国产高清在线精品| 免费人成网站在线观看欧美高清| 亚洲男女一区二区三区| 欧美激情一区二区三区不卡| 日韩精品资源二区在线| 欧美系列在线观看| 成人激情小说网站| 国精产品一区一区三区mba视频| 亚洲大型综合色站| 综合久久一区二区三区| 久久久.com| 精品国产不卡一区二区三区| 欧美日韩免费观看一区三区| 91麻豆精品在线观看| 丁香婷婷深情五月亚洲| 精品一二三四在线| 美女在线视频一区| 日韩国产在线观看一区| 亚洲高清免费视频| 伊人一区二区三区| 亚洲色图视频免费播放| 欧美高清在线视频| 国产欧美精品一区aⅴ影院| 精品99一区二区三区| 日韩欧美国产午夜精品| 91精品国产黑色紧身裤美女| 欧美日韩一区二区在线观看| 色综合久久中文字幕综合网| 成人黄色在线网站| 成人黄色片在线观看| 成人免费观看男女羞羞视频| 国产成人亚洲综合a∨婷婷图片| 国产一区在线精品| 国产一区在线不卡| 国产精品一区二区无线| 国产一区二三区好的| 国产精品亚洲人在线观看| 国产电影精品久久禁18| 国产精品一二三区| 国产成人自拍网|