今天从上午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("*****************