首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> 關於.NET

中國象棋程式開發—— 佈局篇(INI 檔驅動棋盤初始化)

     編輯:關於.NET

記錄象棋程式開發歷程:從連敗到小勝,完成最基礎的開局佈局功能。採用 INI 檔案 定義棋子初始位置與對應圖片,WinForms PictureBox 陣列承載棋子視覺化,支援滑鼠拖曳移動。

核心資料結構

const string FileName = @"..\..\象棋布局文件.ini";
Hashtable chessHT = new Hashtable();      // 棋子名稱 → Image
PictureBox[] pictureBoxs = new PictureBox[32]; // 32 個棋子控制項
Image[] imgs = new Image[14];             // 14 種棋子圖片
string[] soldiers = new string[32];       // 棋子類型名稱
Point[] tempPoint = new Point[32];        // 棋子初始座標
bool whetherSelected = false;             // 確保單棋子移動
Point p, beforeMovePoint;                 // 滑鼠座標追蹤

初始化流程

  1. 建立 32 個 PictureBox 實例,加入 Panel,預設隱藏
  2. 載入 14 張棋子圖片(黑:卒炮車馬象士將;紅:兵砲車馬相士帥)建立對照表
  3. 註冊滑鼠事件:MouseDown/Move/Up 實作拖曳邏輯
  4. 讀取 INI 檔(未列出程式碼),依座標設定各 PictureBox 位置、圖片、Visible=true
// 圖片載入範例
imgs[0] = Image.FromFile(@"..\..\img\black-bing.gif");  // 黑卒
imgs[6] = Image.FromFile(@"..\..\img\black-jiang.gif"); // 黑將
imgs[7] = Image.FromFile(@"..\..\img\red-zu.gif");      // 紅兵
imgs[13] = Image.FromFile(@"..\..\img\red-shuai.gif");  // 紅帥

// 建立對照表
string[] names = {"黑卒","黑炮","黑車","黑馬","黑象","黑士","黑將",
                  "紅兵","紅炮","紅車","紅馬","紅相","紅士","紅帥"};
for (int i=0; i<14; i++) chessHT.Add(names[i], imgs[i]);

// 加入 Panel 並註冊事件
panel1.Controls.AddRange(pictureBoxs);
for (int i=0; i<32; i++) {
    pictureBoxs[i].Visible = false;
    pictureBoxs[i].MouseDown += PictureBoxs_MouseDown;
    pictureBoxs[i].MouseMove += PictureBoxs_MouseMove;
    pictureBoxs[i].MouseUp += PictureBoxs_MouseUp;
}

執行畫面

象棋初始佈局畫面

後續將實作走法驗證、AI 對弈、悔棋等功能。原始碼結構清晰,易於擴充。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved