黑马程序员---飞行棋的编程

本文记录了一次编程飞行棋游戏的过程,从理解复杂代码到重构为清晰易懂的版本。使用VS2013进行开发,允许使用中文方法名,方便不熟悉英语的同桌理解。游戏涉及玩家输入、清屏、游戏规则等功能,并指出当前存在的问题,如玩家可能离开地图、只有一名玩家游戏、暂停功能等,为后续的面向对象学习打下基础。
摘要由CSDN通过智能技术生成

今天从上午10点开始, 老师就一直给我讲解这个游戏的制作过程. 写到晚上代码写了一坨, 吃完饭再回来看, 其实我根本不知道哪句代码是干什么的.

经过我一堂课的改造, 终于把它改写成了简单易懂, 更易维护的游戏了.

因为要给同桌讲解, 他英语不是很好, 幸好VS2013可以用中文作方法名, 看起来简单明了.

这也是C#基础的一个综合应用了, 明天开始学面向对象, 感觉又变的高级了.


下面是这个游戏的主要思路:

1、绘制游戏Logo

2、对地图进行初始化,其实就是给Maps这个整数数组进行赋值。
3、一行一行的绘制游戏地图。
--->我们首先应该确定玩家A跟玩家B的坐标,因为他们的坐标是时时刻刻都在改变的。
--->声明一个数组,用来存储玩家A跟玩家B的坐标。
--->static int[] PlayerPos = new int[2];
--->绘制第一横行
--->首先确定A、B坐标
--->A跟B的坐标一样,此时我们绘制一对<>
--->如果A跟B不一样,那么该绘制A就绘制A,否则绘制B。
--->将第一横行中用到的那一坨if判断提炼成了一个方法,因为绘制每一行所采用的判断条件都是一样的。
DrawStringMap(当前这一个关卡的坐标作为参数,返回当前这个关卡的字符串)
--->绘制第一竖行
-->由于第一竖行是从控制台的右边换行,所以我们在绘制每一个关卡前应该 先用空格填充(for循环的嵌套)
--->绘制第二横行
-->倒序循环

4、分别输入两个玩家的用户名

5、清屏 重新调用GameLogo,然后输出相应的文本

6、玩家A跟玩家B不停进行游戏要满足的条件就是两个人的坐标同时都要小于99
7、游戏规则
--->首先判断移动的玩家是否踩到了另一个玩家,如果踩到了,被踩到的玩家应该退6格
--->如果移动的玩家没有踩到另一个玩家,那么我们则判断移动的玩家踩到了哪一个关卡上。
--->如果踩到了方块,则什么都不发生
--->如果踩到了关卡
--->如果踩到了幸运轮盘,则提示玩家选择 1--交换位置  2--轰炸对方,是对方退6格
--->如果踩到了地雷,踩到地雷的玩家应该退6格
--->如果踩到了暂停,则暂停一回合
--->如果踩到了时空隧道,则前进10格

问题:
--->玩家A跟玩家B有可能被干出这个地图
--->写函数来限定玩家A跟玩家B的坐标
--->凡是坐标改变的地方都应该调用ChangePos
--->目前只有玩家A在玩
--->暂停功能

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication2
{
    class Program
    {
        static int[] map = new int[100];
        static int[] playPos = new int[2];
        static string[] playName = new string[2];
        static Random rd = new Random();
        static bool[] playFlag = new bool[2] { true, true };
        //static int num = 0;


        public static void DrawTheLogo()
        {
            Console.ForegroundColor = ConsoleColor.Blue;
            Console.WriteLine("********************************");
            Console.ForegroundColor = ConsoleColor.Blue;
            Console.WriteLine("*****************
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值