電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>使用8x8獨(dú)角獸矩陣來顯示人工生命形式的網(wǎng)格

使用8x8獨(dú)角獸矩陣來顯示人工生命形式的網(wǎng)格

2023-07-13 | zip | 0.00 MB | 次下載 | 免費(fèi)

資料介紹

描述

之前...

2017 年,我做了一個(gè)名為“人工生命”的項(xiàng)目,該項(xiàng)目使用 8x8 獨(dú)角獸矩陣來顯示人工生命形式的網(wǎng)格,這些生命形式會(huì)相互繁殖和戰(zhàn)斗。

2022 年,我將項(xiàng)目更新為Artificial Life HD——它使用了 16x16 Unicorn 矩陣以及增強(qiáng)代碼、錯(cuò)誤修復(fù)和一些額外功能。

因此,我們將在 2023 年與 64x32 LED 面板兼容,并通過人工生命 2 進(jìn)行大量額外的錯(cuò)誤修復(fù)、增強(qiáng)/添加功能和優(yōu)化!

讓我們開始吧。

安裝

這可以與Unicorn HAT Unicorn HAT HD大型 LED 面板一起使用。

它還內(nèi)置了一個(gè)Unicorn HAT 模擬,因此它可以在沒有 LED 硬件的情況下運(yùn)行。

從我的 GitHub克隆 repo 代碼

git clone https://github.com/LordofBone/Artificial_Life --recurse-submodules

然后運(yùn)行:

pip install -r requirements.txt

然后到這里安裝 Unicorn HAT 。

對(duì)于此處的Unicorn HAT HD 安裝。

最后,這里是 LED 面板安裝。

通過我在 RPi OS Bullseye 64 位上找到的 LED 面板安裝,我發(fā)現(xiàn)我還必須安裝 Pillow 并更改 python 的調(diào)度權(quán)限:

pip install Pillow
sudo setcap 'cap_sys_nice=eip' /usr/bin/python3.9

然后可以運(yùn)行模擬:

python artifical_life.py

默認(rèn)情況下,這應(yīng)該會(huì)啟動(dòng)一個(gè) 16x16 的模擬獨(dú)角獸帽子。這與模擬的其他參數(shù)一起可以配置。

您可以通過設(shè)置來設(shè)置模擬 HAT 的自定義大?。?/font>

hat_model = "CUSTOM"
unicorn_simulator = True
hat_simulator_or_panel_size = x, y

盡管應(yīng)該注意模擬器中存在一個(gè)錯(cuò)誤,該錯(cuò)誤不允許 x 和 y 值彼此不同。

如果您安裝了 Unicorn HAT,您可以更改參數(shù):

hat_model = "HD"

對(duì)于 Unicorn HD:

hat_model = "HD"

獨(dú)角獸帽子迷你:

hat_model = "MINI"

LED面板:

hat_model = "PANEL"

Unicorn HAT 很可能需要以超級(jí)用戶身份運(yùn)行模擬:

sudo python artificial_life.py

這些也都可以通過 args 傳遞——查看所有可用的 args(下面也提供完整的 args 列表):

python artificial_life.py -h

增強(qiáng)/優(yōu)化

保持像素沉著:

我完全重新設(shè)計(jì)了將生命體寫入屏幕/面板/獨(dú)角獸 HAT 的方式——之前的工作方式是:

  • 邏輯循環(huán)運(yùn)行
  • 每個(gè)循環(huán)在顯示器上寫入一個(gè)實(shí)體位置以及 RGB 值
  • 在循環(huán)結(jié)束時(shí),顯示器立即寫出并顯示所有寫入的位置和 RGB 值

當(dāng)事情運(yùn)行順利時(shí),它工作得很好;但是循環(huán)開始運(yùn)行緩慢的運(yùn)動(dòng),即任何低于每秒 10 幀的運(yùn)動(dòng),顯示將變得難以看到每個(gè)單獨(dú)實(shí)體的實(shí)際情況,因?yàn)檎麄€(gè)屏幕會(huì)立即改變。

