程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C#一個象棋游戲程序

C#一個象棋游戲程序

編輯:關於C語言

這個程序是為我的學生做的一個象棋游戲,裡面涉及大家有興趣的朋友可以下載來看看

其中繪制了一個虛擬網格,其中網格分布為9X10分布,和正規象棋布局一樣,即GridX,GridY作為該網格的X,Y坐標,所有坐標點均采用此虛擬網格進行轉換

其中定義了一個棋子接口,所有棋盤和棋子之間的交互均來自此接口

public interface IChessItem

{

/**////

/// 為藍方還是紅方

///

Enums.ChessType type{get;set;}

/**////

/// 是否被按下

///

bool IsChecked{get;set;}

/**////

/// 移動的步長X

///

int StepX{get;}

/**////

/// 移動的步長Y

///

int StepY{get;}

/**////

/// 在棋盤網格中的X坐標

///

int GridX{get;set;}

/**////

/// 在棋盤網格中的Y坐標

///

int GridY{get;set;}

/**////

/// 移動棋子

///

/// 將要移動的網格X坐標

/// 將要移動的網格Y坐標

/// 是否成功移動

bool MoveItem(int ChessX,int ChessY);

/**////

/// 初始化棋子

///

void InitItem();

/**////

/// 移除棋子,作為被其他棋子吃掉

///

void Remove();

}

其中有兩個比較重要的事件 private void cib_Click(object sender, EventArgs e)此事件為棋子被點機事件,由它來響應棋子的選中以及吃別的棋子,名字沒改,呵呵,不好意思

private void Form1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)此事件做為棋子實現移動

所有棋子移動均來源於IChessItem接口中的

bool MoveItem(int ChessX,int ChessY);

由於是給我學生看,此程序比較簡單,所以流程也比較簡單.學習C#(C#培訓 )的朋友可以來看一下,呵呵

其中算法麻煩一點的是炮的翻山,馬的蹩腳,象的蹩腳

所有棋子繼承ChessItemBase,其中一些棋子重寫函數public virtual bool LimitPoint(int ChessX,int ChessY)以實現自己的特殊限制移動,比如炮,馬,象,兵等

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved