精华内容
下载资源
问答
  • 2021-03-28 11:56:34

    C# 实现控制台猜拳游戏(新手入门程序)

    class Program
        {
            /// <summary>
            /// 剪刀 用0表示
            /// </summary>
            private const int JIANDAO = 0;
            /// <summary>
            /// 石头用 1表示
            /// </summary>
            private const int SHITOU = 1;
            /// <summary>
            /// 布用2表示
            /// </summary>
            private const int BU = 2;
    
          //电脑的积分,积分是一个全局变量,在任何地方修改,都要改变值,所以用static修饰
            private  static  int pcIntegral; 
            //玩家的积分
            private static  int  userIntegral; 
    
            static void Main(string[] args)
            {
    
                int count = 0;   // 场次
    
                Random random = new Random();  //实例化对象
                while (++count <= 3)
                {
    
                    Console.WriteLine("第{0}局比赛", count);
                    Console.WriteLine("请玩家先出拳,剪刀[0],石头[1],布[2] ");
                    int pc = random.Next(0, 3);
                    String input = Console.ReadLine();
                    int  user = int.Parse(input);
                    if (user < 0 || user >= 3)
                    {
                        Console.WriteLine("请输入0到2之间的数字,本局无效\n");
                        count--; //回滚
                        continue; //跳过当前循环
                    }
                    //调用判断输赢的函数
                    Judge(user, pc);
    
                }
    
                Console.WriteLine("\n--------------最终的得分情况如下---------------");
                Console.WriteLine("玩家得分{0}", userIntegral);
                Console.WriteLine("PC得分{0}", pcIntegral);
                // 防止程序运行完毕以后直接关闭
                Console.ReadKey();
    
            }
    
            /// <summary>
            ///  返回猜拳结果
            /// </summary>
            /// <param name="user">用户出的拳</param>
            /// <param name="pc">电脑的出的全</param>
            /// <returns></returns>
            private static void Judge(int user, int pc)
            {
                #region  pc 全部出剪刀的情况
                if (pc == JIANDAO && user == JIANDAO)
                {
                    Console.WriteLine("PC出的{0},玩家出的{1},本局为平局", "剪刀", "剪刀");
                }
    
    
                if (pc == JIANDAO && user == SHITOU)
                {
                    Console.WriteLine("PC出的{0},玩家出的{1},本局玩家胜利,胜场积分加一", "剪刀", "石头");
                    userIntegral++;
                }
    
                if (pc == JIANDAO && user == BU)
                {
                    Console.WriteLine("PC出的{0},玩家出的{1},本局PC胜利,胜场积分加一", "剪刀", "布");
                    pcIntegral++;
                }
                #endregion
    
    
                #region PC 全部出石头的情况
                if (pc == SHITOU && user == JIANDAO)
                {
                    Console.WriteLine("PC出的{0},玩家出的{1},本局PC胜利,胜场积分加一", "石头", "剪刀");
                    pcIntegral++;
                }
    
    
                if (pc == SHITOU && user == SHITOU)
                {
                    Console.WriteLine("PC出的{0},玩家出的{1},本局为平局", "石头", "石头");
                  
                }
    
                if (pc == SHITOU && user == BU)
                {
                    Console.WriteLine("PC出的{0},玩家出的{1},本局玩家胜利,胜场积分加一", "石头", "布");
                    userIntegral++;
                }
                #endregion
    
                #region PC全部出布的情况
                if (pc == BU && user == JIANDAO)
                {
                    Console.WriteLine("PC出的{0},玩家出的{1},本局玩家胜利,胜场积分加一", "布", "剪刀");
                    userIntegral++;
                }
    
    
                if (pc == BU && user == SHITOU)
                {
                    Console.WriteLine("PC出的{0},玩家出的{1},本局PC胜利,胜场积分加一", "布", "石头");
                    pcIntegral ++;
                }
    
                if (pc == BU && user == BU)
                {
                    Console.WriteLine("PC出的{0},玩家出的{1},本局为平局", "布", "布");
             
                }
                #endregion  
    
            }
        }
    
    更多相关内容
  • 常玩的过河益智小游戏,通过控制台接收用户输入实现,逻辑不是很复杂,希望大家来搞
  • C#控制台小游戏

    2016-03-30 09:25:20
    控制台文字游戏
  • 入门很好的资源 控制台双人对战
  • C#入门级代码,在控制台中的贪吃蛇小游戏。墙壁、食物、蛇等都由字符表示,方向键操作,核心控制代码位于Game.cs文件中。
  • C# 控制台小游戏

    2007-10-23 09:16:00
    利用VS2005制作的控制台游戏, 高手可以添加丰富的代码修改。 多谢各位的指点。
  • 采用if循环嵌套进行判断的一个控制台的猜拳游戏 using System; namespace fg { class Program { static void Main(string[] args) { bool i = true; int score = 10;//初始积分 while (i) { Console....

    采用if嵌套进行判断的一个控制台的猜拳游戏

    using System;
    
    namespace fg
    {
        class Program
        {
            static void Main(string[] args)
            {
                bool i = true;
                int score = 10;//初始积分
                while (i)
                {
                    Console.WriteLine("输入拳头、剪子、布");
                    string hand = Console.ReadLine();
                    Random r = new();
                    int num = r.Next(1, 4);//随机生成[1,4)之间的整数
                    if (hand == "拳头")
                    {
                        if (num == 1)
                        {
                            Console.WriteLine("平局");
                            Console.WriteLine("当前积分为:" + score);
                        }
                        else if(num == 2)
                        {
                            Console.WriteLine("你赢了");
                            score++;
                            Console.WriteLine("当前积分为:" + score);
                        }
                        else if(num == 3)
                        {
                            Console.WriteLine("你输了");
                            score--;
                            Console.WriteLine("当前积分为:" + score);
                        }
                    }
                    else if(hand == "剪子")
                    {
                        if (num == 1)
                        {
                            Console.WriteLine("你输了");
                            score--;
                            Console.WriteLine("当前积分为:" + score);
                        }
                        else if (num == 2)
                        {
                            Console.WriteLine("平局");
                            Console.WriteLine("当前积分为:" + score);
                        }
                        else if (num == 3)
                        {
                            Console.WriteLine("你赢了");
                            score++;
                            Console.WriteLine("当前积分为:" + score);
                        }
                    }
                    else if(hand == "布")
                    {
                        if (num == 1)
                        {
                            Console.WriteLine("你赢了");
                            score++;
                            Console.WriteLine("当前积分为:" + score);
                        }
                        else if (num == 2)
                        {
                            Console.WriteLine("你输了");
                            score--;
                            Console.WriteLine("当前积分为:" + score);
                        }
                        else if (num == 3)
                        {
                            Console.WriteLine("平局");
                            Console.WriteLine("当前积分为:" + score);
                        }
                    }
                    else
                    {
                        Console.WriteLine("输入错误请重新输入");
                        score--;
                    }
                    if (score == 0)//积分为0则判断游戏失败
                    {
                        i = false;
                        Console.WriteLine("游戏结束,你输了");
                    }
                    else if(score == 20)//积分到20则判断游戏胜利
                    {
                        i = false;
                        Console.WriteLine("游戏结束,你赢了");
                    }
                }
            }
        }
    }
    
    

    效果如下
    在这里插入图片描述

    展开全文
  • c#控制台实现贪吃蛇小游戏

    千次阅读 2021-09-21 16:43:56
    有一天突发奇想,如果我只用算法实现基本逻辑,让控制台输出图像,不用任何组件,只用一门编程语言,能否实现一个可以人机交互的小游戏,抱着试一试的想法,博主用c#控制台程序复原了贪吃蛇玩法的小游戏。...

    写在前面:

            有一天突发奇想,如果我只用算法实现基本逻辑,让控制台输出图像,不用任何组件,只用一门编程语言,能否实现一个可以人机交互的小游戏,抱着试一试的想法,博主用c#控制台程序复原了贪吃蛇玩法的小游戏。

    目录

    一、可视化界面

    1.创建地图

     二、贪吃蛇基本逻辑

    1.蛇的定义

    2.控制移动

     3.创建食物

     三、大功告成


    一、可视化界面

            众所周知,控制台程序通常没有可视化的界面,只是通过字符串来显示或者监控程序,在使用控制台写程序时,我们只关心数据,不在乎界面。但是,如果我们偏偏反其道而行之,用控制台可视化形式将游戏界面动态反馈给玩家,该怎么办呢。

            在c#中,我们用Console.WriteLine()在控制台打印一行数据,如果我们将它嵌套在一个循环里面,那么它会不停的在控制台一行一行的打印数据。此时,对于输出的某一行来说,可以看作动画里面的一帧。(动画是因为通过连续播放许多帧静止的画面,使眼睛产生连续动作的错觉。其实说白了就是人的视觉停留造成了动画会动。)

            明白了这一点,我们写一个while循环,循环打印一段代码,并且,每次循环结束,让代码停顿0.5秒,使得人眼能跟上动态的帧率。实现一个石头从高处慢慢降落的过程。

    代码演示:

    int stonex = 10;//石头x初始值
    int stoney = 0;//石头y初始值
    while (true)
    {
        for (int y = 0; y < 20; y++)
        {
            for (int x = 0; x < 20; x++)
            {
                if (y == 0||y==19)
                {
                    Console.Write("-");
                    continue;
                }
                if (x == 0 || x == 19)
                {
                    Console.Write("|");
                    continue;
                }
                if (x == stonex && y == stoney)
                {
                    Console.Write("0");//输出石头
                    continue;
                }
                Console.Write(" ");
            }
            Console.WriteLine();
        }
        stoney++;//石头y值+1
        System.Threading.Thread.Sleep(500);//停顿0.5秒
    }

    1.创建地图

    明白原理之后,我们只要定义一个二维数组,用来存储地图的数据。再定义一个地图显示的方法,按照预定好的规则循环输出就好了。

    public static void ShowMap(int[,] map)
    {
        for (int y = 0; y < map.GetLength(0); y++)
        {
            for (int x = 0; x < map.GetLength(1); x++)
            {
                if (x == 0 || x == map.GetLength(1) - 1)
                {
                    Console.Write('|');
                    continue;
                }
                if (y == 0 || y == map.GetLength(0) - 1)
                {
                    Console.Write('-');
                    continue;
                }
                if (map[y, x] == 0)
                {
                    Console.Write(" ");
                    continue;
                }
                if (map[y, x] == 1)
                {
                    Console.Write(0);
                    continue;
                }
                if (map[y, x] == 6)
                {
                    Console.Write(0);
                    continue;
                }
    
            }
            Console.WriteLine();
        }
    }
    }

     二、贪吃蛇基本逻辑

            玩家操控一条蛇,上下左右控制蛇的方向,寻找吃的东西,每吃一口就能得到一定的积分,而且蛇的身子会越吃越长,身子越长玩的难度就越大,不能碰墙,不能咬到自己的身体,更不能咬自己的尾巴。

    1.蛇的定义

    首先定义一个“蛇“类,我们可以把蛇看成若干个节点,对于每个节点来说,都有一个前节点和尾节点,同时还有一个当前节点的位置。、

    public class Snake
    {
        private Direction dir;//当前位置
        public Snake qianqu;//前节点
        public Snake houji;//后节点
    
        //构造函数
        public Snake(Direction dir)
        {
            Dir = dir;
        }
        public Direction Dir { get => dir; set => dir = value; }
    }

    2.控制移动

    把蛇按节点分开来看之后,我们其实只用操作头节点,给定一个方向,头节点向该方向移动,而对于除了头节点以外的每个节点,我们要做的是,将后一个节点位置移动到前一个节点位置。这样,就实现了贪吃蛇的移动。

    public static void Move(Direction dir,ref Snake snake,ref int[,] map)
    {
        if (snake.houji != null) {
            Move(dir,ref snake.houji,ref map);
        }
        if (snake.qianqu == null)
        {
            snake.Dir.X += dir.X;
            snake.Dir.Y += dir.Y;
        }
        snake.Dir.X = snake.qianqu.Dir.X;
        snake.Dir.Y = snake.qianqu.Dir.Y;
    
    }

    移动方法定义好以后,我们只用传入一个方向,就可以改变蛇移动的方向,但控制台程序是单线程的程序,程序要怎么知道什么时候接收参数改变方向呢,这时候就用到多线程,第一个线程就是主函数,用来运行游戏的主要逻辑,第二个程序用来接收用户的输入,当用户按下按键之后,立马改变蛇的方向。

    public static void TancsMain()
    {
        direction = new Direction();
    
        ThreadStart start = new ThreadStart(run);
        Thread startThread = new Thread(start);
        startThread.Start();
        while (true)
        {
            ConsoleKeyInfo x = Console.ReadKey();
            if (x != null)
            {
                switch (x.KeyChar)
                {
                    case 's':
                        if (direction.X != -1)
                        {
                            direction.Y = 0;
                            direction.X = 1;
                        }
                        break;
                    case 'w':
                        if (direction.X != 1)
                        {
                            direction.Y = 0;
                            direction.X = -1;
                        }
                        break;
                    case 'a':
                        if (direction.Y != 1)
                        {
                            direction.Y = -1;
                            direction.X = 0;
                        }
                        break;
                    case 'd':
                        if (direction.Y != -1)
                        {
                            direction.Y = 1;
                            direction.X = 0;
                        }
                        break;
                    default:
                        break;
                }
            }
        }
    }

     3.创建食物

    用随机数随机创建一个食物位置,当蛇吃到食物时,创建一个节点。

    public static void CreatFood(ref int[,] map)
    {
        for (int y = 0; y < map.GetLength(0); y++)
        {
            for (int x = 0; x < map.GetLength(1); x++)
            {
                if (map[y, x] == 6)
                {
                    return;
                }
            }
        }
        Random random = new Random();
        random.Next(1, 19);
        map[random.Next(1, 19), random.Next(1, 39)] = 6;
    
    }

     

     三、大功告成

    到此、通过控制台实现贪吃蛇的小游戏就结束啦,博主也只是初学者,在枯燥的学习当中给自己找点乐子,如果看完了本篇文章,有兴趣的小伙伴也可以尝试做一个玩玩,实现的方法有很多,也不局限于我的思路。完整代码附上:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Threading;
    
    namespace ConsoleApp1
    {
        class Tancs
        {
            public static Direction direction;
    
    public static void TancsMain()
    {
        direction = new Direction();
    
        ThreadStart start = new ThreadStart(run);
        Thread startThread = new Thread(start);
        startThread.Start();
        while (true)
        {
            ConsoleKeyInfo x = Console.ReadKey();
            if (x != null)
            {
                switch (x.KeyChar)
                {
                    case 's':
                        if (direction.X != -1)
                        {
                            direction.Y = 0;
                            direction.X = 1;
                        }
                        break;
                    case 'w':
                        if (direction.X != 1)
                        {
                            direction.Y = 0;
                            direction.X = -1;
                        }
                        break;
                    case 'a':
                        if (direction.Y != 1)
                        {
                            direction.Y = -1;
                            direction.X = 0;
                        }
                        break;
                    case 'd':
                        if (direction.Y != -1)
                        {
                            direction.Y = 1;
                            direction.X = 0;
                        }
                        break;
                    default:
                        break;
                }
            }
        }
    }
    
            public static void CreatFood(ref int[,] map)
            {
                for (int y = 0; y < map.GetLength(0); y++)
                {
                    for (int x = 0; x < map.GetLength(1); x++)
                    {
                        if (map[y, x] == 6)
                        {
                            return;
                        }
                    }
                }
                Random random = new Random();
                random.Next(1, 19);
                map[random.Next(1, 19), random.Next(1, 39)] = 6;
    
            }
            public static void run()
            {
                direction.X = 1;
                direction.Y = 0;
                int[,] map = new int[20, 40];
                ShowMap(map);
                Console.ReadLine();
                Snake snake = new Snake(new Direction());
                snake.Dir.X = 3;
                snake.Dir.Y = 8;
                Snake snake2 = new Snake(new Direction());
                snake2.Dir.X = 2;
                snake2.Dir.Y = 8;
                Snake snake3 = new Snake(new Direction());
                snake2.Dir.X = 1;
                snake2.Dir.Y = 8;
                Snake snake4 = new Snake(new Direction());
                snake2.Dir.X = 0;
                snake2.Dir.Y = 8;
                snake.houji = snake2;
                snake2.qianqu = snake;
                snake2.houji = snake3;
                snake3.qianqu = snake2;
                snake3.houji = snake4;
                snake4.qianqu = snake3;
    
    
                while (true)
                {
                    Move(direction,ref snake,ref map);
                    ClearMap(ref map);
                    CreatFood(ref map);
                    ChangeMap(snake, ref map);
                    ShowMap(map);
                    System.Threading.Thread.Sleep(500);
                }
            }
            public static void Move(Direction dir,ref Snake snake,ref int[,] map)
            {
                if (snake.houji != null) {
                    Move(dir,ref snake.houji,ref map);
                }
                if (snake.qianqu == null)
                {
                    snake.Dir.X += dir.X;
                    snake.Dir.Y += dir.Y;
                    if (map[snake.Dir.X, snake.Dir.Y] == 6)
                    {
                        map[snake.Dir.X, snake.Dir.Y] = 0;
                        Snake temp = snake;
                        while (temp.houji != null)
                        {
                            temp = temp.houji;
                        }
                        Snake snake2 = new Snake(new Direction());
                        temp.houji = snake2;
                        snake2.qianqu = temp;
                        snake2.Dir.X = temp.Dir.X;
                        snake2.Dir.Y = temp.Dir.Y;
                    }
                    return;
                }
                snake.Dir.X = snake.qianqu.Dir.X;
                snake.Dir.Y = snake.qianqu.Dir.Y;
    
            }
            public static void ChangeMap(Snake snake,ref int[,] map)
            {
                map[snake.Dir.X, snake.Dir.Y] = 1;
                if (snake.houji != null)
                {
                    ChangeMap(snake.houji, ref map);
                }
            }
            public static void ClearMap(ref int[,] map)
            {
                for (int y = 0; y < map.GetLength(0); y++)
                {
                    for (int x = 0; x < map.GetLength(1); x++)
                    {
                        if (map[y, x] != 6)
                        {
                            map[y, x] = 0;
                        }
                        
                    }
                }
            }
            public static void ShowMap(int[,] map)
            {
                for (int y = 0; y < map.GetLength(0); y++)
                {
                    for (int x = 0; x < map.GetLength(1); x++)
                    {
                        if (x == 0 || x == map.GetLength(1) - 1)
                        {
                            Console.Write('|');
                            continue;
                        }
                        if (y == 0 || y == map.GetLength(0) - 1)
                        {
                            Console.Write('-');
                            continue;
                        }
                        if (map[y, x] == 0)
                        {
                            Console.Write(" ");
                            continue;
                        }
                        if (map[y, x] == 1)
                        {
                            Console.Write(0);
                            continue;
                        }
                        if (map[y, x] == 6)
                        {
                            Console.Write(0);
                            continue;
                        }
    
                    }
                    Console.WriteLine();
                }
            }
        }
        public class Snake
        {
            private Direction dir;//当前位置
            public Snake qianqu;//前节点
            public Snake houji;//后节点
    
            //构造函数
            public Snake(Direction dir)
            {
                Dir = dir;
            }
            public Direction Dir { get => dir; set => dir = value; }
        }
    
        public class Direction
        {
            private int x;
            private int y;
    
            public int X { get => x; set => x = value; }
            public int Y { get => y; set => y = value; }
        }
    
    }
    

     

    展开全文
  • c#控制台小游戏开发

    2012-11-12 11:26:16
    c#小程序,有源代码加程序,需要的可以下载并学习
  • 前几天我发布游戏exe文件,这几天整理了一下代码——源码下载,就马上来写博了。好了,开始正题了 程序类图如下: Program:程序类——main方法 Game:游戏类——游戏运行、角色基本信息调用 From:地图类...

       前几天我发布游戏exe文件,这几天整理了一下代码——源码下载,就马上来写博了。好了,开始正题了

       程序类图如下: 

     

    Program:程序类——main方法

    Game:游戏类——游戏运行、角色基本信息调用

    From:地图类——描绘游戏边框、提示信息

    Tank:坦克类——坦克绘制、行为、碰撞处理

    EnemyTank:敌方坦克类——坦克绘制、行为、碰撞处理

    Bullet:子弹类——子弹绘制、行为、碰撞处理

    Point:位置结构——记录坦克、子弹位置

    Direction:方向类——记录坦克、子弹方向

                当然这个游戏主要组成也是:地图,坦克绘制、行动、碰撞,子弹绘制、行动、碰撞,下面一一讲解:

         1.Map

     /// <summary>
            /// 绘制边框
            /// </summary>
            public void DrawBorder()
            {
                Console.ForegroundColor = ConsoleColor.Gray;
                Console.CursorVisible = false;
                Console.SetCursorPosition(Left, Top);
    
                Console.Write("┎" + new string('━', width) + "┒");
                for (int i = 0; i <= height; i++)
                {
                    if (i != height)
                    {
                        Console.SetCursorPosition(left, top + i + 1);
                        Console.Write("┃" + new string(' ', 2 * width) + "┃");
                    }
                    else
                    {
                        Console.SetCursorPosition(left, top + i + 1);
                        Console.Write("┗" + new string('━', width) + "┛");
                    }
                }
    
                Config.Config.func();
            }
    

      其中 Console.ForegroundColor——获取或设置当前控制台颜色
                  Console.CursorVisible——用来指示光标是否可见
                 Console.SetCursorPosition(, )——设置光标的位置
                  (以上三个在后面绘制都要用到,用法我就不再讲解了)

    看代码我可以知道者将获得一个框框的图案,这就是游戏的地图

    2.获取键盘事件

             /// <summary>
             /// 获得键盘按键状态
          /// </summary>
            /// <returns></returns>
            public bool StartInput()
            {
                ConsoleKeyInfo key;
                while (true)
                {
                    key = Console.ReadKey(true);
                    if (!HandleInput(key))
                    {
                        return false;
                    }
                }
             
                return true;
            }

      这个方法在Game类中是打开即加载,他是我们控制坦克上下左右和发射子弹方法,其中 Console.ReadKey(true);可以获得按下的键盘,内容是不断循环的,其中HandleInput(key)方法是控制坦克行为的方法,没执行一次,坦克走一步或者发射子弹,当返回false就跳出改方法

    3.物体之间碰撞的判断

     /// <summary>
           /// 判断是否碰到边框或者敌方坦克
           /// </summary>
           /// <param name="type"></param>
           /// <returns></returns>
            public int Collide(MoveType type)
            {
                int tan = 0;
    
                //左
                if (type == MoveType.Left)
                {
                        if ( x <= 1)
                        {
                            tan = x;
                        }
                        else
                        {
                            if (From.Map[x - 2, y-1] == 3 || From.Map[x - 2, y] == 3 || From.Map[x - 2, y+1] == 3)
                            {
                                tan = x;
                            }
                            else
                            {
                                x -= 1;
                                tan = x;
                            }
                           
                        }
                }
    
                //右
                if (type == MoveType.Right)
                {
                        if (x >= From.Width - width + 1)
                        {
                            tan = x;
                        }
                        else
                        {
                            if (From.Map[x + 2, y-1] == 3 || From.Map[x + 2, y] == 3 || From.Map[x + 2, y+1] == 3)
                            {
                                tan = x;
                            }
                            else
                            {
                                x += 1;
                                tan = x;
                            }
                           
                        }
                }
                //上
                if (type == MoveType.Up)
                {
    
                    if (y <= 1)
                    {
                        tan = y;
                    }
                    else
                    {
                        if (From.Map[x - 1, y - 2] == 3 || From.Map[x, y - 2] == 3 || From.Map[x + 1, y - 2] == 3)
                        {
                            tan = y;
                        }
                        else
                        {
                            y -= 1;
                            tan = y;
                        }
                       
                    }
                }
                //下
                if (type == MoveType.Down)
                {
                    if ( y > From.Height - 3)
                        {
                            tan = y;
                        }
                        else
                        {
                            if (From.Map[x - 1, y + 2] == 3 || From.Map[x, y + 2] == 3 || From.Map[x + 1, y + 2] == 3)
                            {
                                tan = y;
                            }
                            else
                            {
                                y += 1;
                                tan = y;
                            }
                          
                        }
                }
    
                return tan;
            }
    

      物体之间的碰撞。比如坦克与敌方坦克相碰怎样判断不让他们相互挡住对方,还有子弹击中敌方坦克判断使其爆炸。这的确是个头疼的问题,但是如果你仔细注意了每一次坦克或者子弹的绘制,其中From。map[,]我赋值都是不同的,己方坦克赋值2、敌方坦克赋值3、子弹赋值1,然后清除轨迹后所有都赋值0,看到上面的判断条件,想必大家也是知道怎么控制他们碰撞的判断了吧

    以上三个问题都是程序典型的问题。绘制,运行,碰撞,大家看懂一个其他自然都知道了,所以这里也不都全部拿出来了。当然还有一些大家看到时候要注意的地方:比如width,在绘制地图、坦克,还有他们移动,我用的都是用两个光标的位置,而长度都是用一个光标的位置。还有给From.Map[,]中的数组内位置添加值时候,要注意数组是以0开始的,而地图内容是从1开始的,所以他们每次添加值的时候我都要减1。

    好了,文章就写到这了,代码全部开源了,如果哪位朋友感兴趣,可以自己修改代码(非常欢迎扩展这个小游戏)。还有之前zzd网友提出个意见敌方坦克随即出现的问题,我这边也忘改了(太懒了,不想再动了),如果又不懂细节的网友(有些问题不好说清),可以加qq群253674268,欢迎大家一起交流。

    转载于:https://www.cnblogs.com/Dotaer/archive/2012/10/12/2719720.html

    展开全文
  • c#初学者食用
  • 大富豪C#控制台游戏

    2015-04-30 16:15:30
    本软件基于人们小时候童趣 ,而制作随着电子产品的迅速发展,游戏也日新月异, 游戏也越来越个性化, 也失去了劳作后休息和消遣的功能。...且现在网龄不断减小,所以我们针对该现状开发一款经典小游戏
  • C#或U3D初学者必做游戏。 该项目由vs2015编译,C#开发,已测试可以编译运行。 游戏功能:单人游戏、双人游戏,有背景音乐和提示音,可改变地图大小,游戏速度。 附带游戏说明及视频。
  • 话说这这个控制台游戏,其实我老早就想做...But,干好最近无意中找到了一个弹球的控制台小游戏,它给了我一核心的提示,(在这里太感谢这个游戏的作者了,谢谢),游戏下载连接——弹球游戏(有兴趣的盆友可以自己研...
  • 一个由简单代码编写的扫雷小游戏,但操作起来有点麻烦
  • (原创)C#控制台扫雷小游戏源码

    热门讨论 2013-07-16 13:50:59
    C#控制台实现的扫雷小游戏,适合初学者!更多信息请访问我的博客!
  • HeadQuarters:小型C#控制台管理游戏,以增加我的知识
  • c#控制台猜拳小游戏

    2013-06-23 00:01:08
    一个好玩的东东,无聊时玩玩,不错!如果有bug欢迎评论!
  • C#控制台小游戏吃豆人

    千次阅读 2018-08-27 10:11:13
    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Collections.Generic;...namespace 吃豆人__20180817__1 ...
  • 本文实例为大家分享了C#编写纸牌游戏的具体代码,供大家参考,具体内容如下 using System; using System.Collections.Generic; using System.Text; using System.Threading; namespace ConsoleApplication2 { ...
  • 骑士飞行棋 - C#控制台小游戏

    千次阅读 2014-11-08 20:30:11
    4、清屏,重新绘制界面,提示游戏开始 5、显示说明和图例 6、绘制地图之前,初始化关卡 7、绘制地图 8、玩家A和B轮流掷骰子 9、关卡效果 10、一方胜利,显示提示信息,游戏结束               ...
  • 自己模仿文曲星写的猜数字,都是刚学C#时候写的东西。
  • 飞行棋小游戏实现; 游戏规则: 1.两名玩家轮流掷骰子,规定A玩家先掷;2.踩到□格子安全,没有奖惩;3.踩到◎幸运轮盘,可以进行两种选择:a.置换与对方玩家的位置;b.进行轰炸对方,使对方倒退6步;4.踩到★地雷,倒退6步...
  • 自学C#的时候编写的作业性质的幼稚程序,有刚接触的C#的人可以参考一下。
  • C#控制台RPG游戏,面向对象练习

    千次阅读 多人点赞 2018-07-09 11:34:26
    简介闲来无事写的一个C#控制台应用程序,本RPG游戏有多种角色属性供你选择,拥有技能,商店,丰富的战斗系统和升级功能。学习C#的朋友可以看一看,对面向对象很有帮助。使用了封装 继承和多态思想。项目实例截图部分...
  • 主要为大家详细介绍了C#控制台实现飞行棋游戏,具有一定的参考价值,感兴趣的伙伴们可以参考一下
  • 使用C#语言开发的VS控制台应用程序,修改了控制台默认的颜色,使用自定义的配色,有背景音乐和音效,与原作相似度90%,编译无错,注释详细,和大家分享一下,一起学习进步!
  • 迷宫小游戏,主要使用二维数组,栈Stack,自定义操作符operator,递归遍历等功能。 在VS2017中,新建控制台应用程序MazeDemo,选择.net framework 4.5。 一、新建一个枚举Direction,用于记录方向。Direction.cs...
  • C#五子棋练手小项目源码,控制台五子棋小游戏,包括棋盘绘图,棋子布局,键盘控制下棋子,分两个玩家,控制台显示,可以作为初学者练习代码功底

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,165
精华内容 2,066
关键字:

c#控制台小游戏

c# 订阅
友情链接: PropertyListCtrl_src.zip