基於 Borland BGI `
for (int round = 0; round < 20; ++round) {
col = random(10)*20 + 200; // 水平偏移
speed = 2 + random(2); // 速度
for (x = -250; x <= 250; x += speed) {
y = pow(x/10, 2) + 200;
DrawFly(x, y, WHITE);
DrawM(mx, my, YELLOW);
delay(gamespeed);
DrawM(mx, my, BLACK);
DrawFly(x, y, BLACK);
// 鍵盤處理 → 更新 mx, my
// 空格鍵 → 碰撞判定 → 得分/打破
// 飛出底部 → 自動結束回合
}
// 顯示擊中/未擊中標記
}
Win(); // 根據分數顯示評價
| DOS/BGI | 現代替代 (SDL2 為例) |
|---|---|
| `initgraph` | `SDL_CreateWindow` + `SDL_CreateRenderer` |
| 直接顯存寫入 | `SDL_RenderDrawPoint` / `SDL_Texture` 像素操作 |
| INT 9h 攔截 | `SDL_PollEvent` 處理 `SDL_KEYDOWN/UP` |
| `delay()` | `SDL_Delay` 或固定時間步長累加器 |
| `randomize()`/`random()` | `std::mt19937` + `std::uniform_int_distribution` |
| `graphics.h` 繪圖 | SDL2_gfx / 手繪矩形/圓 / 精靈圖 |