【環世界】數據化管理 糧食作物及餐飲攻略指南 水稻/土豆/玉米

還在爲殖民地頻繁斷糧而頭疼?總被枯萎病打得措手不及?這份攻略幫你徹底解決食物問題!

(其實是我總是糾結應該種多少格的地,研究了一下後,寫下指南)

遊戲鏈接及簡介:

由聰明的人工智能故事講述者驅動的科幻殖民地模擬電腦遊戲。通過模擬心理學、生態學、槍戰、近戰、氣候、生物羣落、外交、人際關係、藝術、醫學、貿易等來生成故事。

指南適合玩家:

  • 受夠反覆計算種植面積的強迫症

  • 想用最小空間養活最多殖民者基地的規劃黨

  • 追求數據化管理的硬核玩家

說明:投稿中的表格均來自我的Steam指南,另外,如有錯誤,歡迎指正。

—————————————

作物:水稻

簡介:

儘管該作物生長速度快導致單個圖塊的總產量較高, 但是平均每日產量爲最低,因此該植物無論在播種/收穫的總工作量是最大的。

分析:

很短的成熟時間使得它成爲建立殖民地初期的最理想的農作物,當食物短缺時可以作爲緊急糧食作物,可以被用於生長季節較短的生態環境以及作爲入冬前“最後一次農作物種植”的作物。

由於水稻的收穫頻率很高,成長期又短,因此來自枯萎病、寒流和其他具有破壞性事件的損失比其他農作物要少得多,該作物快速生長的特性也可以用來快速提升殖民者的種植等級。

一些我獲取到的數據實際生長時間爲5.54日,基礎產量爲1.08/天,每格產量爲6單位,肥力敏感性100%

補充上具體數據後,表格如下:

—————————————

作物:土豆

簡介:

一種簡單而營養豐富的塊莖植物。即使在比較貧瘠的土地上也能茁壯生長。不用多久就能收穫。一種強大萬能的農作物。

分析:

在普通的土壤中(100% 肥沃度),土豆單圖塊的平均日產量略低於水稻和玉米, 所以該植物的主要優勢是土壤肥沃敏感度較低,因此適合種植在一些乾旱,肥沃度較低的土地中,如果選擇種植在肥沃土壤或使用水栽培,其表現更差。

在那些全年適合播種時間較短,玉米等其他農作物生長速度過慢的環境中,土豆會是一個更好的選擇,因爲其生長速度相較於玉米較快,勞動強度更低。

數據:實際生長時間爲10.71日,基礎產量爲1.03/天,每格產量爲11單位,肥力敏感性40%

補充數據後,表格如下:

—————————————

作物:玉米

簡介:

生長週期較長,產量非常高,但是無法在水栽培植物盆中種植。

分析:

在普通土壤(100%肥沃度)中,玉米每天提供的營養略低於水稻,略高於土豆植株。 玉米的主要優勢爲工作效率(播種以及收穫時間)極高。

但是較長的生長週期也意味着如果在生長過程中不幸遭遇枯萎病、寒流、火災或其他事件,則該植物的損失及其慘重。並且,根據生態環境的影響,溫度、氣候等,玉米可能無法在冬天到來之前成熟(如果你的生態環境爲全年可播種則無所謂)

數據:實際生長時間爲20.86日,基礎產量爲1.06/天,每格產量爲22單位,肥力敏感性100%

補充數據後,表格如下:

—————————————

作物:總結章

水稻

水稻憑藉極短的生長週期成爲危機應對的首選。

在普通土壤中每格日產量1.08單位(6單位/5.54天),水培盆中飆升至3.03單位/天。

但頻繁操作導致殖民者大半農業時間消耗在播種/收割上。

優勢:降溫前5天搶種仍可收穫(普通土地),枯萎病損失可控(單次損失≤6單位)

土豆

40%的肥力敏感性使其在沙礫地塊(70%肥力)仍保持0.90單位/天產量,遠超水稻的0.76單位。

但肥沃土地表現平庸(1.19單位/天),甚至不如玉米在普通土壤的1.06單位。

優勢:在沙礫這類地塊仍能獲得較高收益

玉米

單次22單位的超高產量使其成爲儲備糧首選,但過長生長週期意味着可能越冬失敗,或是難以應對枯萎病、寒流等事件。

不能水培,即使是肥沃土地也需要至少15天生長期緩衝。

優勢:解放殖民者,讓他們更少地把時間花費在播種/收割上

種植策略

沙漠/乾旱灌木(沙礫較多):土豆

溫帶:水稻

熱帶雨林:玉米

另外,默認開局的食物僅能生存約一週,建議第一次種植都選擇水稻

研究出水培後,使用水培種植水稻效率最高,土豆因肥力敏感度問題,實際利用效率遠低於水稻。

