C#飞行棋(新手简洁版)
我们要在主函数的顶部写一些全局静态字段 确保能在后续的静态方法中能够获取到这些值和修改
static int[] Maps = new int[100];static string[] PlayerName = new string[2];static int[] PlayerScore = new int[2];static bool[] Flags= new bool[2] {true,true };
static int[] Maps = new int[100]; 这段代码是设置一个整数类数组方便我们存储后续飞行棋的每个格子和格子所具有的特殊功能 以便于后续的取用 100 代表格子个位
static string[] PlayerName = new string[2];这是存储两个玩家的名字的字符串数组 方便后续调用两个玩家
static int[] PlayerScore = new int[2];这是用于存储两位玩家所处的格子位数方便后续获取位置并更改
static bool[] Flags= new bool[2] {true,true };存储两位玩家的回合是否进行 后续暂停回合需要用到
主函数
static void Main(string[] args){GameShow();Console.WriteLine("请输入玩家1的名字:");PlayerName[0] = Console.ReadLine();while (PlayerName[0] == ""){Console.WriteLine("玩家A的姓名不能为空,请重新输入");PlayerName[0] = Console.ReadLine();}Console.WriteLine("请输入玩家2的名字:");PlayerName[1] = Console.ReadLine();while (PlayerName[1] == ""){Console.WriteLine("玩家B的姓名不能为空,请重新输入");PlayerName[0] = Console.ReadLine();}if ( PlayerName[0] == PlayerName[1] ){Console.WriteLine("玩家名字不能相同!请重新输入玩家B的名字");PlayerName[1] = Console.ReadLine();}Console.WriteLine("按回车键开始");Console.ReadLine();Console.Clear();GameShow();Console.WriteLine("玩家A的名字为:{0},玩家B的名字为:{1}", PlayerName[0], PlayerName[1]);InitializeTheMap();FinallyMap();while (PlayerScore [0] < 99 && PlayerScore [1] < 99){for (int i = 0; i < 2; i++){if (Flags[i]){Play (i);}else{Flags[i] = true;}if (PlayerScore[i] == 99){Console.ForegroundColor = ConsoleColor.Blue;Console.WriteLine("玩家{0}赢了玩家{1}", PlayerName[i], PlayerName[1 - i]);break;}}}Console.WriteLine("按回车键结束游戏");Console.ReadLine();}
GameShow();打印欢迎语
//
Console.WriteLine("请输入玩家1的名字:");
PlayerName[0] = Console.ReadLine();
while (PlayerName[0] == "")
{
Console.WriteLine("玩家A的姓名不能为空,请重新输入");
PlayerName[0] = Console.ReadLine();
}
Console.WriteLine("请输入玩家2的名字:");
PlayerName[1] = Console.ReadLine();
while (PlayerName[1] == "")
{
Console.WriteLine("玩家B的姓名不能为空,请重新输入");
PlayerName[0] = Console.ReadLine();
}
if ( PlayerName[0] == PlayerName[1] )
{
Console.WriteLine("玩家名字不能相同!请重新输入玩家B的名字");
PlayerName[1] = Console.ReadLine();
}
Console.WriteLine("按回车键开始");
Console.ReadLine();
Console.Clear();
// 这段代码是用来输入玩家姓名
InitializeTheMap();设置上面的Maps整数数组的格子类型
FinallyMap();方法 打印格子
//
while (PlayerScore [0] < 99 && PlayerScore [1] < 99)
{
for (int i = 0; i < 2; i++) 两位玩家
{
if (Flags[i])// 上面的Flags已经默认了此回合执行true
{
Play (i);
}
else 上一回合不执行后,下次回合正常执行需要改为true
{
Flags[i] = true;
}
if (PlayerScore[i] == 99)
{
Console.ForegroundColor = ConsoleColor.Blue;
Console.WriteLine("玩家{0}赢了玩家{1}", PlayerName[i], PlayerName[1 - i]);
break;
}
}
}
// 这段代码用来判断回合是否暂停
欢迎语方法代码
static void GameShow()
{
//Console.ForegroundColor控制台字体颜色
//Console.BackgroundColor控制台背景颜色
Console.ForegroundColor = ConsoleColor.Yellow;
Console.WriteLine("************************************");
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("************************************");
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("************************************");
Console.ForegroundColor = ConsoleColor.White;
Console.WriteLine("*************飞行棋游戏1.4*************");
Console.ForegroundColor = ConsoleColor.Cyan;
Console.WriteLine("************************************");
Console.ForegroundColor = ConsoleColor.DarkMagenta;
Console.WriteLine("************************************");
Console.ForegroundColor = ConsoleColor.DarkBlue;
Console.WriteLine("************************************");
Console.ForegroundColor = ConsoleColor.White;
}
static Random random = new Random(); 这是用来重置每次的地图每次地图需要不同
初始化地图
static void InitializeTheMap(){int[] LuckDong = new int[5]; // 幸运◎int[] landMine = new int[5];// 地雷★int l = 0;int[] bomb = new int[5]; // 暂停▲int b = 0;int[] TimeTunnel = new int[5]; // 时光隧穿卍int t = 0;for (int i = 0; i < 20; i++){int num = random.Next(1, 101);Thread.Sleep(15);if (i < 5){LuckDong[i] = num;}else if (i < 10){landMine[l++] = num;}else if (i < 15){bomb[b++] = num;}else if (i < 20){TimeTunnel[t++] = num;}}for (int i = 0; i < LuckDong .Length; i++)Maps[LuckDong [i]] = 1;for (int i = 0; i < landMine.Length; i++)Maps[landMine[i]] = 2;for (int i = 0; i < bomb.Length; i++)Maps[bomb[i]] = 3;for (int i = 0; i < TimeTunnel.Length; i++)Maps[TimeTunnel[i]] = 4;}
//
int[] LuckDong = new int[5]; // 幸运◎
int[] landMine = new int[5];// 地雷★
int l = 0;
int[] bomb = new int[5]; // 暂停▲
int b = 0;
int[] TimeTunnel = new int[5]; // 时光隧穿卍
int t = 0;
for (int i = 0; i < 20; i++)
{
int num = random.Next(1, 101);
Thread.Sleep(15);
if (i < 5)
{
LuckDong[i] = num;
}
else if (i < 10)
{
landMine[l++] = num;
}
else if (i < 15)
{
bomb[b++] = num;
}
else if (i < 20)
{
TimeTunnel[t++] = num;
}
}
// 四种特殊类型的格子用随机数生成所在格子的位置
//
for (int i = 0; i < LuckDong .Length; i++)
Maps[LuckDong [i]] = 1;
for (int i = 0; i < landMine.Length; i++)
Maps[landMine[i]] = 2;
for (int i = 0; i < bomb.Length; i++)
Maps[bomb[i]] = 3;
for (int i = 0; i < TimeTunnel.Length; i++)
Maps[TimeTunnel[i]] = 4;
// 同种格子设置同种的值 位置随机且不同 分别for循环放入Maps数组中 方便后续打印
设置单个格子所代表的图案
static string DrawStringMap(int i){string str = "";if (PlayerScore[0] == PlayerScore[1] && PlayerScore[0] == i){str = "<>";}else if (PlayerScore[0] == i){str = "A";}else if (PlayerScore[1] == i){str = "B";}else{switch (Maps[i]){case 0:Console.ForegroundColor = ConsoleColor.Yellow;str = "□";break;case 1:Console.ForegroundColor = ConsoleColor.Green;str = "◎";break;case 2:Console.ForegroundColor = ConsoleColor.Red;str = "☆";break;case 3:Console.ForegroundColor = ConsoleColor.Blue;str = "▲";break;case 4:Console.ForegroundColor = ConsoleColor.DarkCyan;str = "卐";break;}}return str;}
static string DrawStringMap(int i)
{
string str = "";
if (PlayerScore[0] == PlayerScore[1] && PlayerScore[0] == i)
{
str = "<>"; 起始时两个格子在同一起点用<>表示
}
else if (PlayerScore[0] == i)
{
str = "A";后续用A表示玩家一
}
else if (PlayerScore[1] == i)
{
str = "B";玩家二
}
else
{
switch (Maps[i])
{
case 0:
Console.ForegroundColor = ConsoleColor.Yellow;
str = "□";没有作用的空白格子
break;
case 1:
Console.ForegroundColor = ConsoleColor.Green;
str = "◎";幸运格子
break;
case 2:
Console.ForegroundColor = ConsoleColor.Red;
str = "☆";炸弹
break;
case 3:
Console.ForegroundColor = ConsoleColor.Blue;
str = "▲";暂停
break;
case 4:
Console.ForegroundColor = ConsoleColor.DarkCyan;
str = "卐";时空隧道
break;
}
}
return str;
}
打印全部地图
static void FinallyMap()
{
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("图例:幸运轮盘:◎\t地雷:☆\t暂停:▲\t时空隧道:卐");
Console.WriteLine("玩家A的名字为:{0},玩家B的名字为:{1}", PlayerName[0], PlayerName[1]);
Console.WriteLine(PlayerName[0] + " " + PlayerScore[0] + " " + PlayerName[1] + " " + PlayerScore[1]);
Console.ForegroundColor = ConsoleColor.White;
// 第一横行
for (int i = 0; i < 30; i++)
{
Console.Write(DrawStringMap(i));
Console.ForegroundColor = ConsoleColor.White;
}
Console.WriteLine();
// 第一竖行
for (int i = 30; i < 35; i++)
{
for (int j = 0; j <= 28; j++)
{
Console.Write(" ");
}
Console.Write(DrawStringMap(i));
Console.ForegroundColor = ConsoleColor.White;
Console.WriteLine();
}
// 第二横行
for (int i = 64; i >= 35; i--)
{
Console.Write(DrawStringMap(i));
Console.ForegroundColor = ConsoleColor.White;
}
Console.WriteLine();
// 第二竖行
for (int i = 65; i <= 69; i++)
{
Console.WriteLine(DrawStringMap(i));
Console.ForegroundColor = ConsoleColor.White;
}
// 第三横行
for (int i = 70; i <= 99; i++)
{
Console.Write(DrawStringMap(i));
Console.ForegroundColor = ConsoleColor.White;
}
Console.WriteLine();
}
static void FinallyMap(){Console.ForegroundColor = ConsoleColor.Green;Console.WriteLine("图例:幸运轮盘:◎\t地雷:☆\t暂停:▲\t时空隧道:卐");Console.WriteLine("玩家A的名字为:{0},玩家B的名字为:{1}", PlayerName[0], PlayerName[1]);Console.WriteLine(PlayerName[0] + " " + PlayerScore[0] + " " + PlayerName[1] + " " + PlayerScore[1]);Console.ForegroundColor = ConsoleColor.White;// 第一横行for (int i = 0; i < 30; i++){Console.Write(DrawStringMap(i));Console.ForegroundColor = ConsoleColor.White;}Console.WriteLine();// 第一竖行for (int i = 30; i < 35; i++){for (int j = 0; j <= 28; j++){Console.Write(" "); }Console.Write(DrawStringMap(i));Console.ForegroundColor = ConsoleColor.White;Console.WriteLine();}// 第二横行for (int i = 64; i >= 35; i--){Console.Write(DrawStringMap(i));Console.ForegroundColor = ConsoleColor.White;}Console.WriteLine();// 第二竖行for (int i = 65; i <= 69; i++){Console.WriteLine(DrawStringMap(i));Console.ForegroundColor = ConsoleColor.White;}// 第三横行for (int i = 70; i <= 99; i++){Console.Write(DrawStringMap(i));Console.ForegroundColor = ConsoleColor.White;}Console.WriteLine();}
掷骰子的方法
static void Play(int num )
{
Random random = new Random();
int dice = random.Next(1, 7);
Console.WriteLine("按回车键开始掷骰子");
Console.ReadLine();
Console.WriteLine("{0}掷出了{1}点", PlayerName[num], dice);
PlayerScore[num] += dice;
ChangePlayerScore();
Console.WriteLine("按回车键继续");
Console.ReadLine();
上述代码用于获取随机掷骰子的点数
‘
’
if (PlayerScore[num] == PlayerScore[1-num ])
{
Console.WriteLine("玩家{0}踩到了玩家{1},玩家{2}后退6格", PlayerName[num], PlayerName[1 - num], PlayerName[1 - num]);
PlayerScore[1 - num] -= 6;
ChangePlayerScore();该方法是用来防止玩家位置出现在地图外
Console.WriteLine("按回车键继续");
Console.ReadLine();
}
两种情况
else
{
switch (Maps[PlayerScore[num]])
{
case 0:
{
Console.WriteLine("玩家{0}踩到了什么,无事发生", PlayerName[num]);
break;
}
case 1:
{
Console.WriteLine("玩家{0}踩到了幸运轮盘,请选择 1--交换位置 2--轰炸对方", PlayerName[num]);
string input = Console.ReadLine();
while (true)
{
if (input == "1")
{
Console.WriteLine("玩家{0}选择跟玩家{1}交换位置", PlayerName[num], PlayerName[1 - num]); ;
Console.ReadKey();
int temp = PlayerScore[num];
PlayerScore[num] = PlayerScore[1 - num];
PlayerScore[1 - num] = temp;
Console.WriteLine("交换完成!!!按任意键继续游戏!!!");
Console.ReadKey();
break;
}
else if (input == "2")
{
Console.WriteLine("玩家{0}选择轰炸玩家{1},玩家{2}后退6格", PlayerName[num], PlayerName[1 - num], PlayerName[1 - num]);
PlayerScore [1 - num] -= 6;
ChangePlayerScore();
Console.ReadKey();
break;
}
else
{
Console.WriteLine("只能输入1或者2 1--交换位置 2--轰炸对方");
input = Console.ReadLine();
}
}
break;
}
case 2:
Console.WriteLine("玩家{0}踩到了地雷,后退6格", PlayerName[num]);
Console.ReadKey();
PlayerScore [num] -= 6;
ChangePlayerScore();
break;
case 3:
Console.WriteLine("玩家{0}踩到了暂停,暂停一回合", PlayerName[num]);
Flags[num] = false;
Console.ReadKey();
break;
case 4:
Console.WriteLine("玩家{0}踩到了时空隧道,前进10格", PlayerName[num]);
PlayerScore [num] += 10;
ChangePlayerScore();
Console.ReadKey();
break;
}
}
Console .Clear();
FinallyMap();
}
static void Play(int num )
{Random random = new Random();int dice = random.Next(1, 7);Console.WriteLine("按回车键开始掷骰子");Console.ReadLine();Console.WriteLine("{0}掷出了{1}点", PlayerName[num], dice);PlayerScore[num] += dice;ChangePlayerScore();Console.WriteLine("按回车键继续");Console.ReadLine();if (PlayerScore[num] == PlayerScore[1-num ]){Console.WriteLine("玩家{0}踩到了玩家{1},玩家{2}后退6格", PlayerName[num], PlayerName[1 - num], PlayerName[1 - num]);PlayerScore[1 - num] -= 6;ChangePlayerScore();Console.WriteLine("按回车键继续");Console.ReadLine();}else{switch (Maps[PlayerScore[num]]){case 0:{Console.WriteLine("玩家{0}踩到了什么,无事发生", PlayerName[num]);break;}case 1:{Console.WriteLine("玩家{0}踩到了幸运轮盘,请选择 1--交换位置 2--轰炸对方", PlayerName[num]);string input = Console.ReadLine();while (true){if (input == "1"){Console.WriteLine("玩家{0}选择跟玩家{1}交换位置", PlayerName[num], PlayerName[1 - num]); ;Console.ReadKey();int temp = PlayerScore[num];PlayerScore[num] = PlayerScore[1 - num];PlayerScore[1 - num] = temp;Console.WriteLine("交换完成!!!按任意键继续游戏!!!");Console.ReadKey();break;}else if (input == "2"){Console.WriteLine("玩家{0}选择轰炸玩家{1},玩家{2}后退6格", PlayerName[num], PlayerName[1 - num], PlayerName[1 - num]);PlayerScore [1 - num] -= 6;ChangePlayerScore();Console.ReadKey();break;}else{Console.WriteLine("只能输入1或者2 1--交换位置 2--轰炸对方");input = Console.ReadLine();}}break;}case 2:Console.WriteLine("玩家{0}踩到了地雷,后退6格", PlayerName[num]);Console.ReadKey();PlayerScore [num] -= 6;ChangePlayerScore();break;case 3:Console.WriteLine("玩家{0}踩到了暂停,暂停一回合", PlayerName[num]);Flags[num] = false;Console.ReadKey();break;case 4:Console.WriteLine("玩家{0}踩到了时空隧道,前进10格", PlayerName[num]);PlayerScore [num] += 10;ChangePlayerScore();Console.ReadKey();break;}}Console .Clear();FinallyMap();}
FinallyMap(); 在玩的方法中由于玩家位置发生改变所以要重新打印一次地图
static void ChangePlayerScore()
{
for (int i = 0; i < 2; i++)
{
if (PlayerScore [i] < 0 )
{
PlayerScore[i]= 0;
}
if (PlayerScore[i] > 99 )
{
PlayerScore [i] = 99;
}
}
}
这方法是用来判断玩家位置是否出界如果出界默认在段端点
完整代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;namespace 飞行棋游戏
{internal class Program{static int[] Maps = new int[100];static string[] PlayerName = new string[2];static int[] PlayerScore = new int[2];static bool[] Flags= new bool[2] {true,true };static void Main(string[] args){GameShow();Console.WriteLine("请输入玩家1的名字:");PlayerName[0] = Console.ReadLine();while (PlayerName[0] == ""){Console.WriteLine("玩家A的姓名不能为空,请重新输入");PlayerName[0] = Console.ReadLine();}Console.WriteLine("请输入玩家2的名字:");PlayerName[1] = Console.ReadLine();while (PlayerName[1] == ""){Console.WriteLine("玩家B的姓名不能为空,请重新输入");PlayerName[0] = Console.ReadLine();}if ( PlayerName[0] == PlayerName[1] ){Console.WriteLine("玩家名字不能相同!请重新输入玩家B的名字");PlayerName[1] = Console.ReadLine();}Console.WriteLine("按回车键开始");Console.ReadLine();Console.Clear();GameShow();Console.WriteLine("玩家A的名字为:{0},玩家B的名字为:{1}", PlayerName[0], PlayerName[1]);InitializeTheMap();FinallyMap();while (PlayerScore [0] < 99 && PlayerScore [1] < 99){for (int i = 0; i < 2; i++){if (Flags[i]){Play (i);}else{Flags[i] = true;}if (PlayerScore[i] == 99){Console.ForegroundColor = ConsoleColor.Blue;Console.WriteLine("玩家{0}赢了玩家{1}", PlayerName[i], PlayerName[1 - i]);break;}}}Console.WriteLine("按回车键结束游戏");Console.ReadLine();}static void GameShow(){//Console.ForegroundColor控制台字体颜色//Console.BackgroundColor控制台背景颜色Console.ForegroundColor = ConsoleColor.Yellow;Console.WriteLine("************************************");Console.ForegroundColor = ConsoleColor.Red;Console.WriteLine("************************************");Console.ForegroundColor = ConsoleColor.Green;Console.WriteLine("************************************");Console.ForegroundColor = ConsoleColor.White;Console.WriteLine("*************飞行棋游戏1.4*************");Console.ForegroundColor = ConsoleColor.Cyan;Console.WriteLine("************************************");Console.ForegroundColor = ConsoleColor.DarkMagenta;Console.WriteLine("************************************");Console.ForegroundColor = ConsoleColor.DarkBlue;Console.WriteLine("************************************");Console.ForegroundColor = ConsoleColor.White;}static Random random = new Random();static void InitializeTheMap(){int[] LuckDong = new int[5]; // 幸运◎int[] landMine = new int[5];// 地雷★int l = 0;int[] bomb = new int[5]; // 暂停▲int b = 0;int[] TimeTunnel = new int[5]; // 时光隧穿卍int t = 0;for (int i = 0; i < 20; i++){int num = random.Next(1, 101);Thread.Sleep(15);if (i < 5){LuckDong[i] = num;}else if (i < 10){landMine[l++] = num;}else if (i < 15){bomb[b++] = num;}else if (i < 20){TimeTunnel[t++] = num;}}for (int i = 0; i < LuckDong .Length; i++)Maps[LuckDong [i]] = 1;for (int i = 0; i < landMine.Length; i++)Maps[landMine[i]] = 2;for (int i = 0; i < bomb.Length; i++)Maps[bomb[i]] = 3;for (int i = 0; i < TimeTunnel.Length; i++)Maps[TimeTunnel[i]] = 4;}static void FinallyMap(){Console.ForegroundColor = ConsoleColor.Green;Console.WriteLine("图例:幸运轮盘:◎\t地雷:☆\t暂停:▲\t时空隧道:卐");Console.WriteLine("玩家A的名字为:{0},玩家B的名字为:{1}", PlayerName[0], PlayerName[1]);Console.WriteLine(PlayerName[0] + " " + PlayerScore[0] + " " + PlayerName[1] + " " + PlayerScore[1]);Console.ForegroundColor = ConsoleColor.White;// 第一横行for (int i = 0; i < 30; i++){Console.Write(DrawStringMap(i));Console.ForegroundColor = ConsoleColor.White;}Console.WriteLine();// 第一竖行for (int i = 30; i < 35; i++){for (int j = 0; j <= 28; j++){Console.Write(" "); }Console.Write(DrawStringMap(i));Console.ForegroundColor = ConsoleColor.White;Console.WriteLine();}// 第二横行for (int i = 64; i >= 35; i--){Console.Write(DrawStringMap(i));Console.ForegroundColor = ConsoleColor.White;}Console.WriteLine();// 第二竖行for (int i = 65; i <= 69; i++){Console.WriteLine(DrawStringMap(i));Console.ForegroundColor = ConsoleColor.White;}// 第三横行for (int i = 70; i <= 99; i++){Console.Write(DrawStringMap(i));Console.ForegroundColor = ConsoleColor.White;}Console.WriteLine();}static string DrawStringMap(int i){string str = "";if (PlayerScore[0] == PlayerScore[1] && PlayerScore[0] == i){str = "<>";}else if (PlayerScore[0] == i){str = "A";}else if (PlayerScore[1] == i){str = "B";}else{switch (Maps[i]){case 0:Console.ForegroundColor = ConsoleColor.Yellow;str = "□";break;case 1:Console.ForegroundColor = ConsoleColor.Green;str = "◎";break;case 2:Console.ForegroundColor = ConsoleColor.Red;str = "☆";break;case 3:Console.ForegroundColor = ConsoleColor.Blue;str = "▲";break;case 4:Console.ForegroundColor = ConsoleColor.DarkCyan;str = "卐";break;}}return str;}static void Play(int num ){Random random = new Random();int dice = random.Next(1, 7);Console.WriteLine("按回车键开始掷骰子");Console.ReadLine();Console.WriteLine("{0}掷出了{1}点", PlayerName[num], dice);PlayerScore[num] += dice;ChangePlayerScore();Console.WriteLine("按回车键继续");Console.ReadLine();if (PlayerScore[num] == PlayerScore[1-num ]){Console.WriteLine("玩家{0}踩到了玩家{1},玩家{2}后退6格", PlayerName[num], PlayerName[1 - num], PlayerName[1 - num]);PlayerScore[1 - num] -= 6;ChangePlayerScore();Console.WriteLine("按回车键继续");Console.ReadLine();}else{switch (Maps[PlayerScore[num]]){case 0:{Console.WriteLine("玩家{0}踩到了什么,无事发生", PlayerName[num]);break;}case 1:{Console.WriteLine("玩家{0}踩到了幸运轮盘,请选择 1--交换位置 2--轰炸对方", PlayerName[num]);string input = Console.ReadLine();while (true){if (input == "1"){Console.WriteLine("玩家{0}选择跟玩家{1}交换位置", PlayerName[num], PlayerName[1 - num]); ;Console.ReadKey();int temp = PlayerScore[num];PlayerScore[num] = PlayerScore[1 - num];PlayerScore[1 - num] = temp;Console.WriteLine("交换完成!!!按任意键继续游戏!!!");Console.ReadKey();break;}else if (input == "2"){Console.WriteLine("玩家{0}选择轰炸玩家{1},玩家{2}后退6格", PlayerName[num], PlayerName[1 - num], PlayerName[1 - num]);PlayerScore [1 - num] -= 6;ChangePlayerScore();Console.ReadKey();break;}else{Console.WriteLine("只能输入1或者2 1--交换位置 2--轰炸对方");input = Console.ReadLine();}}break;}case 2:Console.WriteLine("玩家{0}踩到了地雷,后退6格", PlayerName[num]);Console.ReadKey();PlayerScore [num] -= 6;ChangePlayerScore();break;case 3:Console.WriteLine("玩家{0}踩到了暂停,暂停一回合", PlayerName[num]);Flags[num] = false;Console.ReadKey();break;case 4:Console.WriteLine("玩家{0}踩到了时空隧道,前进10格", PlayerName[num]);PlayerScore [num] += 10;ChangePlayerScore();Console.ReadKey();break;}}Console .Clear();FinallyMap();}static void ChangePlayerScore(){for (int i = 0; i < 2; i++){if (PlayerScore [i] < 0 ){PlayerScore[i]= 0;}if (PlayerScore[i] > 99 ){PlayerScore [i] = 99;}}}}
}
相关文章:
C#飞行棋(新手简洁版)
我们要在主函数的顶部写一些全局静态字段 确保能在后续的静态方法中能够获取到这些值和修改 static int[] Maps new int[100];static string[] PlayerName new string[2];static int[] PlayerScore new int[2];static bool[] Flags new bool[2] {true,true }; static int[]…...
【OpenCV】图像转换
理论 傅立叶变换用于分析各种滤波器的频率特性。对于图像,使用 2D离散傅里叶变换(DFT) 查找频域。快速算法称为 快速傅立叶变换(FFT) 用于计算DFT。 Numpy中的傅立叶变换 首先,我们将看到如何使用Numpy查…...
力扣 重排链表-143
重排链表-143 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val(x), next(nullptr) {}* ListNode(int x, ListNode *next) : val(x), next(next)…...
【Kubernetes理论篇】容器集群管理系统Kubernetes(K8S)
Kubernetes集群部署基本管理实战 这么好的机会,还在等什么! 01、Kubernetes 概述 K8S是什么 K8S 的全称为 Kubernetes (K12345678S),PS:“嘛,写全称也太累了吧,写”。不如整个缩写 K8s 作为缩写的结果…...
Kubernetes 常用操作大全:全面掌握 K8s 基础与进阶命令
Kubernetes(简称 K8s)作为一种开源的容器编排工具,已经成为现代分布式系统中的标准。它的强大之处在于能够自动化应用程序的部署、扩展和管理。在使用 Kubernetes 的过程中,熟悉常用操作对于高效地管理集群资源至关重要。本文将详…...
爬虫基础之Web网页基础
网页的组成 网页可以分为三大部分–HTML、CSS 和 JavaScript。如果把网页比作一个人,那么 HTML 相当于骨架、JavaScript 相当于肌肉、CSS 相当于皮肤,这三者结合起来才能形成一个完善的网页。下面我们分别介绍一下这三部分的功能。 HTML HTML(Hypertext…...
k8s, deployment
控制循环(control loop) for {实际状态 : 获取集群中对象X的实际状态(Actual State)期望状态 : 获取集群中对象X的期望状态(Desired State)if 实际状态 期望状态{什么都不做} else {执行编排动作…...
使用ensp搭建OSPF+BGP和静态路由,底层PC使用dhcp,实现PC互通
1.4种方式,实现PC2可以互通底层的所有设备 OSPF:OSPF是一种用于互联网协议网络的链路状态路由协议 BGP:是一种用于互联网上进行路由和可达性信息传递的外部网关协议(EGP) 静态路由: 静态路由是一种路由方…...
TÜLU 3: Pushing Frontiers in Open Language Model Post-Training
基本信息 📝 原文链接: https://arxiv.org/abs/2411.15124👥 作者: Nathan Lambert, Jacob Morrison, Valentina Pyatkin, Shengyi Huang, Hamish Ivison, Faeze Brahman, Lester James V. Miranda, Alisa Liu, Nouha Dziri, Shane Lyu, Yuling Gu, Sau…...
深入解读 MySQL EXPLAIN 与索引优化实践
MySQL 是当今最流行的关系型数据库之一,为了提升查询性能,合理使用 EXPLAIN 工具和优化索引显得尤为重要。本文将结合实际示例,探讨如何利用 EXPLAIN 分析查询执行计划,并分享索引优化的最佳实践。 一、EXPLAIN 工具简介 EXPLAIN …...
Flume——进阶(agent特性+三种结构:串联,多路复用,聚合)
目录 agent特性ChannelSelector描述: SinkProcessor描述: 串联架构结构图解定义与描述配置示例Flume1(监测端node1)Flume3(接收端node3)启动方式 复制和多路复用结构图解定义描述配置示例node1node2node3启…...
ragflow连ollama时出现的Bug
ragflow和ollama连接后,已经添加了两个模型但是ragflow仍然一直warn:Please add both embedding model and LLM in Settings > Model providers firstly.这里可能是我一开始拉取的镜像容器太小,容不下当前添加的模型,导…...
基于centos7.7编译Redis6.0
背景: OS:CentOs 7.7 Redis: 6.0.6 编译构建报错如下: In file included from server.c:30:0: server.h:1044:5: error: expected specifier-qualifier-list before ‘_Atomic’_Atomic unsigned int lruclock; /* Clock for LRU eviction …...
uni-app项目无法在Android Studio模拟器上运行
目录 1 问题描述2 尝试解决3 引发原因4 解决方法4.1 换用 MuMu 模拟器 5 结语 1 问题描述 在使用 uni-app 开发 Pad 端 App 时,初始化项目后打算先运行一下确保初始化正常。打开 Android Studio 模拟器后,然后在 HbuilderX 中选择使用 App 标准基座 运…...
第一部分:Linux系统(基础及命令)
Linux操作系统的实操性非常强,纯操作,不适用于日常的办公使用 1.初始Linux 1.1 操作系统概述 1.1.1 了解OS的作用 OS:是计算机软件的一种,主要负责:作为用户和计算机硬件之间的桥梁,调度和管理计算机硬…...
No module named ‘_ssl‘ No module named ‘_ctypes‘
如果你使用的是基于 yum 的 Linux 发行版(例如 CentOS、RHEL、Fedora),安装 libc6-dev 的方式稍有不同。在这些系统中,通常对应的包是 glibc-devel。 No module named ‘_ctypes’ 使用 yum 安装 glibc-devel 更新系统的软件包列…...
【QT】编写第一个 QT 程序 对象树 Qt 编程事项 内存泄露问题
目录 1. 编写第一个 QT 程序 1.1 使用 标签 实现 🐇 图形化界面实现 🐇 纯代码形式实现 1.2 使用 按钮 实现 🐋 图形化界面实现 🐋 纯代码形式实现 1.3 使用 编辑框 实现 🥝 图形化界面实现 ᾕ…...
VTK编程指南<六>:VTK可视化管线与渲染详解
1、VTK渲染引擎 回顾前几章节的RenderCylinder示例 可以找到以下的类: vtkProp; ytkAbstractMapper; vtkProperty; vtkCamera; vtkLight; vtkRenderer; vtkRenderWindow; vtkRenderWindowInteractor vtkTransform; vtkLookupTable;可以发现这些类都是与数据显示或渲染相关的。…...
基于STM32的智能计步器
引言 随着健康意识的提高,计步器逐渐成为人们日常生活中重要的健康管理工具。本文将指导你如何使用STM32微控制器制作一个智能计步器。该计步器通过加速度传感器检测步伐,并使用OLED显示屏显示步数。通过这个项目,你将学习到STM32开发的基本流…...
VB.NET 从入门到精通:开启编程进阶之路
摘要: 本文全面深入地阐述了 VB.NET 的学习路径,从基础的环境搭建与语法入门开始,逐步深入到面向对象编程、图形用户界面设计、数据访问、异常处理、多线程编程以及与其他技术的集成等核心领域,通过详细的代码示例与理论讲解&…...
Linux 文件类型,目录与路径,文件与目录管理
文件类型 后面的字符表示文件类型标志 普通文件:-(纯文本文件,二进制文件,数据格式文件) 如文本文件、图片、程序文件等。 目录文件:d(directory) 用来存放其他文件或子目录。 设备…...
springboot 百货中心供应链管理系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,百货中心供应链管理系统被用户普遍使用,为方…...
树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频
使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...
cf2117E
原题链接:https://codeforces.com/contest/2117/problem/E 题目背景: 给定两个数组a,b,可以执行多次以下操作:选择 i (1 < i < n - 1),并设置 或,也可以在执行上述操作前执行一次删除任意 和 。求…...
页面渲染流程与性能优化
页面渲染流程与性能优化详解(完整版) 一、现代浏览器渲染流程(详细说明) 1. 构建DOM树 浏览器接收到HTML文档后,会逐步解析并构建DOM(Document Object Model)树。具体过程如下: (…...
C++ 基础特性深度解析
目录 引言 一、命名空间(namespace) C 中的命名空间 与 C 语言的对比 二、缺省参数 C 中的缺省参数 与 C 语言的对比 三、引用(reference) C 中的引用 与 C 语言的对比 四、inline(内联函数…...
ETLCloud可能遇到的问题有哪些?常见坑位解析
数据集成平台ETLCloud,主要用于支持数据的抽取(Extract)、转换(Transform)和加载(Load)过程。提供了一个简洁直观的界面,以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...
VTK如何让部分单位不可见
最近遇到一个需求,需要让一个vtkDataSet中的部分单元不可见,查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行,是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示,主要是最后一个参数,透明度…...
AI书签管理工具开发全记录(十九):嵌入资源处理
1.前言 📝 在上一篇文章中,我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源,方便后续将资源打包到一个可执行文件中。 2.embed介绍 🎯 Go 1.16 引入了革命性的 embed 包,彻底改变了静态资源管理的…...
