dotnet C# 推荐一个适合新手入门阅读学习的控制台游戏项目
对于 C# 编程新手,学习语法和框架是必要的,但是如何将它们灵活地运用到实际项目中,是一个更高层次的挑战。如果只是死记硬背语法规则和框架用法,而没有足够的编程实践,很难提高编程水平和逻辑思维。这个时候,阅读一些优秀的开源项目,可以让我们从中学习到别人的编码风格、代码组织方式,代码逻辑编写等等,从而提升自己的 C# 语言能力和对 dotnet 框架的掌握。本文要推荐给大家的,是一个非常有趣且适合新手入门的控制台游戏项目。这个项目是 dotnet 组织下的一个开源项目,里面包含了许多经典游戏,这些游戏都是用 C# 语言编写的,而且只用到了基础控制台功能,没有涉及到复杂的图形界面或者网络通信等技术。因此,这个项目对于前置知识要求很低,只要你掌握了 C# 的基本语法和数据结构,就可以轻松地阅读和理解它们。同时,这些游戏又非常有趣和富有挑战性,你可以在玩游戏的同时学习到很多编程技巧和逻辑思路。这个项目看起来十分适合新手阅读和学习
项目地址: https://github.com/dotnet/dotnet-console-games
可以使用 git 命令将整个代码仓库拉下来,或者是在 github 上使用 zip 包方式下载整个项目的代码。如卡下载这一步了,还请自行学习 git 的基础使用方法。在阅读和运行这些 C# 控制台游戏项目之前,你需要准备一个合适的开发环境。我强烈建议你使用最新的 VisualStudio 版本,比如编写这篇博客时最新的 VisualStudio 2022 版本,来编写和调试 C# 代码。请确保是在正常的 https://visualstudio.microsoft.com/ 官网下载的 VisualStudio 最新版本工具。不要使用旧的 VisualStudio 版本,比如 VisualStudio 2015 等。因为我们是学习最新的 C# 语言和 dotnet 框架,不是去挖掘古代文明,不要用过时的工具来限制自己的学习效果。而且使用过时的工具也会遇到好多奇奇怪怪的问题,比如兼容性、性能、稳定性等等。如果你在技术群里提出这些问题,可能会让大佬们不开森,因为他们觉得你没有跟上时代的步伐,还在用落伍的工具。所以,为了你自己的学习效果和体验,还是尽快升级到最新的 VisualStudio 版本吧
接下来,我会简单地介绍一下这个开源项目里面的一些游戏,并给出它们的代码链接和运行效果图。你可以点击链接下载或者克隆代码到本地运行,并且尝试着阅读和理解它们。如果你有兴趣,你甚至可以尝试着修改或者增加一些功能,让游戏更加完善或者有趣
贪吃蛇:这是一个非常经典且简单的游戏,在控制台中用字符表示蛇和食物,并且通过键盘控制蛇的移动方向。每当蛇吃到食物时,蛇就会变长,并且食物会随机出现在其他位置。如果蛇碰到自己或者边界,则游戏结束。这个游戏主要涉及到了数组、链表、随机数等数据结构和算法。 运行效果图:
<<<<<<^
v ^
v >>>
v
v>>>>>>>>>>>>>
在这个贪吃蛇项目里面,使用 + 代表食物,使用箭头类符号表示蛇。可以通过 ↑ ↓ ← → 修改方向
飞镖投掷游戏:在控制台中用字符表示飞镖和靶子,并且通过键盘控制飞镖的角度和力度。每次投掷后,根据飞镖落点的不同区域,会得到不同的分数。这个游戏主要涉及到了数学、物理、随机数等知识和算法,大概不到 500 行的代码量
以下是游戏运行的界面示例
╔═══════╤═══════╤═══════╤═══════╤═══════╗
║ │ │ │ │ ║
║ 1 │ 2 │ 3 │ 2 │ 1 ║
║ ┌┴┐ ┌─┴─┐ ┌─┴─┐ ┌┴┐ ║
╟──────┤6├────┤ 5 ├───┤ 5 ├────┤6├──────╢
║ └┬┘ ○ └─┬─┘ └─┬─┘ └┬┘ ║
║ 2 │ 3 │ 4 │ 3 │ 2 ║
║ │ │ ┌─○ │ │ ║
╟───────┼───────┼●─┤9├──┼───────┼───────╢
║ │ │ └─┘ │ │ ║
║ 2 │ 3 │ 4 ● │ 3 │ 2 ║
║ ┌┴┐ ○─┴─┐ ┌─┴─┐ ┌┴┐ ║
╟──────┤6├────┤ 5 ├───┤ 5 ├────┤6├──────╢
║ └┬┘ └─┬─┘ └─┬─┘ └┬┘ ║
║ 1 │ 2 │ 3 │ 2 │ 1 ║
║ │ │ │ │ ║
╚═══════╧═══════╧═══════╧═══════╧═══════╝
Your darts: ○
Computer's darts: ●
乒乓球游戏:在控制台中用字符表示球和挡板,并且通过键盘控制挡板的上下移动。每次球碰到挡板或者边界时,会反弹并且改变方向。每次越过对方的挡板,就会得到一分。第一个得到三分的玩家就是胜利者。这个游戏主要涉及到了循环、判断、数组等知识和算法,大概 200 行的代码量。运行游戏界面大概如下
^
/ \
█ / \
█ / \
█# / \
█ \ / O █
\ / █
\ / █
\ / █
\ /
V
在这里,我想和大家分享一下我阅读这些 C# 控制台游戏项目的一些心得和体会。首先,我觉得这些项目都非常有趣和有教育意义,它们让我看到了 C# 语言和 dotnet 框架的强大和灵活,以及控制台程序的魅力和可能性。我从中学习到了很多 C# 编程的技巧和知识,比如如何使用数组、链表、枚举、位运算等数据结构和算法,如何使用循环、判断、递归等控制流程,如何使用随机数、数学函数、物理公式等工具类,如何使用控制台的输入输出、颜色、光标等功能,以及如何使用面向对象、设计模式、异常处理等编程范式和技术。这些项目让我对 C# 语言和 dotnet 框架有了更深入的理解和掌握,也提高了我的编程水平和逻辑思维。其次,我觉得这些项目都非常富有挑战性和创造性,它们让我看到了编程的乐趣和艺术。我在玩这些游戏的同时,也在思考它们是如何实现的,它们背后的原理和思路是什么,它们有什么优点和缺点,它们可以如何改进和优化。我也尝试着修改或者增加一些功能,比如增加难度、增加音效、增加动画等等。我发现这些游戏都有很多可以扩展和改进的空间,只要你有想法和创意,你就可以把它们变得更加完善或者有趣。这些项目让我体验到了编程的乐趣和艺术,也激发了我的创造力和想象力。
最后,我觉得这些项目都非常值得推荐给大家,无论你是 C# 编程新手还是老手,无论你是想学习 C# 语言还是想玩一玩控制台游戏。这些项目都可以给你带来很多收获和乐趣,也可以让你对 C# 语言和 dotnet 框架有一个更全面和深入的认识。如果你对这些项目感兴趣,不妨去试一试吧。相信你一定会有很多惊喜和发现
dotnet C# 推荐一个适合新手入门阅读学习的控制台游戏项目的更多相关文章
- 问题集录--新手入门深度学习,选择TensorFlow 好吗?
新手入门深度学习,选择 TensorFlow 有哪些益处? 佟达:首先,对于新手来说,TensorFlow的环境配置包装得真心非常好.相较之下,安装Caffe要痛苦的多,如果还要再CUDA环境下配合O ...
- Webpack新手入门教程(学习笔记)
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; text-align: center; font: 30.0px Helvetica; color: #000000 } ...
- CSS超全笔记(适合新手入门)
CSS CSS初识 CSS(Cascading Style Sheets) 美化样式 CSS通常称为CSS样式表或层叠样式表(级联样式表),主要用于设置HTML页面中的文本内容(字体.大小.对齐方式等 ...
- 最适合新手入门的SpringCloud教程 6—Ribbon负载均衡「F版本」
SpringCloud版本:Finchley.SR2 SpringBoot版本:2.0.3.RELEASE 源码地址:https://gitee.com/bingqilinpeishenme/Java ...
- HTML笔记(适合新手入门)
HTML Web 标准构成 Web标准不是某一个标准,而是由W3C和其他标准化组织制定的一系列标准的集合. 主要包括结构(Structure).表现(Presentation)和行为(Behavior ...
- 推荐net开发cad入门阅读代码片段
转载自 Cad人生 的博客 链接:http://www.cnblogs.com/cadlife/articles/2668158.html 内容粘贴如下,小伙伴们可以看看哦. using Syst ...
- H5新标签(适合新手入门)
H5新标签 文档类型设定 document HTML: sublime 输入 html:4s XHTML: sublime 输入 html:xt HTML5 sublime 输入 html:5 < ...
- 适合新手入门Spring Security With JWT的Demo
Demo 地址:https://github.com/Snailclimb/spring-security-jwt-guide .欢迎 star! Spring Security 是Spring 全家 ...
- (新手入门,学习笔记)通过NPM进行Vue.js的安装
NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,本文只介绍如何通过NPM进行安装Vue.js NodeJS官方网站:http://nodejs.cn/downlo ...
- 【强烈推荐】可能是最适合你的 Java 学习路线和方法
如遇链接无法打开,建议使用 https://github.com/Snailclimb/JavaGuide/blob/master/docs/questions/java-learning-path- ...
随机推荐
- tableau 工作表分页
原创优阅达数据科技有限公司 https://mp.weixin.qq.com/s?__biz=MzA5MTU3NDI2NQ==&mid=2649465570&idx=1&sn= ...
- drools中使用function
一.背景 当我们在drools中编写规则时,有些时候存在重复的代码,那么我们是否可以将这些重复代码抽取出来,封装成一个function来调用呢?那么在drools中如何自定义function? 二.需 ...
- Java SM2
pom <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http:// ...
- cadence软件画版图操作
cadence软件操作 1.原理图设计 电路的原理图设计和许多的电路设计软件是类似的,这里大致介绍一下基本的操作. 首先是新建一个cell的原理图: library manager>file&g ...
- 腾讯tvp之路
王清培 腾讯tvp之路
- Scala变量和常量的声明
标示符的命名规则 1. 字母或下划线开头 2. 以操作符开头,且只包含操作符(+ - * / # !等) 3. 用反引号`....`包括的任意字符串,即使是 Scala 关键字(39 个)也可以• p ...
- Sealos 开源初创公司 Trending 全球 TOP50,中国第二!
今年,Runa Capital (鲁纳资本) 评选出了 2023 年增长最快的 50 家开源创业公司,Sealos 压轴登场,总共有两家中国公司上榜,Sealos 排名第二. Runa Capital ...
- 未来已来,OpenHarmony 3.2 Release发布,迈入发展新阶段
2023年4月9日,在社区开发者的期盼中,在春风送暖万物更新的季节里,我们迎来了OpenAtom OpenHarmony(以下简称"OpenHarmony")3.2 Relea ...
- 【直播回顾】OpenHarmony知识赋能五期第四课——子系统音频解读
5月12日晚上19点,知识赋能第五期第四节课<OpenHarmony标准系统多媒体子系统之音频解读>,在OpenHarmony开发者成长计划社群内成功举行. 本期课程,由深开鸿资深技术专家 ...
- 刘潇翔:基于OpenHarmony的仿生四足狗开发分享
说起人工智能机器人界的网红,那就不得不提到--"机器狗".此前,著名机器人公司波士顿动力制造的"Spot"机器狗.国内知名科技企业蔚蓝科技自主设计研发的&qu ...