同時應搭配玉米,減少殖民者的工作量。

最後,建議每季度根據殖民地人口、電力儲備、地塊等調整種植比例

—————————————

基礎餐飲

殖民者在大多數情況下不需要直接生喫食物(減少心情,並且可能食物中毒),而是將它們製作成熟食。

熟食可以從相同數量的生食中獲得更多營養,例如,烹飪簡單食物需要0.5營養,但是會提供0.9營養,相當於食物憑空多了180%,此外,還可以增加殖民者的心情。

因此,我們需要考慮到種植對熟食的影響。

根據數據,土豆、玉米、稻米的營養值均爲0.05

簡單食物:需要投入0.5的營養

營養膏:需要投入0.3的營養

兩者均能爲食用它的人提供相同的數值——0.9營養。

根據以上數據,列出表格如下:

一個標準的、沒有其它修正的成年人一天要消耗1.6營養來滿足飢餓,並且他們能夠隨時“儲存”1.0 營養(因爲現實中的人類也不是喫完一頓飯就趕緊喫第二頓飯)

也就是說,約每天兩頓飯(或32單位生食)可以餵養一個成年人。

加入作物的營養值與相關食品的數據,再考慮5%冗餘,供養殖民者需要種植的格數如下:

—————————————

計算程序

因爲覺得每次都查會很麻煩,所以寫了一個程序幫助計算。

鏈接:pan.quark.cn/s/237f744ff126

提取碼:bk6S

這裏先疊個甲,我是學文科的,課程不涉及編程和數學,這方面內容都是自學,可能存在很多錯誤。

以下是這個Python程序的代碼,方便大家使用及修改。

 

import math
 

# === 數據配置 ===

CROP_LIST = [

    {"id": 1, "name": "土豆", "fertility_sensitivity": 0.4, "base_yield": 11, "growth_days": {"沙礫": 12.17, "普通": 10.71, "肥沃": 9.23, "水培": 6.23}},

    {"id": 2, "name": "玉米", "fertility_sensitivity": 1.0, "base_yield": 22, "growth_days": {"沙礫": 29.8, "普通": 20.86, "肥沃": 14.9, "水培": None}},

    {"id": 3, "name": "水稻", "fertility_sensitivity": 1.0, "base_yield": 6, "growth_days": {"沙礫": 7.91, "普通": 5.54, "肥沃": 3.96, "水培": 1.98}}

]

SOIL_LIST = [

    {"id": 1, "name": "沙礫", "display": "沙礫地塊", "fertility": 0.7},

    {"id": 2, "name": "普通", "display": "普通土地", "fertility": 1.0},

    {"id": 3, "name": "肥沃", "display": "肥沃土地", "fertility": 1.4},

    {"id": 4, "name": "水培", "display": "水栽培植物盆", "fertility": 2.8}

]

MEAL_TYPES = {

    "簡單飯菜": {"input": 0.5, "output": 0.9},

    "營養膏": {"input": 0.3, "output": 0.9}

}

YEAR_DAYS = 60  # 遊戲年總天數

# === 函數配置 ===

def show_menu(items, title):

    print(f"\n=== {title} ===")

    for item in items:

        print(f"{item['id']}. {item.get('display', item['name'])}")

    while True:

        try:

            choice = int(input("請選擇編號: "))

            selected = next((x for x in items if x["id"] == choice), None)

            if selected:

                return selected

            print("錯誤:無效編號,請重新輸入")

        except ValueError:

            print("錯誤:請輸入數字")

def get_valid_input(prompt, min_val, max_val):

    while True:

        try:

            value = int(input(prompt))

            if min_val <= value <= max_val:

                return value

            print(f"錯誤:請輸入{min_val}-{max_val}之間的整數")

        except ValueError:

            print("錯誤:請輸入有效數字")

