热门IT资讯网

[C#]通过方法获得游戏人数和玩家姓名

发表于:2024-11-25 作者:热门IT资讯网编辑
编辑最后更新 2024年11月25日,通过两个方法,分别得到用户输入的人数和所有人的姓名,作为游戏程序的一个小功能。using System;namespace Player{internal class Program{private

通过两个方法,分别得到用户输入的人数和所有人的姓名,作为游戏程序的一个小功能。

  1. using System;
  2. namespace Player
  3. {
  4. internal class Program
  5. {
  6. private static void Main(string[] args)
  7. {
  8. int playerNum = PlayerNum(); //调用PlayerNum()方法获得用户输入的人数
  9. string[] name = PlayerName(playerNum); //调用PlayerName()方法得到每一个玩家的昵称
  10. Console.WriteLine("参加本游戏的人数为:{0}人", playerNum);
  11. for (int i = 0; i < name.Length; i++)
  12. {
  13. Console.WriteLine("第{0}位玩家昵称为 :{1}", i + 1, (name[i]));
  14. }
  15. Console.ReadKey();
  16. }
  17. ///
  18. /// 输入一个人数。
  19. /// 最小人数为1,playerMax控制最大人数。
  20. ///
  21. /// 参加的人数
  22. private static int PlayerNum()
  23. {
  24. int playerNumber = 0;
  25. int playerMax = 4; //最大参加人数
  26. do
  27. {
  28. Console.WriteLine("请输入参加的人数(1-{0}人):", playerMax);
  29. try
  30. {
  31. //接收用户输入的人数
  32. playerNumber = Convert.ToInt32(Console.ReadLine());
  33. //判断人数是否小于1或者超过最大限制的人数
  34. if (playerNumber <= 0 || playerNumber > playerMax)
  35. {
  36. Console.WriteLine("必须输入一个1到{0}之间的整数!", playerMax);
  37. continue;
  38. }
  39. break;
  40. }
  41. catch
  42. {
  43. Console.WriteLine("请输入一个整数!");
  44. }
  45. } while (true);
  46. return playerNumber; //返回用户输入的人数
  47. }
  48. ///
  49. /// 让用户输入每一个玩家的姓名,并返回所有玩家的姓名。
  50. ///
  51. /// 玩家的人数
  52. /// 所有玩家的昵称
  53. private static string[] PlayerName(int number)
  54. {
  55. //定义一个数组存放玩家姓名
  56. string[] name = new string[number];
  57. for (int i = 0; i < name.Length; i++)
  58. {
  59. Console.WriteLine("请输入第{0}位玩家的姓名:", i + 1);
  60. name[i] = Console.ReadLine();
  61. while (name[i] == "") //判断玩家姓名是否为空,为空则重新输入
  62. {
  63. Console.WriteLine("姓名不能为空,请重新输入第{0}位玩家姓名:", i + 1);
  64. name[i] = Console.ReadLine();
  65. }
  66. if (i > 0) //判断玩家人数,两位以上需要核对姓名是否相同
  67. {
  68. for (int j = 0; j < i; j++) //当前输入的玩家姓名与已经存在的所有玩家姓名进行对照,看是否相同
  69. {
  70. if (name[i] == name[j])
  71. {
  72. Console.WriteLine("该姓名与第{0}位玩家相同,请重新输入第{1}位玩家姓名:", j + 1, i + 1);
  73. name[i] = Console.ReadLine();
  74. }
  75. }
  76. }
  77. }
  78. return (string[])name; //返回玩家姓名
  79. }
  80. }
  81. }
0