現(xiàn)在有一個(gè)完全不同的子模塊與主程序一起檢出:Pixel Composer 。

注意:使用 Pixel Composer 更改值時(shí)請(qǐng)小心,它可能會(huì)導(dǎo)致閃光,尤其是在非常明亮的 LED 面板上。

這由現(xiàn)在被寫入包含它們的位置和顏色的“世界空間”字典的實(shí)體起作用(現(xiàn)在保存為 R、G、B 的浮點(diǎn)值而不是 0-255),然后將其復(fù)制到“渲染平面”中' 在 Pixel Composer 中,然后異步運(yùn)行以將渲染平面中當(dāng)前的內(nèi)容顯示到幀緩沖區(qū),然后將其寫出到屏幕。

從本質(zhì)上講,這意味著不必等待整個(gè)過程循環(huán)完成才顯示出來,每個(gè)生命形式的位置將在顯示上同時(shí)移動(dòng),同時(shí)它們?cè)谒猩问降难h(huán)中移動(dòng)——即使整個(gè)循環(huán)需要 10 秒來處理所有事情,您仍然能夠清楚地看到生命形式的每一個(gè)動(dòng)作,而不是每一個(gè)都同時(shí)移動(dòng)。

最重要的是,這還允許一些很酷的額外效果,例如運(yùn)動(dòng)模糊、照明和背景著色器,例如雨效果和其他類似的時(shí)髦東西。

還有全屏著色器——我無意中發(fā)現(xiàn)它允許通過傳遞一個(gè)數(shù)字來顯示各種很酷的圖案:

class FullScreenPatternShader(ConfigurableShaderSuper):

    def __init__(self, count_number=0, count_number_max=32, count_number_step_up=1, count_number_step_down=1,
                 addition_shader=True, invert_count=True, shader_colour=(0.5, 0.5, 0.5)):
        super().__init__(count_number, count_number_max, count_number_step_up, count_number_step_down, addition_shader,
                         invert_count, shader_colour)

    # found this accidentally; I am not entirely sure how this works, but changing the max number that can be stepped
    # to will result in various cool effects as well as plus/minus stepping and whether the stepping will reset
    # when maxed or count back the other way
    def run_shader(self, pixel):
        if self.addition_shader:
            self.number_count_step_plus()
        else:
            self.number_count_step_minus()

        pixel_alpha = (self.count_number / self.count_number_max) * self.max_float
        shaded_colour = self.blend_colour_alpha(pixel, self.shader_colour, pixel_alpha)

        return shaded_colour

通過更改count_number_max變量和 shader_colour,可以從看起來像惡魔城游戲背景的靜止列中制作出各種很酷的圖案,或者可以產(chǎn)生看起來像雨等的移動(dòng)圖案。

pYYBAGSBS2yAPm3MAAJIXm3TEGM618.png
?

還有支柱:

pYYBAGSBS2-AELb1AAId9RlxT-w533.png
?

還如前所述 - 它現(xiàn)在使用浮點(diǎn)數(shù)來表示顏色,這基本上允許進(jìn)行 HDR 渲染;例如光照著色器;僅限于計(jì)算 0-255 范圍內(nèi)的照明效果效果不佳。在此處此處詳細(xì)了解為什么會(huì)發(fā)生這種情況。我想我的實(shí)現(xiàn)與正確的實(shí)現(xiàn)相比有很大的缺陷和簡(jiǎn)單,但它至少允許更好的顏色/照明模型。

這些浮點(diǎn)值被色調(diào)映射到 0-1 范圍內(nèi),并最終從浮點(diǎn)變?yōu)?RGB,以最終輸出到屏幕/LED。這給了它一些非常漂亮的顏色,并允許單獨(dú)設(shè)置亮度 - 總的來說它看起來更漂亮。

所有這些設(shè)置都可以修改并添加到 artificial_life.py 代碼本身,覆蓋 rasterizer.py 文件中的類

