• C#飞行棋总结


    以下是掷色子的一个代码,比较有代表性,里面的逻辑和内容都已注释,可通过注释了解这一方法的运作模式。

    public static void RowTouZi(int playerPos) //掷色子

    {
    //产生随机数,掷色子的随机数
    Random r = new Random();
    int num = r.Next(1, 7);
    //定义一个字符串变量
    string msg = "";

    //提示用户信息
    Console.WriteLine("{0}按任意键开始掷色子", PlayerNames[playerPos]);

    //不显示用户按下的任意键
    Console.ReadKey(true);

    //根据不同的变量的值显示不同的情况
    Console.WriteLine("{0}掷出了{1}", PlayerNames[playerPos], num);
    //提示用户谁开始行动了
    Console.WriteLine("{0}按任意键开始行动...", PlayerNames[playerPos]);
    Console.ReadKey(true);

    //用户的坐标开始改变
    PlayerPos[playerPos] += num;

    //判断两个用户坐标可能出现的问题(重叠的问题)
    if (PlayerPos[playerPos] == PlayerPos[1- playerPos])
    {
    msg=string.Format("玩家{0}踩到了玩家{1},玩家{2}退6格", PlayerNames[playerPos], PlayerNames[1- playerPos], PlayerNames[1 - playerPos]);
    PlayerPos[1- playerPos] -= 6;


    }
    else
    {
    //检查是否出界
    CheckPos();
    switch (Map[PlayerPos[playerPos]])
    {
    //没有障碍
    case 0:
    msg ="行动完了";
    break;
    //踩到幸运轮盘
    case 1:
    msg = string.Format("{0}走到了幸运轮盘,请选择1--交换位置,2---轰炸对方", PlayerNames[playerPos]);

    //进行选择,调用Readint方法,只可以让用户输入1或2;
    int number = ReadInt(msg, 1, 2);

    //进行判断用户选择的哪个方案,进行执行相应的代码
    if (number == 1)
    {
    //交换位置
    int temp = 0;
    temp = PlayerPos[playerPos];
    temp = PlayerPos[playerPos];
    PlayerPos[playerPos] = PlayerPos[1- playerPos];
    PlayerPos[1- playerPos] = temp;
    msg=string.Format("玩家{0}选择了玩家{1}交换位置", PlayerNames[playerPos], PlayerNames[1- playerPos]);

    }
    else
    {

    PlayerPos[1- playerPos] = 0;
    msg = string.Format("玩家{0}选择了轰炸玩家{1}", PlayerNames[playerPos], PlayerNames[1- playerPos]);
    }


    break;
    //踩到地雷了
    case 2:


    msg="踩到地雷了,后退6步";
    //坐标后退6
    PlayerPos[playerPos] -= 6;
    //检查是否出界
    CheckPos();
    break;
    //踩到暂停了
    case 3:

    msg ="踩到暂停了";
    //将flag数组中的false,改为true,执行true相应的代码
    flag[playerPos] = true;
    break;
    //踩到了时空隧道
    case 4:

    msg = string.Format("恭喜你,踩到时空隧道,前进10步");
    //坐标前进10
    PlayerPos[playerPos] += 10;
    //判断是否出界
    CheckPos(http://www.my516.com);
    break;
    }
    }
    Console.Clear(); //清除掉原来的地图
    DrawMap(); //在画一边地图

    //因为只有一种情况出现,所以msg的值经过判断之后也是只有一种,然后将其内容显示出来
    Console.WriteLine(msg);
    }
    小知识总结:

    可以通过判断,显示内容

    case 0:
    msg=string.Format("玩家{0}踩到了玩家{1},玩家{2}退6格", PlayerNames[playerPos], PlayerNames[1- playerPos], PlayerNames[1 - playerPos]);
    case 1:
    msg = string.Format("{0}走到了幸运轮盘,请选择1--交换位置,2---轰炸对方", PlayerNames[playerPos]);

    Console.WriteLine(msg);
    --------------------- 

  • 相关阅读:
    Java基础00-模块36
    Java基础00-反射35
    Java基础00-Stream流34
    Java基础00-函数式接口33
    Java基础00-方法引用32
    运用龙格库塔法解大雷洛数平板绕流问题
    LB 学习日记
    Numba学习日记 —— 2019-12-5
    文件的操作及相关异常的处理
    time模块的两个函数time.clock()和time.time()的区别
  • 原文地址:https://www.cnblogs.com/hyhy904/p/11026672.html
Copyright © 2020-2023  润新知