iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >C#如何实现简单的飞行棋小游戏
  • 193
分享到

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

2023-06-21 19:06:18 193人浏览 八月长安
摘要

这篇文章主要介绍了C#如何实现简单的飞行棋小游戏,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。具体内容如下玩家姓名的输入对屏幕进行清屏初始化地图玩家A和玩家B玩游戏using

这篇文章主要介绍了C#如何实现简单的飞行棋小游戏,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

具体内容如下

玩家姓名的输入

对屏幕进行清屏

初始化地图

玩家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    }}

感谢你能够认真阅读完这篇文章,希望小编分享的“C#如何实现简单的飞行棋小游戏”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网精选频道,更多相关知识等着你来学习!

--结束END--

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

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

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

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

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

下载Word文档
猜你喜欢
  • C#实现简单飞行棋小游戏
    本文实例为大家分享了C#实现简单飞行棋小游戏的具体代码,供大家参考,具体内容如下 目标:实现飞行棋游戏基础功能 玩家在地图触发道具: 1、获得道具,可以进行一次选择 1–交换位置 2...
    99+
    2024-04-02
  • C#如何实现简单的飞行棋小游戏
    这篇文章主要介绍了C#如何实现简单的飞行棋小游戏,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。具体内容如下玩家姓名的输入对屏幕进行清屏初始化地图玩家A和玩家B玩游戏using...
    99+
    2023-06-21
  • C#实现简单的飞行棋小游戏
    本文实例为大家分享了C#实现简单飞行棋小游戏的具体代码,供大家参考,具体内容如下 1.玩家姓名的输入 2.对屏幕进行清屏 3.初始化地图 4.玩家A和玩家B玩游戏 using S...
    99+
    2024-04-02
  • C#如何实现简单的飞行棋游戏
    这篇文章主要为大家展示了“C#如何实现简单的飞行棋游戏”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“C#如何实现简单的飞行棋游戏”这篇文章吧。下面展示 完整代码:namespace 飞...
    99+
    2023-06-20
  • C#实现简单的飞行棋游戏
    本文实例为大家分享了C#实现简单飞行棋游戏的具体代码,供大家参考,具体内容如下 下面展示 完整代码: namespace 飞行棋 { class Program ...
    99+
    2024-04-02
  • C#如何用代码实现飞行棋简单小游戏
    本篇内容主要讲解“C#如何用代码实现飞行棋简单小游戏”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#如何用代码实现飞行棋简单小游戏”吧!目标:实现飞行棋游戏基础功能玩家在地图触发道具:获得道具...
    99+
    2023-06-14
  • C#控制台实现简单飞行棋游戏
    本文实例为大家分享了C#控制台实现简单飞行棋游戏的具体代码,供大家参考,具体内容如下 需求分析 1.制作游戏头部:游戏头部介绍 2.绘制地图 使用一维数组装整个地图的路线 如果这...
    99+
    2024-04-02
  • c# 编写的简单飞行棋游戏
    目录项目效果实现代码基于winform制作的图形界面程序效果代码项目效果 实现代码 using System; namespace 飞行棋项目 { class Pr...
    99+
    2024-04-02
  • C#实现飞行棋游戏
    飞行棋主要是讲的方法怎么应用,充分的去理解方法和方法的调用,整体收获还是很大的。 我想的是说一下整体的思路。在编程的时间里,逻辑是最重要的,先干嘛后干嘛,对吧。 直接上个飞行棋的图,...
    99+
    2024-04-02
  • C#如何实现控制台飞行棋小游戏
    这篇文章将为大家详细讲解有关C#如何实现控制台飞行棋小游戏,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。本文实例为大家分享了C#实现控制台飞行棋小游戏的具体代码,供大家参考,具体内容如下using&nbs...
    99+
    2023-06-20
  • C#控制台实现飞行棋小游戏
    本文实例为大家分享了C#控制台实现飞行棋小游戏的具体代码,供大家参考,具体内容如下 游戏标题 static void ShowTitle() { ...
    99+
    2024-04-02
  • C#实现控制台飞行棋小游戏
    本文实例为大家分享了C#实现控制台飞行棋小游戏的具体代码,供大家参考,具体内容如下 using System; using System.Collections.Generic;...
    99+
    2024-04-02
  • C语言如何实现简单五子棋小游戏
    这篇文章主要介绍C语言如何实现简单五子棋小游戏,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!本文实例为大家分享了C语言实现简单五子棋小游戏的具体代码,供大家参考,具体内容如下效果图如下:设计思路:棋盘设计为15×15...
    99+
    2023-06-15
  • 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+
    2023-06-17
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作