現(xiàn)在可以按下 Shift + F 來暫停和取消暫停渲染,而邏輯在后臺(tái)繼續(xù)進(jìn)行。

Shift + G 還將在模擬期間啟用/禁用重力。

Thanos 捕捉現(xiàn)在通過 Shift + T 激活,這是一種隨機(jī)移除棋盤上 50% 生命形式的快速方法。

未來的迭代將添加更多命令。

它是作為一個(gè)單獨(dú)的子模塊制作的,因?yàn)槲艺J(rèn)為這對(duì)其他項(xiàng)目很有幫助,所以我可能會(huì)在某個(gè)時(shí)候?yàn)榇藛为?dú)寫一篇文章,進(jìn)一步詳細(xì)說明和修改,以使其更容易集成到其他項(xiàng)目中。

有一種方法可以繞過 Pixel Composer,通過將 -ff 參數(shù)傳遞到 artificial_life.py 主代碼或進(jìn)入配置/參數(shù)并設(shè)置:

fixed_function = True

這將運(yùn)行得更快,但看起來不那么漂亮。一旦它們被處理,它將立即保持生命形式的運(yùn)動(dòng)——然而,不必等待所有生命形式循環(huán)處理。

現(xiàn)在還可以通過按 Shift + S 顯示當(dāng)前統(tǒng)計(jì)數(shù)據(jù),這也將顯示當(dāng)前模擬的開始時(shí)間。

即使在 8x8 Unicorn HAT 上,原始 AL 代碼也可能變得非常緩慢和滯后,通過一系列優(yōu)化,我能夠添加功能并使其即使在 16x16 板上運(yùn)行也更加流暢。現(xiàn)在已經(jīng)進(jìn)行了進(jìn)一步的優(yōu)化,以允許在 64x32 板上更快地運(yùn)行并具有新功能。

一個(gè)主要的優(yōu)化是改變碰撞/生成代碼的工作方式,以前這是通過以下方式工作的:

  • 檢測(cè)到與另一個(gè)生命形式/顯示器邊緣的碰撞
  • 隨機(jī)選擇的新方向
  • 檢查這個(gè)新的碰撞方向
  • 重復(fù)直到找到新的無碰撞方向或嘗試所有方向

這行得通,但它意味著處理可能會(huì)在一個(gè)生命形式上保留相當(dāng)長(zhǎng)的一段時(shí)間,因?yàn)樗兄饕较蚨急凰阉饕詫ふ乙粋€(gè)可以移動(dòng)到的自由位置。當(dāng)生命體聚集在一個(gè)角落里都在尋找周圍的無碰撞區(qū)域時(shí),這會(huì)導(dǎo)致一些延遲。這也類似于尋找新的位置來產(chǎn)生新的生命體。

所以我改變了它,以便將碰撞重新檢查推送到循環(huán)的下一次迭代。這樣一來,無論生命形式如何聚集,它都不必在每個(gè)循環(huán)中檢查它周圍的所有方向,這會(huì)導(dǎo)致速度減慢,因?yàn)槊總€(gè)生命形式都會(huì)在屏幕上的所有生命形式的循環(huán)中占用處理時(shí)間。

所以現(xiàn)在它像這樣工作:

  • 基于當(dāng)前運(yùn)動(dòng)的碰撞檢查
  • 如果空閑位置,移動(dòng)到那個(gè)位置
  • 如果不是空閑位置,選擇一個(gè)新的方向,下次循環(huán)到達(dá)這個(gè)生命體時(shí)將處理,并繼續(xù)處理隊(duì)列中的下一個(gè)生命體

這意味著循環(huán)將繼續(xù)并且其他生命形式將被處理,從而很好地加快速度并導(dǎo)致更平滑的運(yùn)動(dòng),同時(shí)還保持生命形式碰撞和彈開屏幕/其他物體邊緣的能力。反彈功能在功能上是相同的,而且運(yùn)行速度更快。涼爽的。

此外,我還使 DNA 混沌代碼更加高效,以便在繁殖另一種生命形式時(shí),來自任何一種生命形式的 DNA 仍然是父生命形式的混合體,但希望運(yùn)行速度更快的代碼,從而減少非常繁忙區(qū)域的滯后。

我還嘗試將盡可能多的代碼移動(dòng)到一個(gè)函數(shù)“進(jìn)程”中,以嘗試避免函數(shù)調(diào)用的時(shí)間損失——我相信函數(shù)調(diào)用可以加起來,并且在這樣的程序中,任何時(shí)候都可以進(jìn)行生命形式處理越快越好——雖然我對(duì)這件事可能是錯(cuò)的,但到目前為止,連同其他優(yōu)化,這讓事情運(yùn)行得更好;特別是對(duì)于 64x32 板,它可以完全填充 2048 種生命形式,所有這些都需要處理。

我還刪除了允許生命形式相互堆疊的設(shè)置(因此每個(gè)像素有多個(gè)生命形式),因?yàn)檫@既昂貴又緩慢,但如果我能找到更優(yōu)化的方法,我可能會(huì)返回此功能。

Minecraft 模式也已被刪除,因?yàn)?MC 似乎不再與 Raspberry Pi OS 打包在一起,即便如此,該功能仍需要大量工作和改進(jìn),這是未來將要研究的內(nèi)容。

我還添加了:

  • 可開采資源,在棋盤上被視為紅色方塊,包含大量可以開采的“資源”,從中開采的生命體可以保留資源并用它們建造城墻
  • 可以由生命形式建造的墻將保持靜止,除非足夠強(qiáng)大的生命形式將它們擊倒并獲得資源,這些墻也需要資源來建造;這樣生命形式就可以推倒墻壁并從收集到的資源中建造新的墻壁。如果它們不夠堅(jiān)固,它們會(huì)從墻上彈開
  • 添加了額外的動(dòng)量和彈跳力,因此當(dāng)重力打開并且生命形式從某物上反彈時(shí),動(dòng)量將被考慮在內(nèi),動(dòng)量也會(huì)從一種生命形式轉(zhuǎn)移到另一種
  • 此外,我還對(duì)生命形式在嘗試改變方向之前可以移動(dòng)多遠(yuǎn)進(jìn)行了一些更改,以確保它們可以在棋盤空間內(nèi)移動(dòng),而不是僅僅不斷地從墻上彈開,因?yàn)樗鼈円苿?dòng)變量的時(shí)間設(shè)置得太高了
  • 輻射,影響生命形式的生存時(shí)間以及繁殖時(shí)隨機(jī) DNA 變化的機(jī)會(huì)
  • 生命形式繁殖的能力,然后等待它們周圍的自由空間,所以你可以讓一個(gè)人在沒有空間的情況下產(chǎn)生新的生命形式,但是當(dāng)有自由空間時(shí),產(chǎn)生后代;這也適用于墻體建筑
  • 現(xiàn)在有一個(gè) BaseEntity 類,生命形式、資源和墻壁用作超類;這意味著將來當(dāng)我向模擬中添加更多東西時(shí),我可以使用這個(gè)超類并在子類中必要時(shí)覆蓋它
  • 如上所述,添加了鍵盤命令,例如能夠引起 Thanos Snap 和隨機(jī)擦除棋盤上 50% 的生命形式(由于 Pixel Composer,還具有很酷的淡入淡出效果)。還有能力提??高/降低輻射、啟用/禁用重力、凍結(jié)渲染和顯示當(dāng)前統(tǒng)計(jì)數(shù)據(jù)
  • 有一個(gè)重試功能,以便當(dāng)所有生命形式都過期時(shí)模擬重新啟動(dòng) - 我現(xiàn)在添加了一個(gè)會(huì)話開始日期時(shí)間戳,可以在統(tǒng)計(jì)數(shù)據(jù)中看到。因此,您可以將模擬打開一段時(shí)間然后再回來,查看當(dāng)前會(huì)話持續(xù)了多長(zhǎng)時(shí)間以及它是否仍然是您開始的原始會(huì)話
  • 在我嘗試保存/加載模擬的當(dāng)前狀態(tài)的那一刻,代碼中有一些 WIP 的東西,但事實(shí)證明這很耗時(shí)才能正常工作;這很可能會(huì)添加到下一個(gè)版本中,但請(qǐng)隨時(shí)查看現(xiàn)有代碼
  • 一種記憶系統(tǒng),生命形式將在其中繁殖/挖掘/贏得戰(zhàn)斗并記住發(fā)生的位置并嘗試返回到該點(diǎn)。如果在該位置發(fā)生另一個(gè)事件,它將在該點(diǎn)的記憶數(shù)量上加 1,如果沒有發(fā)生,它將在該點(diǎn)的記憶數(shù)量上減 1。他們總會(huì)回到記憶最積極的那個(gè)點(diǎn)。這是為了給生命體一些更有趣的運(yùn)動(dòng)行為。記憶也會(huì)傳遞給下一代生命體,除非他們‘叛逆’,然后他們從一個(gè)干凈的記憶開始;這與“健忘”一起由生命形式的 DNA 決定
  • 還有一個(gè)'bad memories' dict 變量,目前未使用,但未來會(huì)有一個(gè)系統(tǒng),生命形式將嘗試避開發(fā)生過不好事情的區(qū)域
  • 將 HAT 控制器和 LED 面板控制器代碼從屏幕輸出代碼分離到單獨(dú)的模塊中——這是為了允許更多的模塊化添加額外的屏幕/LED 顯示器,而無需更改主代碼/Pixel Composer 中的任何內(nèi)容,并且只有一個(gè)在屏幕控制器中實(shí)例化不同類的小改動(dòng)

新的輻射系統(tǒng)在模擬中增加了另一層,輻射設(shè)置可以通過 args 或通過 parameters.py 文件設(shè)置:

initial_dna_chaos_chance = 10
initial_radiation = 0
max_radiation = 90
change_of_base_radiation_chance = 0.001
radiation_dmg_multiplier = 1000
radiation_change = True

DNA 混沌變量設(shè)置在傳遞給生命形式后代時(shí)存在的 3 個(gè) DNA 片段中隨機(jī)創(chuàng)建新 DNA 的幾率百分比。這現(xiàn)在也受到新輻射水平的影響,輻射越高,隨機(jī) DNA 傳遞的機(jī)會(huì)就越高——基于這個(gè)初始數(shù)字和輻射水平的函數(shù)。

可以設(shè)置最大和初始輻射 - 如果輻射變化處于活動(dòng)狀態(tài),數(shù)字將在這兩個(gè)設(shè)置之間隨機(jī)選擇。在模擬過程中,可以分別使用 Shift+R 和 R 增加和減少最大輻射。

如果隨機(jī)更改輻射設(shè)置未打開,則這些鍵將調(diào)整當(dāng)前輻射而不是最大值 - 在這兩種設(shè)置下,當(dāng)前輻射將在曲線內(nèi)上下移動(dòng),根據(jù)當(dāng)前水平給出一點(diǎn)點(diǎn)變化。

更改設(shè)置受更改機(jī)會(huì)變量的影響,在處理所有生命形式的每個(gè)循環(huán)中,輻射都會(huì)發(fā)生變化(保持在最大輻射變量設(shè)置范圍內(nèi))的可能性百分比。

傷害倍數(shù)設(shè)置會(huì)影響輻射對(duì)生命形式造成的傷害程度;每次處理生命形式時(shí),都會(huì)進(jìn)行一次計(jì)算 - 沒有輻射,生命形式的生命有 1 次起飛。但是,對(duì)于輻射,可以進(jìn)行以下計(jì)算:

self.time_to_live_count -= percentage(current_session.radiation * args.radiation_dmg_multi, 1)

其中當(dāng)前輻射乘以輻射傷害乘數(shù)并用作正常 1 傷害的百分比。例如:100 * 1000 的輻射導(dǎo)致百分比為 100000,默認(rèn)百分比為 1000 - 導(dǎo)致生命形式受到的傷害。

使用以下參數(shù),可以在首次運(yùn)行時(shí)在隨機(jī)位置生成許多墻和資源,以及可供生命形式開采的資源——為它們四處導(dǎo)航添加更多有趣的環(huán)境。

在這里你可以看到“采礦設(shè)施”,那里的生命形式群體記得采礦事件發(fā)生的地點(diǎn),并試圖回到那個(gè)地方;所以你會(huì)看到他們成群結(jié)隊(duì)地坐在采礦資源周圍,看到其他一些人在建造圍墻周圍飛來飛去。

poYBAGSBS3GAVOvoAAC1vrYWkLI334.png
?

還有一個(gè)設(shè)置可以讓生命形式建造自己的墻以及一個(gè)倍增器——設(shè)置越高,生命形式建造墻的頻率就越高。

walls = 0
resources = 0
entities_build_walls = True
wall_chance_multiplier = 512

An模擬開始時(shí)生成的一些墻的示例:

poYBAGSBS3WAX-I5AAA8q6-wIAw153.png
?

還有一整套參數(shù),可以編輯以更改模擬中的各種內(nèi)容,這些參數(shù)位于 config/parameters.py 下:

max_trait_number = 1000000
initial_lifeforms_count = 10
population_limit = 50
max_enemy_factor = 8
logging_level = 'INFO'
initial_dna_chaos_chance = 10
initial_radiation = 0
max_radiation = 90
change_of_base_radiation_chance = 0.001
radiation_dmg_multiplier = 1000
retries_on = False
led_brightness = 0.3
hat_model = "HD"
hat_simulator_or_panel_size = 8, 8
hat_buffer_refresh_rate = 60
refresh_logic_link = True
fixed_function = False
unicorn_simulator = False
radiation_change = True
gravity_on = False
trails_on = False
combine_mode = True
walls = 0
resources = 0
entities_build_walls = True
wall_chance_multiplier = 512

所有這些也可以通過將 args 傳遞給程序來設(shè)置:

-m MAX_NUM, --max-num MAX_NUM
Maximum number possible for any entity traits
-ilc LIFE_FORM_TOTAL, --initial-lifeforms-count LIFE_FORM_TOTAL
Number of lifeforms to start with
-s LOOP_SPEED, --refresh-rate LOOP_SPEED
The refresh rate for the buffer processing, also sets
a maximum speed for the main loop processing, if sync
is enabled (this is to prevent the display falling
behind the logic loop)
-p POP_LIMIT, --population-limit POP_LIMIT
Limit of the population at any one time
-me MAX_ENEMY_FACTOR, --max-enemy-factor MAX_ENEMY_FACTOR
Factor that calculates into the maximum breed
threshold of an entity
-dc DNA_CHAOS_CHANCE, --dna-chaos DNA_CHAOS_CHANCE
Percentage chance of random DNA upon breeding of
entities
-shs CUSTOM_SIZE_SIMULATOR [CUSTOM_SIZE_SIMULATOR ...], --simulator-hat-size CUSTOM_SIZE_SIMULATOR [CUSTOM_SIZE_SIMULATOR ...]
                        Size of the simulator HAT in pixels; to use pass in
                        '-shs 16 16' for 16x16 pixels (x and y)
