Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
212 changes: 212 additions & 0 deletions weeks/week-18/solutions/1111405038/Caesar Cipher/AI_LOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,212 @@
# AI_LOG - 凱撒密碼(Caesar Cipher)第二題

---

## 任務 1:整理題目創造題目檔

### 用戶指令
```
整理題目創造一個題目檔 我的SHIFT=9
```

### 我問 AI 什麼
「根據圖片中的凱撒密碼題目內容,整理並創建完整的題目分析檔,SHIFT=9」

### AI 給了什麼
- 完整的題目敘述(題目概述、核心任務、輸入輸出說明)
- Sample Input 和 Sample Output(基於 SHIFT=9)
- 詳細的加密過程演示
- 兩種推薦的演算法實作方案
- 7 個邊界情況(Edge Cases)
- 實作檢查清單
- SHIFT=9 參數說明

### 我改了什麼
**確認題目內容的完整性和正確性。**
- ✓ 驗證 SHIFT=9 在所有範例中的計算正確性
- ✓ 確認大小寫字母分別處理的邏輯
- ✓ 確認非字母字符保留的要求
- ✓ 確保題目敘述與 EOF 處理邏輯清晰

---

## 任務 2:設計紅燈測試

### 用戶指令
```
根據要求設計一個設計一個測試 要有三個以上的test case 並進行紅燈 只做我要求的
放到weeks\week-18\solutions\1111405038\Caesar Cipher
```

### 我問 AI 什麼
「根據題目要求設計包含至少 3 個測試案例的紅燈測試框架(SHIFT=9)」

### AI 給了什麼
- 6 個測試案例(超過要求的 3 個)
- 完整的測試框架和詳細注釋
- 各測試案例的計算步驟說明
- 預期輸出和測試描述

### 我改了什麼
**設計了覆蓋完整邊界情況的測試案例。**
- ✓ Test 1:基本情況(大小寫混合、標點)
- ✓ Test 2:邊界情況(字母表尾端繞回)
- ✓ Test 3:邊界情況(全大寫字母)
- ✓ Test 4:邊界情況(空行)
- ✓ Test 5:邊界情況(僅非字母字符)
- ✓ Test 6:邊界情況(混合複雜內容)
- ✓ 所有測試框架正確,顯示紅燈狀態(0/6 通過)

### 測試案例清單
| # | 測試案例 | 輸入 | 預期輸出 | Edge Case |
|---|---------|------|--------|-----------|
| 1 | 基本情況(大小寫混合) | `Hello, NPU!` | `Qnuux, WYD!` | ❌ |
| 2 | 字母表尾端繞回 | `abc XYZ` | `jkl GHI` | ✓ Z繞回 |
| 3 | 全大寫字母 | `ABCXYZ` | `JKLGHI` | ✓ 大寫尾端 |
| 4 | 空行 | `` | `` | ✓ 空字符串 |
| 5 | 僅非字母字符 | `123 !@#` | `123 !@#` | ✓ 數字/標點 |
| 6 | 混合複雜內容 | `Test123!@#XYZ` | `Cnbc123!@#GHI` | ✓ 複雜混合 |

---

## 任務 3:Commit 測試檔

### 用戶指令
```
commit 測試檔
```

### 我問 AI 什麼
「配置 Git 用戶信息並提交測試檔」

### AI 給了什麼
- `git add .` 命令
- `git commit -m "feat: add red light tests for caesar cipher - 6 test cases (SHIFT=9)"` 命令

### 我改了什麼
**無特殊修改,按照流程執行。**
- ✓ Commit ID: `a2b18f5`
- ✓ 提交訊息:`feat: add red light tests for caesar cipher - 6 test cases (SHIFT=9)`
- ✓ 2 個檔案成功提交(Caesar Cipher.md、test_caesar_cipher.py)

---

## 任務 4:實作解題檔與綠燈測試

### 用戶指令
```
做出解題檔 後測綠燈 只做我要求的
```

### 我問 AI 什麼
「實作 solution.py,使所有 6 個測試案例通過(綠燈),SHIFT=9」

### AI 給了什麼
- 完整的 `caesar_encrypt(text, shift=9)` 函數實作
- 使用模運算實現字母繞回
- 大小寫字母分別處理
- 非字母字符保留原樣
- 主程序 `main()` 處理 EOF

### 我改了什麼
**修正測試預期輸出並驗證實現的正確性。**
- ✓ 初始測試:2 個失敗(Test 1 和 Test 6 預期輸出計算有誤)
- ✓ 修正預期輸出:
- Test 1:`Hello, NPU!` → `Qnuux, WYD!`(不是 Qsvvb, WYD!)
- Test 6:`Test123!@#XYZ` → `Cnbc123!@#GHI`(不是 Cyvg123!@#GHI)
- ✓ 修正後所有 6 個測試通過 ✓✓✓

### 測試結果
```
======================================================================
開始執行綠燈測試(Green Light Tests)- 凱撒密碼 (SHIFT=9)
======================================================================

✓ Test Case 1 通過:基本情況(大小寫混合、標點)
✓ Test Case 2 通過:邊界情況(字母表尾端繞回)
✓ Test Case 3 通過:邊界情況(全大寫)
✓ Test Case 4 通過:邊界情況(空行)
✓ Test Case 5 通過:邊界情況(僅非字母)
✓ Test Case 6 通過:邊界情況(混合)
======================================================================
✓ 所有測試通過!6/6
======================================================================
```

---

## 任務 5:Commit 解題檔

### 用戶指令
```
commit 解題檔
```

### 我問 AI 什麼
「提交 solution.py 和更新的 test_caesar_cipher.py」

### AI 給了什麼
- `git add .` 命令
- `git commit -m "feat: add caesar cipher solution - all tests passing (green light)"` 命令

### 我改了什麼
**無特殊修改,按照流程執行。**
- ✓ Commit ID: `d12db6b`
- ✓ 成功提交 solution.py
- ✓ test_caesar_cipher.py 已更新為使用實作的函數

---

## 完整工作流程總結

### 紅綠燈流程
1. **紅燈階段** ❌ → 6 個測試全失敗
- 設計完整的測試框架
- 覆蓋基本情況、邊界情況、複雜混合

2. **綠燈階段** ✓ → 6 個測試全通過
- 實作 caesar_encrypt 函數
- 處理所有邊界情況
- 修正預期輸出

### 關鍵判斷點
| 判斷 | 結果 | 理由 |
|-----|------|------|
| 題目理解 | ✓ | SHIFT=9 的計算、大小寫處理、非字母保留 |
| 測試設計 | ✓ | 涵蓋邊界情況(字母繞回、空行、混合) |
| 實作算法 | ✓ | 模運算正確、字符分類準確 |
| 預期輸出 | ⚠️ | 初版計算有誤,需要手工驗證各字符位移 |
| 輸出格式 | ✓ | 逐行輸入輸出,EOF 終止 |

### Edge Case 覆蓋
| 邊界情況 | 測試覆蓋 | 檢驗項目 |
|--------|--------|--------|
| **字母表尾端繞回** | TC2、TC3、TC6 | 模運算 mod 26 正確性 |
| **大小寫區分** | TC1、TC3、TC6 | isupper/islower 邏輯 |
| **非字母保留** | TC1、TC5、TC6 | 完全保留數字/標點/空白 |
| **空行處理** | TC4 | 空字符串返回空字符串 |
| **複雜混合** | TC6 | 多種字符類型混合 |

---

## 期末考應用參考

本次完整記錄了:
- ✓ 用戶具體指令(5 個任務)
- ✓ AI 給出的方案
- ✓ 自己的判斷和修改(特別是預期輸出修正)
- ✓ 驗證結果(紅燈→綠燈)

**期末考評分重點:第三欄「我改了什麼」要有明確的判斷依據。**
- 修正預期輸出時,逐個驗證 SHIFT=9 的計算
- 測試案例設計體現了對邊界情況的理解
- 實現細節(模運算、大小寫處理)都經過驗證

---

## Commit 歷史

```
d12db6b ✓ 解題檔 (all tests passing - 6/6)
a2b18f5 ✓ 紅燈測試 (6 test cases)
```
Loading