iT邦幫忙

2026 iThome 鐵人賽

DAY 30
0
自我挑戰組

從 Hello World 學習 C#,到看懂AI生成的遊戲程式碼系列 第 30 篇

【Day 30】完成我的第一個 AI C# 小遊戲

  • 分享至 

  • xImage
  •  

介紹要生成的程式碼

經過 30 天的學習,最後一天我想讓 AI 幫我完成一個相對完整的小遊戲。
這次我請 AI 加入:

  • 玩家名稱
  • 玩家生命值
  • 敵人
  • 攻擊
  • 回復
  • 遊戲選單
  • 勝負判斷
    和前幾天不同的是,這次我不只是把 AI 產生的程式碼複製下來。
    我會嘗試利用前 22 天學習的 C# 基礎,自己閱讀這些程式碼。

程式碼

using System;

class Character
{
    public string name;
    public int health;

    public Character(string name, int health)
    {
        this.name = name;
        this.health = health;
    }

    public bool IsAlive()
    {
        return health > 0;
    }
}

class Program
{
    static void Main()
    {
        Console.Write("請輸入你的名字:");
        string playerName = Console.ReadLine();

        Character player = new Character(playerName, 100);
        Character enemy = new Character("史萊姆", 50);

        Console.WriteLine("\n敵人出現了!");

        while (player.IsAlive() && enemy.IsAlive())
        {
            Console.WriteLine("\n1. 攻擊");
            Console.WriteLine("2. 回復");
            Console.WriteLine("3. 查看狀態");

            int choice = int.Parse(Console.ReadLine());

            switch (choice)
            {
                case 1:
                    enemy.health -= 10;
                    Console.WriteLine(player.name + " 發動攻擊!");

                    if (enemy.IsAlive())
                    {
                        player.health -= 5;
                        Console.WriteLine("史萊姆反擊了!");
                    }
                    break;

                case 2:
                    player.health += 20;
                    Console.WriteLine("你回復了 20 點生命!");
                    break;

                case 3:
                    Console.WriteLine(player.name + ":" + player.health);
                    Console.WriteLine(enemy.name + ":" + enemy.health);
                    break;

                default:
                    Console.WriteLine("無效選項!");
                    break;
            }
        }

        if (player.IsAlive())
        {
            Console.WriteLine("\n恭喜 " + player.name + ",你獲勝了!");
        }
        else
        {
            Console.WriteLine("\n遊戲結束!");
        }
    }
}

解析每行代表的意思

class Character

建立 Character 類別,可以把它想成角色的設計圖。

public string name;
public int health;

角色擁有名稱與生命值。

public Character(string name, int health)

建立建構子,讓建立角色時可以直接設定名稱與生命值。

public bool IsAlive()

建立一個回傳 bool 的方法。

true
false
return health > 0;

判斷生命值是否大於 0。

Character player = new Character(playerName, 100);

利用 Character 建立玩家物件。

Character enemy = new Character("史萊姆", 50);

建立一個生命值為 50 的史萊姆敵人。

while (player.IsAlive() && enemy.IsAlive())

只要玩家和敵人都還活著,遊戲就繼續。

switch (choice)

根據玩家的選擇執行不同功能。

enemy.health -= 10;

讓敵人的生命值減少 10。

if (enemy.IsAlive())

判斷敵人是否還活著。
如果還活著,敵人就會反擊。

if (player.IsAlive())

最後判斷玩家是否還活著。
如果玩家還活著,就顯示獲勝。


心得:

30 天前,我對程式設計的理解可能還停留在「程式碼是一堆看不懂的英文」。
經過這 30 天,我開始知道:

  • int 是資料型態
  • 變數可以儲存資料
  • if 可以進行條件判斷
  • for 和 while 可以重複執行程式
  • switch 可以處理不同選項
  • 方法可以把功能整理起來
  • 陣列可以管理多筆資料
  • class 可以建立物件

最後 8 天,我沒有選擇從零開始製作一款大型遊戲,而是嘗試讓 AI 產生程式,再利用自己學過的 C# 知識去閱讀它。我最大的收穫並不是「AI 幫我完成了一個遊戲」。
而是我開始具備了:

看到 AI 產生的程式碼時,可以嘗試理解它在做什麼。

AI 可以幫我寫程式,但如果自己沒有程式基礎,就很難判斷 AI 寫出的內容是不是正確,也很難知道要怎麼修改。
所以這 30 天對我來說,不只是學習 C#
而是從:「我不會寫程式」
慢慢變成:「即使 AI 幫我寫程式,我也有能力閱讀和理解它。」
這就是我這次 30 天挑戰最大的收穫。

以上是我的30天學習程式的紀錄,謝謝大家的收看,期待下次與各位再次在程式學習中相會


上一篇
【Day 29】讓 AI 幫我整合完整的小遊戲
系列文
從 Hello World 學習 C#,到看懂AI生成的遊戲程式碼 共 30 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言