騎士飛行棋

2021-08-27 07:18:26 字數 4808 閱讀 4727

using system;

using system.collections.generic;

using system.linq;

using system.text;

namespace _騎士飛行棋

;//宣告乙個陣列用來存玩家a和玩家b

public static string playernames = new string[2];

public static bool flag = new bool ;

static void main(string args)

console.writeline("請輸入玩家b的姓名");

playernames[1] = console.readline();

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

]不能相同相同",playernames[0]);

}else

playernames[1] = console.readline();

}#endregion

console.clear();

showui();//遊戲頭

console.writeline("對戰開始......");

console.writeline("的士兵用a表示......",playernames[0]);

console.writeline("的士兵用b表示......", playernames[1]);

drawmap();//畫地圖

#region 玩家a擲骰子

if (flag[0]==false)

else

#endregion

if (playerpos[0]==99)

#region 玩家b擲骰子

if (flag[1]==false)

else

#endregion

if (playerpos[1]==99)

console.writeline("行動完畢...");

}win();

console.readkey();

//畫圖

//如何行走-----邏輯判斷

}///

/// 顯示遊戲頭

///

public static void showui()

///

/// 初始化地圖

///

public static void initmap()

;//幸運◎

int landmine = ;//地雷☆

int pause = ;//暫停▲

int timetunnel = ;//時空隧道卐

//把陣列中下標為6, 23, 40, 55, 69, 83的地方的值改為1

for (int i = 0; i < luckyturn.length; i++)

for (int i = 0; i < landmine.length; i++)

for (int i = 0; i < pause.length; i++)

for (int i = 0; i < timetunnel.length; i++)

}///

/// 畫地圖的

///

public static void drawmap()

console.writeline(drawstringmap(i));

}#endregion

#region 畫第二橫行

for (int i = 64; i >= 35; i--)

#endregion

console.writeline();

#region 畫第二豎行

for (int i = 65; i <= 69; i++)

#endregion

#region 畫第三橫行

drawmaplefttoright(70, 99);

#endregion

console.writeline();

}///

/// 畫地圖的邏輯

///

/// 傳過來的座標

///

public static string drawstringmap(int pos)

else if (playerpos[0] == pos)//如果玩家a在地圖上就畫a

else if (playerpos[1] == pos)//如果玩家b在地圖上就畫b

else

//end switch

}//end else

return temp;

#endregion

}///

/// 從某個座標到另乙個座標畫地圖

///

///

///

public static void drawmaplefttoright(int left, int right)

}///

/// 根據傳過來的數字,返回乙個數字

///

///

///

///

///

public static int readint(string msg, int min, int max)

else

到之間的數字!", min, max);

continue;}}

catch

}//程式絕對走不到這裡

}public static void rowtouzi(int playerpos)

按任意鍵開始擲骰子", playernames[playerpos]);

consolekeyinfo coninfo = console.readkey(true);

if (coninfo.key == consolekey.q)}}

console.writeline("擲出了", playernames[playerpos], num);

console.writeline("按任意鍵開始行動.....", playernames[playerpos]);

console.readkey(true);

playerpos[playerpos] += num;

checkpos();

if (playerpos[playerpos] == playerpos[1 - playerpos])

踩到了玩家,玩家退6格", playernames[playerpos], playernames[1 - playerpos], playernames[1 - playerpos]);

playerpos[1 - playerpos] -= 6;

checkpos();

}else

走到了幸運,請選擇 1----交換位置,2----轟炸對方", playernames[playerpos]);

int number = readint(msg, 1, 2);

if (number == 1)

選擇了與玩家交換位置", playernames[playerpos], playernames[1 - playerpos]);

}else

選擇轟炸玩家", playernames[playerpos], playernames[1 - playerpos]);

}break;

case 2:

//踩到地雷了

msg="恭喜你,能踩到地雷,百年不遇,退6格";

playerpos[playerpos] -= 6;

checkpos();

break;

case 3:

msg="踩到暫停了";

flag[playerpos] = true;

break;

case 4:

msg="恭喜你,這個猥瑣傢伙竟然穿越了10步";

playerpos[playerpos] += 10;

checkpos();

break;}}

console.clear();

drawmap();

console.writeline(msg);

}public static void checkpos()

if (playerpos[1]>99)

if (playerpos[0]<0)

if (playerpos[1]<0)

}public static void win()

{console.foregroundcolor = consolecolor.red;

console.writeline(" ◆ ");

console.writeline(" ■ ◆ ■ ■");

console.writeline(" ■■■■ ■ ■ ◆■ ■ ■ ■");

console.writeline(" ■ ■ ■ ■ ◆ ■ ■ ■ ■");

console.writeline(" ■ ■ ■■■■■■ ■■■■■■■ ■ ■ ■");

console.writeline(" ■■■■ ■ ■ ●■● ■ ■ ■");

console.writeline(" ■ ■ ■ ● ■ ● ■ ■ ■");

console.writeline(" ■ ■ ■■■■■■ ● ■ ● ■ ■ ■");

console.writeline(" ■■■■ ■ ● ■ ■ ■ ■ ■");

console.writeline(" ■ ■ ■ ■ ■ ■ ■ ■");

console.writeline(" ■ ■ ■ ■ ■ ■ ");

騎士飛行棋

include include include include int map 110 bu 1000 char str 4 20 struct node a 3 void f strcpy a 2 name,str m printf 玩家2選擇了 s n n a 2 name printf 人物選...

騎士飛行棋專案總結

今年元旦,做了傳智播客的騎士飛行棋專案,是個c 控制台程式。我是初學者,還不了解uml,沒有什麼建模,邏輯圖之類的思路。不過做完了之後,還真是覺得對於我這個初學者的鍛鍊很大。1.把需求用方法來分解,重要的一條就是如果出現大量重複的 就應該可以寫成乙個方法 2.在設計的時候對於變數的定義,比如如果能定...

面向過程之騎士飛行棋

1.前言總序 實現原理 這個小專案用到了面向過程中的所有我們所學的知識的綜合,如 方法,引數,結構,陣列還有三種迴圈結構等等技術點,做這個專案也是為了鞏固這些知識點。下面簡單講述一下飛行棋的規則 1 使用者輸入玩家的姓名不能為空,並且使用者兩次輸入的玩家姓名不能相同。2 繪製地圖,地圖上面有很多管卡...