C#實(shí)現(xiàn)飛行棋小游戲
本文實(shí)例為大家分享了C#實(shí)現(xiàn)飛行棋小游戲的具體代碼,供大家參考,具體內(nèi)容如下
邏輯圖
以下是擲色子的一個(gè)代碼,比較有代表性,里面的邏輯和內(nèi)容都已注釋,可通過注釋了解這一方法的運(yùn)作模式。
public static void RowTouZi(int playerPos) //擲色子
{
//產(chǎn)生隨機(jī)數(shù),擲色子的隨機(jī)數(shù)
Random r = new Random();
int num = r.Next(1, 7);
//定義一個(gè)字符串變量
string msg = "";
//提示用戶信息
Console.WriteLine("{0}按任意鍵開始擲色子", PlayerNames[playerPos]);
//不顯示用戶按下的任意鍵
Console.ReadKey(true);
//根據(jù)不同的變量的值顯示不同的情況
Console.WriteLine("{0}擲出了{(lán)1}", PlayerNames[playerPos], num);
//提示用戶誰開始行動了
Console.WriteLine("{0}按任意鍵開始行動...", PlayerNames[playerPos]);
Console.ReadKey(true);
//用戶的坐標(biāo)開始改變
PlayerPos[playerPos] += num;
//判斷兩個(gè)用戶坐標(biāo)可能出現(xiàn)的問題(重疊的問題)
if (PlayerPos[playerPos] == PlayerPos[1- playerPos])
{
msg=string.Format("玩家{0}踩到了玩家{1},玩家{2}退6格", PlayerNames[playerPos], PlayerNames[1- playerPos], PlayerNames[1 - playerPos]);
PlayerPos[1- playerPos] -= 6;
}
else
{
//檢查是否出界
CheckPos();
switch (Map[PlayerPos[playerPos]])
{
//沒有障礙
case 0:
msg ="行動完了";
break;
//踩到幸運(yùn)輪盤
case 1:
msg = string.Format("{0}走到了幸運(yùn)輪盤,請選擇1--交換位置,2---轟炸對方", PlayerNames[playerPos]);
//進(jìn)行選擇,調(diào)用Readint方法,只可以讓用戶輸入1或2;
int number = ReadInt(msg, 1, 2);
//進(jìn)行判斷用戶選擇的哪個(gè)方案,進(jìn)行執(zhí)行相應(yīng)的代碼
if (number == 1)
{
//交換位置
int temp = 0;
temp = PlayerPos[playerPos];
temp = PlayerPos[playerPos];
PlayerPos[playerPos] = PlayerPos[1- playerPos];
PlayerPos[1- playerPos] = temp;
msg=string.Format("玩家{0}選擇了玩家{1}交換位置", PlayerNames[playerPos], PlayerNames[1- playerPos]);
}
else
{
PlayerPos[1- playerPos] = 0;
msg = string.Format("玩家{0}選擇了轟炸玩家{1}", PlayerNames[playerPos], PlayerNames[1- playerPos]);
}
break;
//踩到地雷了
case 2:
msg="踩到地雷了,后退6步";
//坐標(biāo)后退6
PlayerPos[playerPos] -= 6;
//檢查是否出界
CheckPos();
break;
//踩到暫停了
case 3:
msg ="踩到暫停了";
//將flag數(shù)組中的false,改為true,執(zhí)行true相應(yīng)的代碼
flag[playerPos] = true;
break;
//踩到了時(shí)空隧道
case 4:
msg = string.Format("恭喜你,踩到時(shí)空隧道,前進(jìn)10步");
//坐標(biāo)前進(jìn)10
PlayerPos[playerPos] += 10;
//判斷是否出界
CheckPos();
break;
}
}
Console.Clear(); //清除掉原來的地圖
DrawMap(); //在畫一邊地圖
//因?yàn)橹挥幸环N情況出現(xiàn),所以msg的值經(jīng)過判斷之后也是只有一種,然后將其內(nèi)容顯示出來
Console.WriteLine(msg);
}
小知識總結(jié):
可以通過判斷,顯示內(nèi)容
case 0:
msg=string.Format("玩家{0}踩到了玩家{1},玩家{2}退6格", PlayerNames[playerPos], PlayerNames[1- playerPos], PlayerNames[1 - playerPos]);
case 1:
msg = string.Format("{0}走到了幸運(yùn)輪盤,請選擇1--交換位置,2---轟炸對方", PlayerNames[playerPos]);
Console.WriteLine(msg);
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持我們。
上一篇:C#基于Linq和反射實(shí)現(xiàn)數(shù)據(jù)持久化框架Xml4DB詳解
欄 目:C#教程
下一篇:c#實(shí)現(xiàn)圖片的平移和旋轉(zhuǎn)示例代碼
本文標(biāo)題:C#實(shí)現(xiàn)飛行棋小游戲
本文地址:http://www.jygsgssxh.com/a1/C_jiaocheng/4682.html
您可能感興趣的文章
- 01-10C#實(shí)現(xiàn)txt定位指定行完整實(shí)例
- 01-10WinForm實(shí)現(xiàn)仿視頻播放器左下角滾動新聞效果的方法
- 01-10C#實(shí)現(xiàn)清空回收站的方法
- 01-10C#實(shí)現(xiàn)讀取注冊表監(jiān)控當(dāng)前操作系統(tǒng)已安裝軟件變化的方法
- 01-10C#實(shí)現(xiàn)多線程下載文件的方法
- 01-10C#實(shí)現(xiàn)Winform中打開網(wǎng)頁頁面的方法
- 01-10C#實(shí)現(xiàn)遠(yuǎn)程關(guān)閉計(jì)算機(jī)或重啟計(jì)算機(jī)的方法
- 01-10C#自定義簽名章實(shí)現(xiàn)方法
- 01-10C#文件斷點(diǎn)續(xù)傳實(shí)現(xiàn)方法
- 01-10winform實(shí)現(xiàn)創(chuàng)建最前端窗體的方法


閱讀排行
本欄相關(guān)
- 01-10C#通過反射獲取當(dāng)前工程中所有窗體并
- 01-10關(guān)于ASP網(wǎng)頁無法打開的解決方案
- 01-10WinForm限制窗體不能移到屏幕外的方法
- 01-10WinForm繪制圓角的方法
- 01-10C#實(shí)現(xiàn)txt定位指定行完整實(shí)例
- 01-10WinForm實(shí)現(xiàn)仿視頻播放器左下角滾動新
- 01-10C#停止線程的方法
- 01-10C#實(shí)現(xiàn)清空回收站的方法
- 01-10C#通過重寫Panel改變邊框顏色與寬度的
- 01-10C#實(shí)現(xiàn)讀取注冊表監(jiān)控當(dāng)前操作系統(tǒng)已
隨機(jī)閱讀
- 01-11ajax實(shí)現(xiàn)頁面的局部加載
- 04-02jquery與jsp,用jquery
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
- 08-05DEDE織夢data目錄下的sessions文件夾有什
- 01-10C#中split用法實(shí)例總結(jié)
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改
- 08-05織夢dedecms什么時(shí)候用欄目交叉功能?
- 01-10使用C語言求解撲克牌的順子及n個(gè)骰子
- 01-10delphi制作wav文件的方法