def calculate_farmland(crop, soil, population, growing_days):

    # 驗證生長期是否足夠

    crop_growth_days = crop["growth_days"][soil["name"]]

    if crop_growth_days is None:

        raise ValueError(f"{crop['name']}不能種植在{soil['display']}")

    if crop_growth_days > growing_days:

        raise ValueError(f"{crop['name']}需要{crop_growth_days}天生長期,但當前只有{growing_days}天")

   

    # 計算有效肥力

    effective_fertility = 1 + (soil["fertility"] - 1) * crop["fertility_sensitivity"]

   

    # 計算年產量

    harvests = growing_days // crop_growth_days

    annual_yield_per_tile = crop["base_yield"] * harvests * effective_fertility

   

    # 計算所需格數(包含5%冗餘)

    required_nutrition = population * 1.6 * YEAR_DAYS

    required_tiles = math.ceil(required_nutrition / (annual_yield_per_tile * 0.05) * 1.05)

   

    # 餐飲計算

    total_annual_nutrition = annual_yield_per_tile * required_tiles * 0.05

    meal_data = {}

   

    for meal_type, params in MEAL_TYPES.items():

        meals = int(total_annual_nutrition // params["input"])

        nutrition_output = meals * params["output"]

        supported_people = nutrition_output / (1.6 * YEAR_DAYS)

       

        meal_data[meal_type] = {

            "total_meals": meals,

            "daily_meals": round(meals / YEAR_DAYS, 1),

            "supported_people": round(supported_people, 1)

        }

   

    return {

        "crop": crop["name"],

        "soil": soil["display"],

        "tiles": required_tiles,

        "harvests": harvests,

        "layout": optimal_layout(required_tiles),

        "annual_yield": annual_yield_per_tile * required_tiles,

        "meal_data": meal_data

    }

def optimal_layout(tiles):

    if tiles <= 0:

        return "無需種植"

   

    # 尋找最佳近似正方形

    best_diff = float('inf')

    best_w = 1

    best_h = tiles

   

    max_width = min(int(math.sqrt(tiles)) * 2, tiles)

    for w in range(1, max_width + 1):

        h = math.ceil(tiles / w)

        area = w * h

        diff = abs(w - h) + (area - tiles) * 0.1  # 平衡形狀和冗餘

       

        if diff < best_diff and area >= tiles:

            best_diff = diff

            best_w = w

            best_h = h

   

    # 優化顯示格式

    if best_w == best_h:

        return f"{best_w}×{best_h}"

    return f"{best_w}×{best_h} (共{best_w*best_h}格)"

# === 主程序 ===

def main():

    print("\n=== 邊緣世界農場工具 ===")

    print("作者:吾之野望 | 數據版本:1.5.4069")

   

    try:

        # 用戶輸入

        population = get_valid_input("\n請輸入殖民者數量: ", 1, 1000)

        growing_days = get_valid_input("請輸入生長期天數 (1-60): ", 1, 60)

       

        # 菜單選擇

        crop = show_menu(CROP_LIST, "選擇作物")

        soil = show_menu(SOIL_LIST, "選擇土地類型")

       

        # 計算並顯示結果

        result = calculate_farmland(crop, soil, population, growing_days)

       

        print("\n=== 種植數據 ===")

        print(f"作物:{result['crop']}")

        print(f"土地:{result['soil']}")

        print(f"年收穫次數:{result['harvests']}次")

        print(f"所需格數:{result['tiles']}格(含5%冗餘)")

        print(f"推薦佈局:{result['layout']}")

       

        print("\n=== 餐飲生產 ===")

        for meal_type, data in result["meal_data"].items():

            status = "充足" if data['supported_people'] >= population else "不足"

            print(f"\n{meal_type} {status}")

            print(f"  全年總量:{data['total_meals']}份")

            print(f"  日均生產:{data['daily_meals']}份/天")

            print(f"  供養能力:{data['supported_people']}人")

        print("\n說明")

        print("- 此程序佈局優先近似正方形,允許10%以內長寬差異")

        print("- 已包含5%產量冗餘,防止意外損失")

    except Exception as e:

        print(f"\n發生錯誤:{str(e)}")

    finally:

        input("\n按回車鍵退出程序...")

if __name__ == "__main__":

    main()

—————————————

附錄

(不完全)使用公式:

  1. 實際生長週期 = 基礎週期 / (1 + (土壤肥力% - 1)*肥力敏感度

    例:水稻普通土地=5.54/(1+(1.0-1)*1.0=5.54天

  2. 日產量 = 單次產量 / 實際週期

    例:水稻水培=6/1.98≈3.03單位/天

  3. 日營養產出 = 日產量 * 0.05

    例:水培水稻=3.03*0.05≈0.152營養/天

  4. 理論格數 = (1.6 * 人口數 * 60) / (日營養產出 * 60)

    簡寫:格數=1.6*人口/日營養產出

  5. 實際格數 = 理論格數 * 1.05(5%冗餘)

    例:10人水培水稻=1.6*10/0.152*1.05≈110格

  6. 簡單食物量 = 總營養 / 0.5

  7. 營養膏量 = 總營養 / 0.3

  8. 供養人數 = (食物量 * 0.9) / (1.6 * 60)

    2000食物≈18.75人

變量說明:

土壤肥力%:沙礫70/普通100/肥沃140/水培280

肥力敏感度:土豆0.4/玉米1.0/水稻1.0

單次收穫量:土豆11/玉米22/水稻6

參考:

RimWorld中文維基(rimworld.huijiwiki.com/wiki/)

RimWrold Wiki(rimworldwiki.com/wiki/)

更多遊戲資訊請關註:電玩幫遊戲資訊專區

電玩幫圖文攻略 www.vgover.com