iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C#实现简单的飞行棋小游戏
  • 337
分享到

C#实现简单的飞行棋小游戏

2024-04-02 19:04:59 337人浏览 独家记忆
摘要

本文实例为大家分享了C#实现简单飞行棋小游戏的具体代码,供大家参考,具体内容如下 1.玩家姓名的输入 2.对屏幕进行清屏 3.初始化地图 4.玩家A和玩家B玩游戏 using S

本文实例为大家分享了C#实现简单飞行棋小游戏的具体代码,供大家参考,具体内容如下

1.玩家姓名的输入

2.对屏幕进行清屏

3.初始化地图

4.玩家A和玩家B玩游戏


using System;
namespace homework
{
    class data
    {
        //静态字段来模拟全局变量
        static int[] Maps = new int[100];
        //声明一个静态数组用来存储玩家A跟玩家B的坐标
        static int[] PlayerPos = new int[2];
        static string[] PlayerNames = new string[2];
        //两个玩家的标记
        static bool[] Flags = new bool[2];//flags[0]默认是false 
        public static void Main(String[] args)
        {
            GameShow();
            //玩家姓名的输入
            #region 
            Console.WriteLine("请输入玩家A的姓名:");
            PlayerNames[0] = Console.ReadLine();
            while (PlayerNames[0] == "")
            {
                Console.WriteLine("玩家A的姓名不能为空,请重新输入");
                PlayerNames[0] = Console.ReadLine();
            }
            Console.WriteLine("请输入玩家B的姓名:");
            PlayerNames[1] = Console.ReadLine();
            while (PlayerNames[1] == "" || PlayerNames[1] == PlayerNames[0])
            {
                if (PlayerNames[0] == "")
                {
                    Console.WriteLine("玩家A的姓名不能为空,请重新输入");
                    PlayerNames[1] = Console.ReadLine();
                }
                else
                {
                    Console.WriteLine("玩家B的姓名不能与玩家A相同");
                    PlayerNames[1] = Console.ReadLine();
                }
            }
            #endregion
            //对屏幕进行清屏
            #region 
            Console.Clear();//清屏
            GameShow();
            Console.WriteLine("{0}的士兵用A表示", PlayerNames[0]);
            Console.WriteLine("{0}的士兵用B表示", PlayerNames[1]);
            #endregion
            //画地图之前 初始化地图
            #region 
            InitailMap();
            DrawMap();
            #endregion
            //当玩家A跟玩家B没有一个人在终点时候 两个玩家不停地去玩游戏
            #region 
            while (PlayerPos[0] < 99 && PlayerPos[0] < 99)
            {
                if (Flags[0] == false)
                {
                    PlayGame(0);
                }
                else
                {
                    Flags[0] = false;
                }
                if (PlayerPos[0] > 99)
                {
                    Console.WriteLine("玩家{0}赢了玩家{1}", PlayerNames[0], PlayerNames[1]);
                    break;
                }
                if (Flags[1] == false)
                {
                    PlayGame(1);
                }
                else
                {
                    Flags[1] = false;
                }
                if (PlayerPos[0] > 99)
                {
                    Console.WriteLine("玩家{0}赢了玩家{1}", PlayerNames[0], PlayerNames[1]);
                    break;
                }
            }//while
            #endregion
            Console.WriteLine("游戏结束!!!");
            Console.ReadLine();
        }
        //画地图头
        #region 
        public static void GameShow()
        {
            Console.ForegroundColor = ConsoleColor.Gray;
            Console.WriteLine("*************************************");
            Console.WriteLine("*************************************");
            Console.WriteLine("****************飞行棋***************");
            Console.WriteLine("*************************************");
            Console.WriteLine("*************************************");
        }
        #endregion
        //初始化地图
        #region 
        public static void InitailMap()
        {
            int[] luckyturn = { 6, 23, 40, 55, 69, 83 };//幸运轮盘
            for (int i = 0; i < luckyturn.Length; i++)
            {
                Maps[luckyturn[i]] = 1;
            }
            int[] landMine = { 5, 13, 17, 33, 38, 50, 64, 80, 94 };//地雷
            for (int i = 0; i < landMine.Length; i++)
            {
                Maps[landMine[i]] = 2;
            }
            int[] pause = { 2,3,4,9, 27, 60, 93 };//暂停
            for (int i = 0; i < pause.Length; i++)
            {
                Maps[pause[i]] = 3;
            }
            int[] timeTunnel = { 20, 25, 45, 63, 72, 88, 90 };//时空隧道
            for (int i = 0; i < timeTunnel.Length; i++)
            {
                Maps[timeTunnel[i]] = 4;
            }
        }
        #endregion
        //画地图
        #region 
        public static void DrawMap()
        {
            Console.WriteLine("图例:幸运圆圈:○  地雷:☆  暂停:▽  时空隧道:◎");
            //第一横行
            for (int i = 0; i < 30; i++)
            {
                //如果玩家A跟玩家B的坐标相同,画一个尖括号
                Console.Write(DrawStringMap(i));
            }//for
            Console.WriteLine();
            // 第一竖行
            for (int i = 30; i < 35; i++)
            {
                for (int j = 0; j <= 28; j++)
                {
                    Console.Write("  ");
                }
                Console.WriteLine(DrawStringMap(i));
            }
            //第二横行
            for (int i = 64; i >= 35; i--)
            {
                Console.Write(DrawStringMap(i));
            }
            //画第二行 需要进行换行
            Console.WriteLine();
            //第二竖行
            for (int i = 65; i <= 69; i++)
            {
                Console.WriteLine(DrawStringMap(i));
            }
            //第三横行
            for (int i = 70; i <= 99; i++)
            {
                Console.Write(DrawStringMap(i));
            }
            Console.WriteLine();
        }
        #endregion
        //画地图中抽象出一个方法
        #region
        public static string DrawStringMap(int i)
        {
            string str = "";
            if (PlayerPos[0] == PlayerPos[1] && PlayerPos[1] == i)
            {
                str = "<>";
            }
            else if (PlayerPos[0] == i)
            {
                str = "A";
            }
            else if (PlayerPos[1] == i)
            {
                str = "B";
            }
            else
            {
                switch (Maps[i])
                {
                    case 0: str = "□"; break;
                    case 1: str = "○"; break;
                    case 2: str = "☆"; break;
                    case 3: str = "▽"; break;
                    case 4: str = "◎"; break;
                }//switch
            }//else
            return str;
        }
        #endregion
        //双方掷骰子过程
        #region 
        public static void PlayGame(int playerNumber)
        {
            Random r = new Random();
            int rNumber = r.Next(1, 7);
            Console.WriteLine("{0}按人任意键开始掷骰子", PlayerNames[playerNumber]);
            Console.ReadKey(true);
            Console.WriteLine("{0}掷骰子掷出了{1}", PlayerNames[playerNumber], rNumber);
            PlayerPos[playerNumber] += rNumber;
            Console.ReadKey(true);
            Console.WriteLine("{0}按任意键开始行动", PlayerNames[playerNumber]);
            Console.ReadKey(true);
            Console.WriteLine("{0}行动完了", PlayerNames[playerNumber]);
            Console.ReadKey(true);
            //玩家A有可能踩到了玩家B 方块 幸运玩家 地雷 暂停 时空隧道
            if (PlayerPos[playerNumber] == PlayerPos[1 - playerNumber])
            {
                Console.WriteLine("玩家{0}踩到了玩家{1},玩家{1}退6格", PlayerNames[playerNumber], PlayerNames[1 - playerNumber]);
                PlayerPos[1 - playerNumber] -= 6;
                Console.ReadKey(true);
            }
            else//踩到关卡
            {
                //玩家坐标
                switch (Maps[PlayerPos[playerNumber]])
                {
                    case 0:
                        Console.WriteLine("玩家{0}踩到了方块,安全", PlayerNames[playerNumber]);
                        Console.ReadKey(true);
                        break;
                    case 1:
                        Console.WriteLine("玩家{0}踩到幸运圆圈,请选择1--交换位置 2--轰炸对方", PlayerNames[playerNumber]);
                        string input = Console.ReadLine();
                        while (true)
                        {
                            if (input == "1")
                            {
                                Console.WriteLine("玩家{0}选择跟玩家{1}交换位置", PlayerNames[playerNumber], PlayerNames[1 - playerNumber]);
                                Console.ReadKey(true);
                                int temp = PlayerPos[playerNumber];
                                PlayerPos[playerNumber] = PlayerPos[1 - playerNumber];
                                PlayerPos[1 - playerNumber] = temp;
                                Console.WriteLine("交换完成!!!按任意键继续游戏!!!");
                                Console.ReadKey(true);
                                break;
                            }
                            else if (input == "2")
                            {
                                Console.WriteLine("玩家{0}选择轰炸玩家{1},玩家{1}退6格", PlayerNames[playerNumber], PlayerNames[1 - playerNumber]);
                                Console.ReadKey(true);
                                PlayerPos[1] -= 6;
                                Console.WriteLine("玩家{0}退了6格", PlayerNames[1 - playerNumber]);
                                Console.ReadKey(true);
                                break;
                            }
                            else
                            {
                                Console.WriteLine("只能输入1或者2 1--交换位置  2--轰炸对方");
                                input = Console.ReadLine();
                            }
                        }
                        Console.ReadKey(true);
                        break;
                    case 2:
                        Console.WriteLine("玩家{0}踩到了地雷,退6格", PlayerNames[playerNumber]);
                        Console.ReadKey(true);
                        PlayerPos[1 - playerNumber] -= 6;
                        Console.WriteLine("玩家{0}退了6格", PlayerNames[playerNumber]);
                        Console.ReadKey(true);
                        break;
                    case 3:
                        Console.WriteLine("玩家{0}踩到了暂停,暂停一回合", PlayerNames[playerNumber]);
                        Flags[playerNumber] = true;
                        Console.ReadKey(true);
                        break;
                    case 4:
                        Console.WriteLine("玩家{0}踩到了时空隧道,前进10格", PlayerNames[playerNumber]);
                        Console.ReadKey(true);
                        PlayerPos[playerNumber] += 10;
                        break;
                }//switch
            }//else
            ChangePos();
            Console.Clear();
            DrawMap();
        }
        #endregion
        //当玩家坐标发生改变需要判断两者是否超出范围
        #region 
        public static void ChangePos()
        {
            if (PlayerPos[0] < 0)
            {
                PlayerPos[0] = 0;
            }
            if (PlayerPos[0] >= 99)
            {
                PlayerPos[0] = 99;
            }
            if (PlayerPos[1] < 0)
            {
                PlayerPos[1] = 0;
            }
            if (PlayerPos[1] > 99)
            {
                PlayerPos[1] = 99;
            }
        }
        #endregion
    }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: C#实现简单的飞行棋小游戏

本文链接: https://www.lsjlt.com/news/158116.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C#实现简单飞行棋小游戏
    本文实例为大家分享了C#实现简单飞行棋小游戏的具体代码,供大家参考,具体内容如下 目标:实现飞行棋游戏基础功能 玩家在地图触发道具: 1、获得道具,可以进行一次选择 1–交换位置 2...
    99+
    2024-04-02
  • C#实现简单的飞行棋小游戏
    本文实例为大家分享了C#实现简单飞行棋小游戏的具体代码,供大家参考,具体内容如下 1.玩家姓名的输入 2.对屏幕进行清屏 3.初始化地图 4.玩家A和玩家B玩游戏 using S...
    99+
    2024-04-02
  • C#实现简单的飞行棋游戏
    本文实例为大家分享了C#实现简单飞行棋游戏的具体代码,供大家参考,具体内容如下 下面展示 完整代码: namespace 飞行棋 { class Program ...
    99+
    2024-04-02
  • C#如何实现简单的飞行棋小游戏
    这篇文章主要介绍了C#如何实现简单的飞行棋小游戏,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。具体内容如下玩家姓名的输入对屏幕进行清屏初始化地图玩家A和玩家B玩游戏using...
    99+
    2023-06-21
  • C#如何实现简单的飞行棋游戏
    这篇文章主要为大家展示了“C#如何实现简单的飞行棋游戏”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“C#如何实现简单的飞行棋游戏”这篇文章吧。下面展示 完整代码:namespace 飞...
    99+
    2023-06-20
  • C#控制台实现简单飞行棋游戏
    本文实例为大家分享了C#控制台实现简单飞行棋游戏的具体代码,供大家参考,具体内容如下 需求分析 1.制作游戏头部:游戏头部介绍 2.绘制地图 使用一维数组装整个地图的路线 如果这...
    99+
    2024-04-02
  • C#如何用代码实现飞行棋简单小游戏
    本篇内容主要讲解“C#如何用代码实现飞行棋简单小游戏”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#如何用代码实现飞行棋简单小游戏”吧!目标:实现飞行棋游戏基础功能玩家在地图触发道具:获得道具...
    99+
    2023-06-14
  • c# 编写的简单飞行棋游戏
    目录项目效果实现代码基于winform制作的图形界面程序效果代码项目效果 实现代码 using System; namespace 飞行棋项目 { class Pr...
    99+
    2024-04-02
  • C#实现飞行棋游戏
    飞行棋主要是讲的方法怎么应用,充分的去理解方法和方法的调用,整体收获还是很大的。 我想的是说一下整体的思路。在编程的时间里,逻辑是最重要的,先干嘛后干嘛,对吧。 直接上个飞行棋的图,...
    99+
    2024-04-02
  • C#控制台实现飞行棋小游戏
    本文实例为大家分享了C#控制台实现飞行棋小游戏的具体代码,供大家参考,具体内容如下 游戏标题 static void ShowTitle() { ...
    99+
    2024-04-02
  • C#实现控制台飞行棋小游戏
    本文实例为大家分享了C#实现控制台飞行棋小游戏的具体代码,供大家参考,具体内容如下 using System; using System.Collections.Generic;...
    99+
    2024-04-02
  • C#如何实现控制台飞行棋小游戏
    这篇文章将为大家详细讲解有关C#如何实现控制台飞行棋小游戏,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。本文实例为大家分享了C#实现控制台飞行棋小游戏的具体代码,供大家参考,具体内容如下using&nbs...
    99+
    2023-06-20
  • C语言实现简单三子棋小游戏
    三子棋介绍 三子棋,民间传统游戏,又叫九宫棋、圈圈叉叉、一条龙等。将正方形对角线连起来,相对两边依次摆上三个双方棋子,只要将自己的三个棋子走成一条线,对方就算输了。如果两个人都掌握了...
    99+
    2024-04-02
  • C语言实现三子棋简单小游戏
    三子棋 ,也叫井字棋,是一款大家都玩过的经典小游戏,也是一个适合初学c语言的小伙伴练练手的小项目。 1.整个棋盘采用二维数组存储,下棋时只要获取到x,y两个方向的坐标访问二维数组中的...
    99+
    2024-04-02
  • C语言实现简单的五子棋小游戏
    本文实例为大家分享了C语言实现五子棋小游戏的具体代码,供大家参考,具体内容如下 我们需要一个二维数组去储存当前的棋盘状态,然后打印出来。 我们游戏的逻辑是初始化棋盘,打印棋盘,人下棋...
    99+
    2024-04-02
  • 用C语言实现简单五子棋小游戏
    本文实例为大家分享了C语言实现简单五子棋小游戏的具体代码,供大家参考,具体内容如下 在vs2019创建新项目,然后添加两个源文件test.c和game.c,接着创建一个头文件game...
    99+
    2024-04-02
  • python实现简单的井字棋小游戏
    Python做三子棋游戏,这个是我刚开始了解做Python小游戏的时候第一个项目,因为简单好入手,实现它的过程是我开始摸索Python的GUI界面的入门之路。这个设计也都是按照自己对...
    99+
    2024-04-02
  • python实现简单五子棋小游戏
    用python实现五子棋简单人机模式的练习过程,供大家参考,具体内容如下 最近在初学python,今天就用自己的一些粗浅理解,来记录一下这几天的python简单人机五子棋游戏的练习,...
    99+
    2024-04-02
  • C++实现简易的五子棋小游戏
    本文实例为大家分享了C++实现简易五子棋小游戏的具体代码,供大家参考,具体内容如下 游戏界面: 这是一个简易的五子棋游戏,由c语言编写,每次循环输入两个位置的坐标,通过其奇偶性判...
    99+
    2024-04-02
  • javascript实现简单飞机大战小游戏
    本文实例为大家分享了javascript实现飞机大战小游戏的具体代码,供大家参考,具体内容如下 效果图 html文件 <!DOCTYPE html> <html ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作