C#控制臺實現簡單飛行棋游戲_第1頁
C#控制臺實現簡單飛行棋游戲_第2頁
C#控制臺實現簡單飛行棋游戲_第3頁
C#控制臺實現簡單飛行棋游戲_第4頁
C#控制臺實現簡單飛行棋游戲_第5頁
已閱讀5頁,還剩7頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第C#控制臺實現簡單飛行棋游戲本文實例為大家分享了C#控制臺實現簡單飛行棋游戲的具體代碼,供大家參考,具體內容如下

需求分析

1.制作游戲頭部:游戲頭部介紹

2.繪制地圖

使用一維數組裝整個地圖的路線

如果這個位置是0,繪制普通格子□

如果這個位置是1,繪制幸運輪盤◎

如果這個位置是2,繪制地雷★

如果這個位置是3,繪制暫停▲

如果這個位置是4,繪制時空隧道卍

規劃幸運輪盤位置

int[]luckyturn={6,23,40,55,69,83};

規劃地雷的位置

int[]landMine={5,13,17,33,38,50,64,80,94};

規劃暫停位置

int[]pause={9,27,60,93};

規劃時空隧道的位置

int[]timeTunnel={20,25,45,63,72,88,90};

3.設置特殊關卡

代碼如下:

usingSystem;

usingSystem.Collections.Generic;

usingSystem.Linq;

usingSystem.Text;

usingSystem.Threading.Tasks;

namespace_01飛行棋

classProgram

///summary

///整個地圖數組

////summary

staticint[]Maps=newint[100];

///summary

///存儲玩家的數組

////summary

staticint[]PlayerPos=newint[2];

///summary

///玩家名稱的數組

////summary

staticstring[]PlayerName=newstring[2];

staticbool[]PlayerFlage=newbool[2];

staticvoidMain(string[]args)

//繪制游戲標題

ShowTitle();

//輸入玩家名稱

Console.WriteLine("請輸入玩家A的姓名:");

PlayerName[0]=Console.ReadLine();

while(PlayerName[0]=="")

Console.WriteLine("玩家A的姓名不能為空,請重新輸入!");

PlayerName[0]=Console.ReadLine();

Console.WriteLine("請輸入玩家B的姓名:");

PlayerName[1]=Console.ReadLine();

while(PlayerName[1]==""||PlayerName[1]==PlayerName[0])

if(PlayerName[1]=="")

Console.WriteLine("玩家B的姓名不能為空,請重新輸入!");

PlayerName[1]=Console.ReadLine();

if(PlayerName[1]==PlayerName[0])

Console.WriteLine("玩家B的姓名和A重復,請重新輸入!");

PlayerName[1]=Console.ReadLine();

//輸入完姓名,清空屏幕

Console.Clear();

ShowTitle();

//初始化地圖關卡

InitialMap();

//繪制地圖

DrawMap();

Console.ReadLine();

while(PlayerPos[0]99PlayerPos[1]99)

if(PlayerFlage[0]==false)

PlayGame(0);

else

PlayerFlage[0]=false;

if(PlayerFlage[1]==false)

PlayGame(1);

else

PlayerFlage[1]=false;

if(PlayerPos[0]==99)

Console.WriteLine("恭喜玩家[{0}]獲勝",PlayerName[0]);

if(PlayerPos[1]==99)

Console.WriteLine("恭喜玩家[{0}]獲勝",PlayerName[1]);

///summary

///設置游戲標題

////summary

staticvoidShowTitle()

//設置顏色

Console.ForegroundColor=ConsoleColor.Cyan;

Console.WriteLine("************************************");

Console.ForegroundColor=ConsoleColor.Green;

Console.WriteLine("************************************");

Console.ForegroundColor=ConsoleColor.Blue;

Console.WriteLine("************************************");

Console.ForegroundColor=ConsoleColor.Yellow;

Console.WriteLine("***************飛行棋***************");

Console.ForegroundColor=ConsoleColor.Blue;

Console.WriteLine("************************************");

Console.ForegroundColor=ConsoleColor.Green;

Console.WriteLine("************************************");

Console.ForegroundColor=ConsoleColor.Cyan;

Console.WriteLine("************************************");

///summary

///初始化地圖關卡

////summary

staticvoidInitialMap()

//確定幸運輪盤的位置◎==1

int[]luckyturn={6,23,40,55,69,83};

for(inti=0;iluckyturn.Length;i++)

Maps[luckyturn[i]]=1;

//確定地雷的位置★==2

int[]landMine={5,13,17,33,38,50,64,80,94};

for(inti=0;ilandMine.Length;i++)

Maps[landMine[i]]=2;

//確定暫停的位置▲==3

int[]pause={9,27,60,93};

for(inti=0;ipause.Length;i++)

Maps[pause[i]]=3;

//確定時空隧道的位置卍==4

int[]timeTunnel={20,25,45,63,72,88,90};

for(inti=0;itimeTunnel.Length;i++)

Maps[timeTunnel[i]]=4;

///summary

///繪制地圖

////summary

staticvoidDrawMap()

Console.ForegroundColor=ConsoleColor.Blue;

