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

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

说起”飞行棋“,一部分人会想到这个游戏怎么怎么样,有哪些特点……但学习到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;
            }
        }

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

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


相关文章
|
3月前
|
开发者
Mac Axure RP 9.dmg 安装教程 简单步骤 含汉化方法
Axure RP 9 是专为原型设计打造的工具,适用于绘制网页与APP交互稿,支持无代码预览产品效果。本文介绍其在Mac上的下载、安装、授权及中文汉化步骤,助你快速上手使用。(238字)
1539 3
|
Ubuntu Linux 网络安全
RK3588 开发板上根文件系统导出并制作img镜像
RK3588 开发板上根文件系统导出并制作img镜像
5315 1
|
监控 关系型数据库 MySQL
MySQL 5.7在高并发下性能劣化问题的详细剖析
TL;DR MySQL 5.7高并发读写混合场景下rt飙升,业务系统大量超时报错。本文总结了阿里业务场景下遇到的坑,剖析问题背后的原因,帮助读者更好的理解MySQL内核原理,降低升级MySQL 5.7的风险。
10343 0
|
8月前
|
存储 物联网 关系型数据库
基于STM32和ESP8266的智慧考勤系统设计与实现【免费开源】
本文介绍了一个基于 STM32F103ZET6 + ESP8266 Mesh 的智慧考勤系统,涵盖了硬件架构、软件设计、网络组网、服务器端实现与数据导出。该系统不仅实现了考勤自动化,还支持多点分布式部署,具有良好的扩展性与应用价值。
阿里云CDN怎么收费?看这一篇就够了,CDN不同计费模式收费价格全解析
阿里云CDN的费用由基础费用和增值费用组成。基础费用有三种计费方式:按流量、按带宽峰值和月结95带宽峰值,默认为按流量计费,价格根据使用量阶梯递减。增值费用包括静态HTTPS请求、QUIC请求等,按实际使用量收费,不使用不收费。具体收费标准和详细规则可参考阿里云官方页面。
|
存储 关系型数据库 索引
什么是聚簇索引及其优缺点?
聚簇索引并不是单独的索引类型,而是一种数据存储方式。 B+树索引分为聚簇索引和非聚簇索引,主键索引就是聚簇索引的一种,非聚簇索引有复合索引、前缀索引、唯一索引。 在innodb存储引擎中,表数据本身就是按B+树组织的一个索引结构,聚簇索引就是按照每张表的主键构造一颗B+树,同时叶子节点中存放的就是整张表的行记录数据,也将聚簇索引的叶子节点成为数据页。 Innodb通过主键聚集数据,如果没有定义主键,innodb会选择非空的唯一索引代替。如果没有这样的索引,innodb会隐式的定义一个主键来作为聚簇索引。 非聚簇索引又称为辅助索引,InnoDB访问数据需要两次查找,辅助索引叶子节点存储的不再是行
|
自然语言处理 算法 API
一文揭秘|如何速成RAG+Agent框架大模型应用搭建(一)
一文揭秘|如何速成RAG+Agent框架大模型应用搭建
736 0
|
人工智能 算法 大数据
Linux内核中的调度算法演变:从O(1)到CFS的优化之旅###
本文深入探讨了Linux操作系统内核中进程调度算法的发展历程,聚焦于O(1)调度器向完全公平调度器(CFS)的转变。不同于传统摘要对研究背景、方法、结果和结论的概述,本文创新性地采用“技术演进时间线”的形式,简明扼要地勾勒出这一转变背后的关键技术里程碑,旨在为读者提供一个清晰的历史脉络,引领其深入了解Linux调度机制的革新之路。 ###
|
Java UED
Java多线程实现文件上传详解
文件上传是Web应用程序中常见的功能之一,用户可以通过网页将文件从本地计算机上传到服务器。在处理大文件或多用户并发上传的情况下,为了提高性能和用户体验,常常使用多线程来实现文件上传功能。本文将详细介绍如何使用Java多线程实现文件上传,包括上传原理、多线程实现、代码示例等内容。
693 0
|
消息中间件 存储 NoSQL
MQ的顺序性保证:顺序队列、消息编号、分布式锁,一文全掌握!
【8月更文挑战第24天】消息队列(MQ)是分布式系统的关键组件,用于实现系统解耦、提升可扩展性和可用性。保证消息顺序性是其重要挑战之一。本文介绍三种常用策略:顺序队列、消息编号与分布式锁,通过示例展示如何确保消息按需排序。这些方法各有优势,可根据实际场景灵活选用。提供的Java示例有助于加深理解与实践应用。
1172 2

热门文章

最新文章