-c, --combine-mode    Enables life forms to combine into bigger ones
-tr, --trails         Stops the HAT from being cleared, resulting in trails
of entities
-g, --gravity         Gravity enabled, still entities will fall to the floor
-rc, --radiation-change
Whether to adjust radiation levels across the
simulation or not
-w WALL_NUMBER, --walls WALL_NUMBER
Number of walls to randomly spawn that will block
entities
-rs RESOURCES_NUMBER, --resources RESOURCES_NUMBER
Number of resources to begin with that entities can
mine
-r RADIATION, --radiation RADIATION
Radiation enabled, will increase random mutation
chance and damage entities
-mr MAX_RADIATION, --max-radiation MAX_RADIATION
Maximum radiation level possible
-rm RADIATION_DMG_MULTI, --radiation-multi RADIATION_DMG_MULTI
Maximum radiation level possible
-rbc RADIATION_BASE_CHANGE_CHANCE, --radiation-base-change RADIATION_BASE_CHANGE_CHANCE
The percentage chance that the base radiation level
will change randomly.
-be, --building-entities
Whether lifeforms can build static blocks on the board
-wc WALL_CHANCE_MULTIPLIER, --wall-chance WALL_CHANCE_MULTIPLIER
Whether lifeforms can build static blocks on the board
-rt, --retry          Whether the loop will automatically restart upon the
expiry of all entities
-sim, --unicorn-hat-sim
Whether to use the Unicorn HAT simulator or not
-hm {SD,HD,MINI,PANEL,CUSTOM}, --hat-model {SD,HD,MINI,PANEL,CUSTOM}
What type of HAT the program is using. CUSTOM only
works with Unicorn HAT Simulator
-l {CRITICAL,ERROR,WARNING,INFO,DEBUG,NOTSET}, --log-level {CRITICAL,ERROR,WARNING,INFO,DEBUG,NOTSET}
Logging level
-sl, --sync-logic     Whether to sync the logic loop to the refresh rate of
the screen
-ff, --fixed-function
Whether to bypass pixel composer and use fixed
function for drawing (faster, less pretty)

允許完全自定義體驗(yàn)和更輕松地分發(fā)代碼,而無需傳遞任何參數(shù),同時(shí)還允許在必要時(shí)通過 args 快速命令行級(jí)別調(diào)整。

更有趣的運(yùn)動(dòng)

隨著新的記憶系統(tǒng)的到位導(dǎo)致生命形式返回“獎(jiǎng)勵(lì)區(qū)域”,運(yùn)動(dòng)變得更加多樣化,而不僅僅是最終變成半可預(yù)測(cè)的結(jié)束狀態(tài)的隨機(jī)模式,生命形式現(xiàn)在移動(dòng)并以真正出乎意料的方式重新安排自己方法。

撞墻

當(dāng)開始模擬有墻的地方時(shí),它可以真正改變生命形式的移動(dòng)位置,并可以形成單獨(dú)的區(qū)域,在那里它們被隔離或必須在結(jié)構(gòu)周圍導(dǎo)航。

輻射 23

輻射系統(tǒng)為生命形式提供了另一個(gè)可選級(jí)別,因此現(xiàn)在隨著輻射影響 DNA 的傳遞以及每種生命形式的壽命,模擬比以前更難預(yù)測(cè)。

?

?

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
  2. 1.06 MB  |  532次下載  |  免費(fèi)
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費(fèi)
  5. 3TC358743XBG評(píng)估板參考手冊(cè)
  6. 1.36 MB  |  330次下載  |  免費(fèi)
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費(fèi)
  9. 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費(fèi)
  11. 6迪文DGUS開發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費(fèi)
  13. 7元宇宙底層硬件系列報(bào)告
  14. 13.42 MB  |  182次下載  |  免費(fèi)
  15. 8FP5207XR-G1中文應(yīng)用手冊(cè)
  16. 1.09 MB  |  178次下載  |  免費(fèi)

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費(fèi)
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費(fèi)
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費(fèi)
  7. 4開關(guān)電源設(shè)計(jì)實(shí)例指南
  8. 未知  |  21549次下載  |  免費(fèi)
  9. 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費(fèi)
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費(fèi)
  13. 7電子制作實(shí)例集錦 下載
  14. 未知  |  8113次下載  |  免費(fèi)
  15. 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費(fèi)
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費(fèi)
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費(fèi)
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費(fèi)
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費(fèi)
  11. 6電路仿真軟件multisim 10.0免費(fèi)下載
  12. 340992  |  191187次下載  |  免費(fèi)
  13. 7十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138040次下載  |  免費(fèi)