基于C#模擬實現(xiàn)回合制游戲
前言
文章開始把我喜歡的這句話送個大家:這個世界上還有什么比自己寫的代碼運行在一億人的電腦上更酷的事情嗎,如果有那就是讓這個數(shù)字再擴大十倍!?。?/p>
底部有下載鏈接:附帶代碼、答辯PPT、數(shù)據(jù)、音樂等素材。
規(guī)則簡介
1>創(chuàng)建一個Hero類特征name(英雄名字),hp(血量),mp(魔法值), physicsAttack(物理攻擊力),magicAttack(魔法攻擊力)
2>創(chuàng)建一個BattleControl戰(zhàn)斗管理類,該類有兩個字段分別為List<Hero> ours(存儲己方陣營中五個英雄)和List<Hero> enemy(存儲對方五個英雄)類型,分別創(chuàng)建五個英雄和五個敵人分別添加到對應(yīng)List泛型列表中。添加int類型字段round 記錄戰(zhàn)斗開始到結(jié)束總的回合數(shù)。注:英雄名字自定義,血量200 魔法值100 攻擊力自定義。
3>模擬回合制游戲邏輯,初始化完畢后首先己方攻擊,每次攻擊隨機從對方陣營篩選一個敵人進行攻擊,
每次造成的傷害為物理攻擊和魔法攻擊的疊加值,如果沒有魔法值那么傷害值只是物理攻擊力即可。
每次魔法攻擊之后需要減去相應(yīng)的魔法值,比如魔法攻擊力為20,那么魔法值也需要消耗20個點。
攻擊的同時輸出信息格式:小一攻擊了小二,小二剩余血量為80。
己方所有英雄攻擊完畢之后,敵人攻擊,攻擊流程同上。
4>當(dāng)某一個敵人或者己方英雄死亡后將死亡角色從對應(yīng)List泛型列表中移除,某一個陣營全部死亡,游戲結(jié)束,開始結(jié)算,顯示獲勝方。顯示總的回合數(shù)。
可思考完善上述流程,比如添加加血buff,技能釋放,閃避等等功能,豐富戰(zhàn)斗內(nèi)容
PS:如有報錯,請根據(jù)本機音樂文件設(shè)置絕對路徑!!!
功能介紹
初始化界面:復(fù)制測試用例即可
開始界面

查看敵我方英雄信息界面

更改敵我方英雄狀況界面

強化敵我方英雄屬性界面

激活敵我方英雄大招界面

打斗界面

