飞行棋之简单框架---游戏头和初始化地图

简介: 飞行棋之简单框架---游戏头和初始化地图

说起”飞行棋“,一部分人会想到这个游戏怎么怎么样,有哪些特点……但学习到C#视频的伙伴想到的可能是这个开头怎么写,文字的是如何更美观的显示出来的,代码是怎么减少冗余的……而我想到的就是如何入让这个游戏即好玩代码又少!首先这个游戏的基本页面大概是这个样子。


9d6094c9a396c9a880c3eb2e69d2424b_watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTMwOTE1NQ==,size_16,color_FFFFFF,t_70.png


两个人首先掷色子得出走的步数,根据图中每个图形代表的含义去走下去,哪位选手先走到最后就是赢家。


那么这个游戏不变的是最上面的花框和里面的文字,我们在这里暂时先称为游戏头。那么这个就相对于比较简单一些,只需要在屏幕上显示出来即可。

Console.WriteLine("****************************************");
            Console.WriteLine("*                                      *");
            Console.WriteLine("*        终极骑士飞行棋20201031        *");
            Console.WriteLine("*                                      *");
            Console.WriteLine("****************************************");

只需要这几行代码就可以很容易的显示出来,如果有自己喜欢的形状,可以根据自己的喜好来书写代码。


完成了游戏头就可以开始地图的设计。我们观察地图很容易发现在地图中有不同的图形,那么怎么把其中夹杂的其他图形也显示出来呢?就需要利用数组的方式来把他们显示出来。我们只需要知道每一个特殊的图形有哪个位置就好。代码如下:


//用0表示普通,显示给用户为□
            //用1表示幸运轮盘,显示给用户为⭕
            //用2表示地雷,显示给用户为☆
            //用3表示暂停,显示给用户为🔺
            //用4表示时空隧道,显示给用户为卐 
            int[] luckyturn = { 6, 23, 40, 55, 69, 83 };//幸运轮盘
            int[] landMine = { 5, 13, 17, 33, 38, 50, 64, 80, 94 };//地雷
            int[] pause = { 9, 27, 60, 93 };//暂停
            int[] timeTunnel = { 20, 25, 45, 63, 72, 88, 90 };//时空隧道
            //把数组中下标为6,23,40,55,69,83的地方的值改为1
            for (int i = 0; i < luckyturn.Length; i++)
            {
                Map[luckyturn[i]] = 1; //把幸运轮盘初始化进去
            }
            for (int i = 0; i < landMine.Length; i++)
            {
                Map[landMine[i]] = 2;
            }
            for (int i = 0; i < pause.Length; i++)
            {
                Map[pause[i]] = 3;
            }
            for (int i = 0; i < timeTunnel.Length; i++)
            {
                Map[timeTunnel[i]] = 4;
            }
        }

这样把每一类的图形给一个特定数字就可以在之后“显示地图的形状”中很简单的利用起来。

以上是最近学习的一部分总结,如有谬误,欢迎斧正!


相关文章
|
消息中间件 存储 缓存
RabbitMQ之消息应答和持久化
【1月更文挑战第11天】 一、消息应答 1.概念 2.自动应答 3.消息应答方法 4.Multiple 的解释 5.消息自动重新入队 6.消息手动应答代码 7.手动应答效果演示 二、RabbitMQ持久化 1.概念 2.队列如何实现持久化 3.消息实现持久化 4.不公平分发 5.预取值
451 72
|
Java Go 开发工具
MacOS Java+golang build protoc gRPC 代码生成
MACOS Java+golang GRPC 代码生成 下载protobuf git clone https://github.com/protocolbuffers/protobuf.git git checkout 3.
4417 0
|
缓存 负载均衡 应用服务中间件
深入解析Nginx配置文件
Nginx是一个高性能HTTP服务器和反向代理,其配置文件`nginx.conf`包含全局、事件、HTTP、Server和Location块。全局块设置如用户和工作进程数,事件块设定连接数,HTTP块涉及MIME类型、日志和包含其他配置。Server块定义虚拟主机,Location块处理URI匹配。Nginx常用于反向代理和负载均衡,如`proxy_pass`指令转发请求至后端服务器组。理解这些配置有助于服务器优化和测试。
|
10月前
|
人工智能 算法 大数据
Linux内核中的调度算法演变:从O(1)到CFS的优化之旅###
本文深入探讨了Linux操作系统内核中进程调度算法的发展历程,聚焦于O(1)调度器向完全公平调度器(CFS)的转变。不同于传统摘要对研究背景、方法、结果和结论的概述,本文创新性地采用“技术演进时间线”的形式,简明扼要地勾勒出这一转变背后的关键技术里程碑,旨在为读者提供一个清晰的历史脉络,引领其深入了解Linux调度机制的革新之路。 ###
|
消息中间件 存储 NoSQL
MQ的顺序性保证:顺序队列、消息编号、分布式锁,一文全掌握!
【8月更文挑战第24天】消息队列(MQ)是分布式系统的关键组件,用于实现系统解耦、提升可扩展性和可用性。保证消息顺序性是其重要挑战之一。本文介绍三种常用策略:顺序队列、消息编号与分布式锁,通过示例展示如何确保消息按需排序。这些方法各有优势,可根据实际场景灵活选用。提供的Java示例有助于加深理解与实践应用。
729 2
|
JavaScript 前端开发 数据可视化
Three.js第2篇,加载glb / gltf模型,Vue加载glb / gltf模型(如何在vue中使用three.js,vue使用threejs加载glb模型)
Three.js 是一个用于在 Web 上创建和显示 3D 图形的 JavaScript 库。它提供了丰富的功能和灵活的 API,使开发者可以轻松地在网页中创建各种 3D 场景、模型和动画效果。可以用来展示产品模型、建立交互式场景、游戏开发、数据可视化、教育和培训等等。这里记录一下如何在Vue项目中使用Three.js
3050 4
Three.js第2篇,加载glb / gltf模型,Vue加载glb / gltf模型(如何在vue中使用three.js,vue使用threejs加载glb模型)
|
Java UED
Java多线程实现文件上传详解
文件上传是Web应用程序中常见的功能之一,用户可以通过网页将文件从本地计算机上传到服务器。在处理大文件或多用户并发上传的情况下,为了提高性能和用户体验,常常使用多线程来实现文件上传功能。本文将详细介绍如何使用Java多线程实现文件上传,包括上传原理、多线程实现、代码示例等内容。
469 0
|
存储 Prometheus 监控
性能监控之国产时序库TDengine TDinsight dashboard 指标解析
【2月更文挑战第1天】性能监控之国产时序库TDengine TDinsight dashboard 指标解析
1057 1
性能监控之国产时序库TDengine TDinsight dashboard 指标解析
|
开发框架 .NET Linux
基于 Alpine 环境构建 aspnetcore6-runtime 的 Docker 镜像
apline linux 环境,构建 asp.net core 应用程序的基础镜像。--- The glow of a firefly may be faint, but when it shines, it challenges the darkness.
817 1