Console.WriteLine("玩家[{0}]使用A表示",PlayerName[0]);

Console.WriteLine("玩家[{0}]使用B表示",PlayerName[1]);

Console.WriteLine("游戲規則:");

Console.WriteLine("1.兩名玩家輪流擲骰子,規定A玩家先擲.");

Console.WriteLine("2.踩到□格子安全,沒有獎懲!");

Console.WriteLine("3.踩到◎幸運輪盤,可以進行兩種選擇:a.置換與對方玩家的位置;b.進行轟炸對方,使對方倒退6步");

Console.WriteLine("4.踩到★地雷,倒退6步!");

Console.WriteLine("5.踩到▲暫停,下個回合將暫停操作!");

Console.WriteLine("6.踩到卍時空隧道,直接前進10步!");

Console.WriteLine("7.如果踩到對方,則對方直接退6步!");

///第一橫行

for(inti=0;ii++)

//判斷兩個玩家的位置一樣,確定兩個玩家還都在地圖中

Console.Write(DrawString(i));

Console.WriteLine();

///第一豎列

for(inti=30;ii++)

for(intj=0;jj++)

Console.Write("");

Console.WriteLine(DrawString(i));

///第二橫行

for(inti=64;ii--)

Console.Write(DrawString(i));

Console.WriteLine();

///第二豎列

for(inti=65;ii++)

Console.WriteLine(DrawString(i));

///第三橫行

for(inti=70;ii++)

Console.Write(DrawString(i));

Console.WriteLine();

///summary

///判斷繪制地圖的方法

////summary

///paramname="pos"/param

privatestaticstringDrawString(intpos)

stringstr="";

if(PlayerPos[0]==PlayerPos[1]PlayerPos[0]==pos)

Console.ForegroundColor=ConsoleColor.DarkRed;

str="";

elseif(PlayerPos[0]==pos)

Console.ForegroundColor=ConsoleColor.Magenta;

str="A";

elseif(PlayerPos[1]==pos)

Console.ForegroundColor=ConsoleColor.DarkBlue;

str="B";

else

switch(Maps[pos])

case0:

Console.ForegroundColor=ConsoleColor.Cyan;

str="□";

break;

case1:

Console.ForegroundColor=ConsoleColor.Green;

str="◎";

break;

case2:

Console.ForegroundColor=ConsoleColor.Red;

str="★";

break;

case3:

Console.ForegroundColor=ConsoleColor.Blue;

str="▲";

break;

case4:

Console.ForegroundColor=ConsoleColor.Yellow;

str="卍";

break;

default:

break;

returnstr;

//游戲環節

staticvoidPlayGame(intplayerNum)

Randomr=newRandom();

Console.WriteLine("玩家[{0}]按下任意鍵擲骰子.",PlayerName[playerNum]);

Console.ReadKey(true);

intnumber=r.Next(1,7);

Console.WriteLine("玩家[{0}]擲出{1}點.",PlayerName[playerNum],number);

Console.WriteLine("玩家[{0}]按下任意鍵進行移動.",PlayerName[playerNum]);

Console.ReadKey(true);

PlayerPos[playerNum]+=number;

Console.WriteLine("玩家[{0}]移動完成!",PlayerName[playerNum]);

//玩家踩到對方

ChangedCheck();

if(PlayerPos[playerNum]==PlayerPos[1-playerNum])

Console.WriteLine("玩家[{0}]踩到玩家[{1}],玩家[{1}]退6步",PlayerName[playerNum],PlayerName[1-playerNum]);

PlayerPos[1-playerNum]-=6;

else

switch(Maps[PlayerPos[playerNum]])

//踩到普通地板,安全沒有獎懲

case0:

Console.WriteLine("玩家[{0}]踩到安全地帶,沒有獎懲!按下任意鍵繼續游戲",PlayerName[playerNum]);

Console.ReadKey(true);

break;

//踩到1幸運輪盤,選擇獎勵

case1:

Console.WriteLine("玩家[{0}]踩到幸運輪盤,請選擇:a--交換位置b--轟炸對方.",PlayerName[playerNum]);

stringinput=Console.ReadLine();

while(true)

if(input=="a")

Console.WriteLine("玩家[{0}]選擇與玩家[{1}]交換位置.",PlayerName[playerNum],PlayerName[1-playerNum]);

inttemp=PlayerPos[playerNum];

PlayerPos[playerNum]=PlayerPos[1-playerNum];

PlayerPos[1-playerNum]=temp;

Console.WriteLine("玩家[{0}]與玩家[{1}]交換位置完成!按下任意鍵繼續游戲",PlayerName[playerNum],PlayerName[1-playerNum]);

Console.ReadKey(true);

break;

elseif(input=="b")

Console.WriteLine("玩家[{0}]選擇轟炸玩家[{1}]",PlayerName[playerNum],PlayerName[1-playerNum]);

PlayerPos[1-playerNum]-=6;

Console.WriteLine("玩家[{0}]被轟炸倒退6步!按下任意鍵繼續游戲",PlayerName[1-playerNum]);

Console.ReadKey(true);

break;

else

input=Console.ReadLine();

break;

//踩到2地雷,直接倒退6格

case2:

Co

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論