實現(xiàn)代碼
using System;
using System.Collections.Generic;
using System.Threading;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Media;//在命名空間中添加
namespace BigWork
{
class Program
{
static void Main(string[] args)
{
System.Media.SoundPlayer sp = new SoundPlayer();
sp.SoundLocation = @"E:\qianyan\大作業(yè)\Test\music\英雄聯(lián)盟 - Welcome to Planet Urf.wav";
sp.PlayLooping();
List<Hero> ours = new List<Hero>(); //存放我方英雄集合
List<Hero> enemy = new List<Hero>();//存放敵方英雄集合
input(ours, enemy); //輸入我方、敵方英雄信息(引用傳遞)
BattleControl.Instance.Ours = ours;
BattleControl.Instance.Enemy = enemy;
while (true)
{
function_print();
string a = Console.ReadLine();
if (string.IsNullOrEmpty(a))
{
Console.WriteLine("輸出指令有誤,按任意鍵重新輸入");
Console.ReadKey();
Console.Clear();
continue;
}
int n = int.Parse(a);
switch (n)
{
case 1:
showAllInfo(ours);
Console.WriteLine("點擊任意按鍵繼續(xù)…………");
Console.ReadKey();
Console.Clear();
break;
case 2:
showAllInfo(enemy);
Console.WriteLine("點擊任意按鍵繼續(xù)…………");
Console.ReadKey();
Console.Clear();
break;
case 3:
if (ours[0].Modify == true)
modifyInfo(ours);
else
Console.WriteLine("戰(zhàn)斗已經(jīng)進行,無法再進行修改");
Console.ReadKey();
Console.Clear();
break;
case 4:
if (ours[0].Modify == true)
modifyInfo(enemy);
else
Console.WriteLine("戰(zhàn)斗已經(jīng)進行,無法再進行修改");
Console.ReadKey();
Console.Clear();
break;
case 5:
strengthenHero(ours);
break;
case 6:
strengthenHero(enemy);
break;
case 7:
activateHeroUltimateSkills(ours);
break;
case 8:
activateHeroUltimateSkills(enemy);
break;
case 9:
System.Media.SoundPlayer sp1 = new SoundPlayer();
sp1.SoundLocation = @"E:\qianyan\大作業(yè)\Test\music\網(wǎng)絡(luò)歌手 - 德瑪?shù)卢數(shù)卢斘鱽?00_00_00-00_00_04.wav";
sp1.Play();
Thread.Sleep(5000);
sp.SoundLocation = @"E:\qianyan\大作業(yè)\Test\music\英雄聯(lián)盟 - Welcome to Planet Urf.wav";
sp.PlayLooping();
BattleControl.Instance.fight(3);//3回合后激活一次
break;
}
}
Console.ReadKey();
}
#region 輸入我方、敵方英雄信息功能
public static void input(List<Hero> ours, List<Hero> enemy)
{
string a, d;
int b, c;
//輸入我方英雄基本信息
for (int i = 1; i <= 5; i++)
{
Console.WriteLine("請輸入我方第{0}位英雄的名稱:", i);
a = Console.ReadLine();
Console.WriteLine("請輸入我方第{0}位英雄的物理攻擊力:", i);
b = int.Parse(Console.ReadLine());
Console.WriteLine("請輸入我方第{0}位英雄的魔法攻擊力:", i);
c = int.Parse(Console.ReadLine());
Console.WriteLine("請輸入我方第{0}位英雄的終極技能:", i);
d = Console.ReadLine();
Hero hero = new Hero(a, b, c, d);
ours.Add(hero);
Console.Clear(); //清屏函數(shù)
}
//輸入敵方英雄基本信息
for (int i = 1; i <= 5; i++)
{
Console.WriteLine("請輸入敵方第{0}位英雄的名稱:", i);
a = Console.ReadLine();
Console.WriteLine("請輸入敵方第{0}位英雄的物理攻擊力:", i);
b = int.Parse(Console.ReadLine());
Console.WriteLine("請輸入敵方第{0}位英雄的魔法攻擊力:", i);
c = int.Parse(Console.ReadLine());
Console.WriteLine("請輸入敵方第{0}位英雄的終極技能:", i);
d = Console.ReadLine();
Hero hero = new Hero(a, b, c, d);
enemy.Add(hero);
Console.Clear(); //清屏函數(shù)
}
Console.WriteLine("正在為您初始化英雄角色,請稍等…………");
Thread.Sleep(1000);
Console.Clear();
}
#endregion
#region 顯示功能選項函數(shù)
//static:不用創(chuàng)建對象就可以調(diào)用
public static void function_print()
{
Console.WriteLine("****************************");
Console.WriteLine("* *");
Console.WriteLine("* 英雄大亂斗回合制游戲 *");
Console.WriteLine("* *");
Console.WriteLine("* 1、查看我方英雄情況 *");
Console.WriteLine("* 2、查看敵方英雄情況 *");
Console.WriteLine("* 3、更改我方英雄情況 *");
Console.WriteLine("* 4、更改敵方英雄情況 *");
Console.WriteLine("* 5、強化我方英雄 *");
Console.WriteLine("* 6、強化敵方英雄 *");
Console.WriteLine("* 7、激活我方英雄大招 *");
Console.WriteLine("* 8、激活敵方英雄大招 *");
Console.WriteLine("* 9、開始回合制打斗 *");
Console.WriteLine("* *");
Console.WriteLine("****************************");
}
#endregion
#region 查看英雄信息函數(shù)
public static void showAllInfo(List<Hero> hero)
{
Console.WriteLine("5位英雄信息如下:");
foreach (var i in hero)
{
i.showInfo();
}
}
#endregion
#region 修改信息
public static void modifyInfo(List<Hero> heros)
{
string a;
showAllInfo(heros);
Console.Write("\n輸入修改的編號(從1開始):");
a = Console.ReadLine();
if (string.IsNullOrEmpty(a))
{
Console.WriteLine("輸入有誤,重新選擇");
Console.ReadLine();
Console.Clear();
return;
}
int t = int.Parse(a);
if (t > heros.Count)
{
Console.WriteLine("輸入數(shù)值超過英雄編號長度,重新選擇需求");
}
else
{
Hero hero = heros[t - 1];
Console.WriteLine("輸入修改的值(按:姓名、血量、藍量、物理攻擊、魔法攻擊寫,不修改填-1或直接回車,填寫好后按回車鍵修改各個值):");
Hero.setColor(ConsoleColor.Red, ConsoleColor.Black);
Console.WriteLine("注:英雄終極技能一旦創(chuàng)建無法更改");
Hero.colorReset();
a = Console.ReadLine();
if (a != "-1" && !string.IsNullOrEmpty(a))
hero.Name = a;
a = Console.ReadLine();
if (a != "-1" && !string.IsNullOrEmpty(a))
hero.Hp = int.Parse(a);
a = Console.ReadLine();
if (a != "-1" && !string.IsNullOrEmpty(a))
hero.Mp = int.Parse(a);
a = Console.ReadLine();
if (a != "-1" && !string.IsNullOrEmpty(a))
hero.PhysicsAttack = int.Parse(a);
a = Console.ReadLine();
if (a != "-1" && !string.IsNullOrEmpty(a))
hero.MagicAttack = int.Parse(a);
Console.WriteLine("修改后的數(shù)據(jù)");
showAllInfo(heros);
}
}
#endregion
#region 強化英雄
public static void strengthenHero(List<Hero> heros)
{
string a;
showAllInfo(heros);
Console.Write("\n輸入強化的編號(從1開始):");
a = Console.ReadLine();
if (string.IsNullOrEmpty(a))
{
Console.WriteLine("輸入有誤,重新選擇");
Console.ReadLine();
Console.Clear();
return;
}
int t = int.Parse(a);
if (t > heros.Count)
{
Console.WriteLine("輸入數(shù)值超過英雄編號長度,重新選擇需求");
Console.ReadLine();
Console.Clear();
}
else
{
Hero hero = heros[t - 1];
Console.Write("添加血量值:");
a = Console.ReadLine();
if (!string.IsNullOrEmpty(a) && int.Parse(a) >= 0)
hero.Hp += int.Parse(a);
Console.Write("添加藍量值:");
a = Console.ReadLine();
if (!string.IsNullOrEmpty(a) && int.Parse(a) >= 0)
hero.Mp += int.Parse(a);
Console.Write("設(shè)置紅BUFF(輸入1為設(shè)置):");
a = Console.ReadLine();
if (!string.IsNullOrEmpty(a) && int.Parse(a) == 1)
hero.RedBuff = true;
Console.Write("設(shè)置藍BUFF(輸入1為設(shè)置):");
a = Console.ReadLine();
if (!string.IsNullOrEmpty(a) && int.Parse(a) == 1)
hero.BlueBuff = true;
Console.Write("設(shè)置眩暈BUFF(輸入1為設(shè)置):");
a = Console.ReadLine();
if (!string.IsNullOrEmpty(a) && int.Parse(a) == 1)
hero.DizzyBuff = true;
}
}
#endregion
#region 激活終極技能
public static void activateHeroUltimateSkills(List<Hero> heros)
{
Console.WriteLine("終極技能激活情況");
foreach (var hero in heros)
{
Console.Write("{0}的終極技能:", hero.Name);
if (hero.ActivateUltimateSkills == false)
{
Hero.setColor(ConsoleColor.Red, ConsoleColor.Black);
Console.WriteLine("未激活");
Hero.colorReset();
}
else
{
Hero.setColor(ConsoleColor.Green, ConsoleColor.Black);
Console.WriteLine("已激活");
Hero.colorReset();
}
}
Console.Write("\n輸入激活大招的編號(從1開始):");
string a = Console.ReadLine();
if (string.IsNullOrEmpty(a))
{
Console.WriteLine("輸入有誤,重新選擇");
Console.ReadLine();
Console.Clear();
return;
}
int t = int.Parse(a);
if (t > heros.Count)
{
Console.WriteLine("輸入數(shù)值超過英雄編號長度,重新選擇需求");
Console.ReadKey();
}
else
heros[t - 1].ActivateUltimateSkills = true;
Console.Clear();
}
#endregion
}
class Hero
{
private string name;
private int hp = 200; // 血量
private int mp = 100; // 魔法值
private int physicsAttack; // 物理攻擊力
private int magicAttack; // 魔法攻擊力
private string ultimateSkills; // 終極技能
private bool sign = false; //本回合攻擊過就標(biāo)記
private bool modify = true; // 設(shè)置是否能再次修改信息
private bool activateUltimateSkills = false; // 終極技能的激活情況
private bool blueBuff = false; // 設(shè)置藍Buff效果
private bool redBuff = false; // 設(shè)置紅BUFF效果
private bool dizzyBuff = false; // 設(shè)置暈眩BUFF效果
private bool dizzy = false; // 設(shè)置暈眩效果
public string Name { get => name; set => name = value; }
public int Hp { get => hp; set => hp = value; }
public int Mp { get => mp; set => mp = value; }
public int PhysicsAttack { get => physicsAttack; set => physicsAttack = value; }
public int MagicAttack { get => magicAttack; set => magicAttack = value; }
public string UltimateSkills { get => ultimateSkills; set => ultimateSkills = value; }
public bool Modify { get => modify; set => modify = value; }
public bool ActivateUltimateSkills { get => activateUltimateSkills; set => activateUltimateSkills = value; }
public bool BlueBuff { get => blueBuff; set => blueBuff = value; }
public bool RedBuff { get => redBuff; set => redBuff = value; }
public bool DizzyBuff { get => dizzyBuff; set => dizzyBuff = value; }
public bool Dizzy { get => dizzy; set => dizzy = value; }
public bool Sign { get => sign; set => sign = value; }
public Hero() { }
public Hero(string name, int physicsAttack, int magicAttack, string ultimateSkills)
{
this.Name = name;
this.PhysicsAttack = physicsAttack;
this.MagicAttack = magicAttack;
this.ultimateSkills = ultimateSkills;
}
// 展示信息
public void showInfo()
{
Console.Write("英雄名稱:");
setColor(ConsoleColor.Green, ConsoleColor.Black);
Console.Write(" " + Name + " ");
colorReset();
Console.Write(" 血量:");
setColor(ConsoleColor.Red, ConsoleColor.Black);
Console.Write(" " + Hp + " ");
colorReset();
Console.Write(" 魔法值:");
setColor(ConsoleColor.Blue, ConsoleColor.Black);
Console.Write(" " + Mp + " ");
colorReset();
Console.Write(" 物理攻擊力:");
setColor(ConsoleColor.Green, ConsoleColor.Black);
Console.Write(" " + PhysicsAttack + " ");
colorReset();
Console.Write(" 魔法攻擊力:");
setColor(ConsoleColor.Green, ConsoleColor.Black);
Console.Write(" " + MagicAttack + " ");
colorReset();
Console.Write(" 終極技能:");
setColor(ConsoleColor.Cyan, ConsoleColor.Black);
Console.Write(" " + UltimateSkills + " ");
colorReset();
Console.WriteLine();
}
public static void setColor(ConsoleColor a, ConsoleColor b)
{
Console.BackgroundColor = a;
Console.ForegroundColor = b;
}
public static void colorReset()
{
Console.BackgroundColor = ConsoleColor.Black;
Console.ForegroundColor = ConsoleColor.White;
}
}
class BattleControl
{
//回合
private int round = 1;
//己方人物
private List<Hero> ours;
//敵方人物
private List<Hero> enemy;
private static BattleControl instance = null;
private BattleControl() { }
public static BattleControl Instance
{
get
{
if (instance == null)
{
instance = new BattleControl();
}
return instance;
}
}
public int Round { get => round; set => round = value; }
internal List<Hero> Ours { get => ours; set => ours = value; }
internal List<Hero> Enemy { get => enemy; set => enemy = value; }
//實現(xiàn)回合制打斗方法
public void fight(int activation)
{
int i, j;
Random random = new Random();
int sum = 0;
while (true)
{
Console.WriteLine("第{0}回合開始?。。。。。。?!", round);
sum = 0;
while (sum != (ours.Count + enemy.Count))
{
sum = 0;
#region 選出所要戰(zhàn)斗的英雄
i = (int)random.Next(0, ours.Count);//我方英雄
Thread.Sleep(1000);
j = (int)random.Next(0, enemy.Count);//敵方英雄
#endregion
#region 大招
//回合數(shù)達到三 就可以釋放或者不釋放
if (round == activation)
{
Console.WriteLine("是否放大招1是放 2不放:");
string a = Console.ReadLine();
int n = int.Parse(a);
for (int t = 0; t < ours.Count; t++)
{
if (ours[t].Hp != 0)
{
ours[t].ActivateUltimateSkills = true;
}
switch (n)
{
case 1:
for (int k = 0; k < ours.Count; k++)
{
if (enemy[j].Hp > 0)
{
enemy[j].Hp = enemy[j].Hp > 10 ? enemy[j].Hp - 10 : 0;
}
}
break;
case 2:
break;
}
}
n = int.Parse(a);
for (int t = 0; t < enemy.Count; t++)
{
if (enemy[t].Hp != 0)
{
ours[t].ActivateUltimateSkills = true;
}
switch (n)
{
case 1:
for (int k = 0; k < ours.Count; k++)
{
if (ours[i].Hp > 0)
{
ours[i].Hp = ours[i].Hp > 10 ? ours[i].Hp - 10 : 0;
}
}
break;
case 2:
break;
}
}
}
#endregion
if (ours.Count == 0)
{
break;
}
if (enemy.Count == 0)
{
break;
}
if (!ours[i].Sign && !enemy[j].Sign)//本回合都未進攻過
{
//進攻操作
//首先把選出的英雄進行標(biāo)記
ours[i].Sign = true;
enemy[j].Sign = true;
//去判斷雙方所帶的增益有哪些
//如果進攻方有一方有眩暈buff就讓對方眩暈
if (ours[i].DizzyBuff)
{
enemy[j].Dizzy = true;
}
if (enemy[j].DizzyBuff)
{
ours[i].Dizzy = true;
}
//進攻的時候判斷 如果已經(jīng)被眩暈就不進攻
if (ours[i].Dizzy && !enemy[j].Dizzy)
{
enemy_attack(i, j);
}
else if (!ours[i].Dizzy && enemy[j].Dizzy)
{
ours_attack(i, j);
}
else if (!ours[i].Dizzy && !enemy[j].Dizzy)
{
ours_attack(i, j);
enemy_attack(i, j);
}
else if (ours[i].Dizzy && enemy[j].Dizzy)
{
Console.WriteLine("雙方都被眩暈所以這回合兩個英雄都未掉血?。?!");
}
}
else if (ours[i].Sign && !enemy[j].Sign)
{
enemy[j].Sign = true;//把沒有進行進攻的標(biāo)記
enemy_attack(i, j);
}
else if (!ours[i].Sign && enemy[j].Sign)
{
ours[i].Sign = true;//把沒有進行進攻的標(biāo)記
ours_attack(i, j);
}
else if (ours[i].Sign && enemy[j].Sign)
{
Console.WriteLine("選出的兩個英雄本回合都出戰(zhàn)過~~~系統(tǒng)從新選擇");
}
for (int k = 0; k < ours.Count; k++)
{
if (ours[k].Sign == true)
{
sum++;
}
}
for (int k = 0; k < enemy.Count; k++)
{
if (enemy[k].Sign == true)
{
sum++;
}
}
Console.WriteLine("{0}與{1}對戰(zhàn),{2}剩余血量{3},{4}剩余血量{5}", ours[i].Name, enemy[j].Name, ours[i].Name, ours[i].Hp, enemy[j].Name, enemy[j].Hp);
#region 如果已經(jīng)戰(zhàn)死就移除
if (ours[i].Hp == 0)
{
Console.WriteLine("{0}死亡將會從新選擇英雄", ours[i].Name);
ours.Remove(ours[i]);
}
if (enemy[j].Hp == 0)
{
Console.WriteLine("{0}死亡將會從新選擇英雄", enemy[j].Name);
enemy.Remove(enemy[j]);
}
#endregion
}
Console.WriteLine("第{0}回合結(jié)束!?。。。。。?!", round);
//一回合結(jié)束后更新所有英雄的狀態(tài)
update_status();
if (ours.Count == 0)
{
break;
}
if (enemy.Count == 0)
{
break;
}
//更新回合數(shù)
round++;
}
if (ours.Count == 0)
{
Console.WriteLine("我方輸");
}
else if (enemy.Count == 0)
{
Console.WriteLine("敵方輸");
}
else if (enemy.Count == 0 && ours.Count == 0)
{
Console.WriteLine("平局");
}
}
//更新狀態(tài)
public void update_status()
{
int i;
for (i = 0; i < ours.Count; i++)
{
ours[i].Dizzy = false;
ours[i].Sign = false;
//開局給的buff最多支撐三回合
if (round == 3)
{
ours[i].BlueBuff = false;
ours[i].RedBuff = false;
}
}
for (i = 0; i < enemy.Count; i++)
{
enemy[i].Dizzy = false;
enemy[i].Sign = false;
//開局給的buff最多支撐三回合
if (round == 3)
{
enemy[i].BlueBuff = false;
enemy[i].RedBuff = false;
}
}
}
//ours進攻
public void ours_attack(int i, int j)
{
//紅buff
if (ours[i].RedBuff)
{
Console.WriteLine("紅buff對{0}造成10點傷害", enemy[j].Name);
//紅buff造成的傷害,和回血
//防止血量出現(xiàn)負數(shù)
enemy[j].Hp = enemy[j].Hp > 10 ? enemy[j].Hp - 10 : 0;
if (ours[i].Hp == 200)
{
Console.WriteLine("{0}血量已滿無法回血", ours[i].Name);
}
else
{
//防止血量超過200
ours[i].Hp = 200 > (ours[i].Hp + 4) ? ours[i].Hp + 4 : 200;
Console.WriteLine("{0}回了4點血", ours[i].Name);
}
}
//藍buff
if (ours[i].BlueBuff)
{
Console.WriteLine("{0}回復(fù)了10點魔法值", ours[i].Name);
//最高值限定
ours[i].Mp = ours[i].Mp + 10 > 100 ? 100 : ours[i].Mp + 10;
}
//魔法攻擊力加物理攻擊力造成傷害-最高值限定
if (ours[i].Mp >= ours[i].MagicAttack)
{
enemy[j].Hp = (ours[i].PhysicsAttack + ours[i].MagicAttack) > enemy[j].Hp ? 0 : enemy[j].Hp - (ours[i].PhysicsAttack + ours[i].MagicAttack);
ours[i].Mp -= ours[i].MagicAttack; //更新魔法值
}
else//魔法值不足以發(fā)動魔法攻擊
{
enemy[j].Hp = ours[i].PhysicsAttack > enemy[j].Hp ? 0 : enemy[j].Hp - ours[i].PhysicsAttack;
}
}
//enemy進攻
public void enemy_attack(int i, int j)
{
//紅buff
if (enemy[j].RedBuff)
{
Console.WriteLine("紅buff對{0}造成10點傷害", ours[i].Name);
//紅buff造成的傷害
//防止血量出現(xiàn)負數(shù)
ours[i].Hp = ours[i].Hp > 10 ? ours[i].Hp - 10 : 0;
if (enemy[j].Hp == 200)
{
Console.WriteLine("{0}血量已滿無法回血", enemy[j].Name);
}
else
{
//防止血量超過200
enemy[j].Hp = 200 < (enemy[j].Hp + 4) ? enemy[j].Hp + 4 : 200;
Console.WriteLine("{0}回了4點血", enemy[j].Name);
}
}
//藍buff
if (enemy[j].BlueBuff)
{
Console.WriteLine("{0}回復(fù)了10點魔法值", enemy[j].Name);
//最高值限定
enemy[j].Mp = enemy[j].Mp + 10 > 100 ? 100 : enemy[j].Mp + 10;
}
//魔法攻擊力加物理攻擊力造成傷害-最高值限定
if (enemy[j].Mp >= enemy[j].MagicAttack)
{
ours[i].Hp = (enemy[j].PhysicsAttack + enemy[j].MagicAttack) > ours[i].Hp ? 0 : ours[i].Hp - (enemy[j].PhysicsAttack + enemy[j].MagicAttack);
enemy[j].Mp -= enemy[j].MagicAttack; //更新魔法值
}
else//魔法值不足以發(fā)動魔法攻擊
{
ours[i].Hp = enemy[j].PhysicsAttack > ours[i].Hp ? 0 : ours[i].Hp - enemy[j].PhysicsAttack;
}
}
}
}
百度網(wǎng)盤鏈接
下載地址?提取碼:ycq9?
以上就是基于C#模擬實現(xiàn)回合制游戲的詳細內(nèi)容,更多關(guān)于C#模擬回合制游戲的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
C#調(diào)用windows api關(guān)機(關(guān)機api)示例代碼分享
本文主要介紹了C#調(diào)用windows api關(guān)機的示例代碼,大家參考使用吧2014-01-01
C#結(jié)合JS解決Word添加無效位圖導(dǎo)致進程停滯的問題
這篇文章主要為大家詳細介紹了C#如何結(jié)合JS解決Word添加無效位圖導(dǎo)致進程停滯的問題,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-11-11

