黑马程序员——飞行棋(一)
来源:互联网 发布:拉格朗日插值算法程序 编辑:程序博客网 时间:2024/06/12 21:43
---------------------- ASP.Net+Android+IO开发S、.Net培训、期待与您交流! -----------------------
在黑马的基础教程中有一个飞行棋的游戏,一开始没打算做,可是让自己做思路还很乱,所以,我就把视频下下来了。
规则很简单,就是两人来回掷骰子,然后往前走,谁先走到头,谁就赢了。其中有特殊点,可以往前走几步,和玩家交换位置等。
现在就上源码,今天就先把地图画出来,用控制台完成:
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace 飞行棋{ class Program { static int[] Map = new int[100];//定义数组存储地图 static int[] gamerPos = new int[2];//定义玩家坐标 static void Main(string[] args) { ShowUI(); string[] name = new string[2];//存储玩家姓名 Console.WriteLine("请输入玩家A的名字"); name[0] = Console.ReadLine(); while (name[0] == "") { Console.WriteLine("玩家A姓名不能为空!请重新输入"); name[0] = Console.ReadLine(); } Console.WriteLine("请输入玩家B的名字"); name[1] = Console.ReadLine(); while (name[1] == "" || name[1] == name[0]) { if (name[1] == "") { Console.WriteLine("玩家B的姓名不能为空!请重新输入"); } else { Console.WriteLine("玩家B的姓名与玩家A姓名相同,请重新输入"); } name[1] = Console.ReadLine(); } Console.Clear(); ShowUI(); Console.WriteLine("游戏开始。。。"); Console.WriteLine("{0}代表A玩家", name[0]); Console.WriteLine("{0}代表B玩家", name[1]); Console.WriteLine("当玩家同时在一个位置的时候,用<>表示"); InitialMap();//初始化地图 drawMap();//绘制地图 Console.ReadKey(); } /// <summary> /// 绘制游戏头部 /// </summary> static void ShowUI() { Console.WriteLine("************************************************"); Console.WriteLine("* *"); Console.WriteLine("* 飞 行 棋 *"); Console.WriteLine("* *"); Console.WriteLine("************************************************"); } /// <summary> /// 初始化地图 /// </summary> static void InitialMap() { int[] luckyTurn = { 6, 23, 35, 45, 63, 89 };//幸运转盘 int[] landMain = { 8, 25, 34, 86, 90 };//地雷 int[] pause = { 12, 27, 56, 70 };//暂停 int[] timeTunnel = { 3, 15, 29, 59, 68, 88, 90, 97 };//时空隧道 for (int i = 0; i < luckyTurn.Length; i++)//循环初始化幸运转盘,用1代表 { int num=luckyTurn[i]; Map[num] = 1; } for (int i = 0; i < landMain.Length; i++)//循环初始化地雷,用2代表 { int num = landMain[i]; Map[num] = 2; } for (int i = 0; i < pause.Length; i++)//循环初始化暂停,用3代表 { int num = pause[i]; Map[num] = 3; } for (int i = 0; i < timeTunnel.Length; i++)//循环初始化时空隧道,用4代表 { int num = timeTunnel[i]; Map[num] = 4; } } /// <summary> /// 绘制地图 /// </summary> static void drawMap() { for (int i = 0; i < 30; i++) { Console.Write(GetString(i));//绘制第一行 } Console.WriteLine(); for (int i = 30; i < 35; i++) { for (int j = 0; j < 29; j++) { Console.Write(" "); } Console.WriteLine(GetString(i)); } for (int i = 63; i >= 35; i--) { Console.Write(GetString(i)); } for (int i = 64; i < 70; i++) { Console.WriteLine(GetString(i)); } for (int i = 70; i < 100; i++) { Console.Write(GetString(i)); } } /// <summary> /// 根据坐标获取地图图形 /// </summary> /// <param name="pos"></param> /// <returns></returns> static string GetString(int pos) { string result=""; if (gamerPos[0] == pos && gamerPos[1] == pos)//两个玩家的坐标相同,用<>表示 { result= "<>"; } else if (gamerPos[0] == pos)//A表示第一个玩家name[0] { result = "A"; } else if (gamerPos[1] == pos)//B表示第二个玩家name[1] { result = "B"; } else { switch (Map[pos]) { case 0: result = "□";//普通方格 break; case 1: result = "※";//幸运轮盘,1,可以轰炸对方 2,交换位置 break; case 2: result = "◎";//地雷,往后退格 break; case 3: result = "△";//暂停 break; case 4: result = "☆";//时空隧道 break; } } return result; } }}最后程序运行效果图:
未完待续,......
---------------------ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------
详细请查看:http://edu.csdn.net
- 黑马程序员——飞行棋(一)
- 黑马程序员-飞行棋
- 黑马程序员——C#版骑士飞行棋
- 黑马程序员——骑士飞行棋C#代码
- 黑马程序员--飞行棋(二)
- 黑马程序员——骑士飞行棋(我的第一个游戏程序)
- 黑马程序员--飞行棋体会
- 黑马程序员-骑士飞行棋
- 黑马程序员-骑士飞行棋
- 黑马程序员 骑士飞行棋
- 黑马程序员-骑士飞行棋
- 黑马程序员-飞行棋练习
- 黑马程序员-----------骑士飞行棋
- 黑马程序员__飞行棋
- 黑马程序员——C#面向过程复习之飞行棋
- 黑马程序员——.NET笔记6 飞行棋思路总结
- 【黑马程序员】一个简单的小游戏——骑士飞行棋
- 黑马程序员—我在学习飞行棋的时候发现的一些问题
- Train for kirara 总结
- OC学习之形参,实参,brake,switch,指针,面对对象
- hdu 4336 Card Collector
- diff & patch
- YbSoftwareFactory 代码生成插件【十四】:通过 DynamicLinq 简单实现 N
- 黑马程序员——飞行棋(一)
- hdu1209 Clock
- 新人学习opencv笔记(一)
- WinCE6.0 USB Function驱动加载流程
- 变量运算符和表达式
- jquery计算和
- expect脚本解释
- openstack-cinder_lvm_driver命令汇总
- iOS开发 frame 与 bounds 的区别与关系