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 繪製地圖,地圖上面有很多管卡...