对于 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# 推荐一个适合新手入门阅读学习的控制台游戏项目的更多相关文章

  1. 问题集录--新手入门深度学习,选择TensorFlow 好吗?

    新手入门深度学习,选择 TensorFlow 有哪些益处? 佟达:首先,对于新手来说,TensorFlow的环境配置包装得真心非常好.相较之下,安装Caffe要痛苦的多,如果还要再CUDA环境下配合O ...

  2. Webpack新手入门教程(学习笔记)

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; text-align: center; font: 30.0px Helvetica; color: #000000 } ...

  3. CSS超全笔记(适合新手入门)

    CSS CSS初识 CSS(Cascading Style Sheets) 美化样式 CSS通常称为CSS样式表或层叠样式表(级联样式表),主要用于设置HTML页面中的文本内容(字体.大小.对齐方式等 ...

  4. 最适合新手入门的SpringCloud教程 6—Ribbon负载均衡「F版本」

    SpringCloud版本:Finchley.SR2 SpringBoot版本:2.0.3.RELEASE 源码地址:https://gitee.com/bingqilinpeishenme/Java ...

  5. HTML笔记(适合新手入门)

    HTML Web 标准构成 Web标准不是某一个标准,而是由W3C和其他标准化组织制定的一系列标准的集合. 主要包括结构(Structure).表现(Presentation)和行为(Behavior ...

  6. 推荐net开发cad入门阅读代码片段

    转载自  Cad人生  的博客 链接:http://www.cnblogs.com/cadlife/articles/2668158.html 内容粘贴如下,小伙伴们可以看看哦. using Syst ...

  7. H5新标签(适合新手入门)

    H5新标签 文档类型设定 document HTML: sublime 输入 html:4s XHTML: sublime 输入 html:xt HTML5 sublime 输入 html:5 < ...

  8. 适合新手入门Spring Security With JWT的Demo

    Demo 地址:https://github.com/Snailclimb/spring-security-jwt-guide .欢迎 star! Spring Security 是Spring 全家 ...

  9. (新手入门,学习笔记)通过NPM进行Vue.js的安装

    NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,本文只介绍如何通过NPM进行安装Vue.js NodeJS官方网站:http://nodejs.cn/downlo ...

  10. 【强烈推荐】可能是最适合你的 Java 学习路线和方法

    如遇链接无法打开,建议使用 https://github.com/Snailclimb/JavaGuide/blob/master/docs/questions/java-learning-path- ...

随机推荐

  1. python高级技术(进程一)

    一 什么是进程 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础.在早期面向进程设计的计算机结构中,进程是程序的基本执行实 ...

  2. OkHttp请求耗时统计

    目录介绍 01.先提问一个问题 02.EventListener回调原理 03.请求开始结束监听 04.dns解析开始结束监听 05.连接开始结束监听 06.TLS连接开始结束监听 07.连接绑定和释 ...

  3. App启动流程

    目录介绍 1.什么是Zygote进程 1.1 简单介绍 1.2 各个进程的先后顺序 1.3 进程作用说明 2.Zygote进程的启动流程 2.1 源码位置 2.2 ZygoteInit类的main方法 ...

  4. 摄影系列:李涛ps视频教程笔记

    四种颜色模式: HSB:人眼的识别. RGB:基于光.(RGB自然三原色,三个最大值,得出白色,所以RGB为加色模式) CMY:基于印刷.(青.品.黄印刷三原色,三个最大值,得出黑色,所以CMY为减色 ...

  5. YOLOv4: 虽迟但到,大型调优现场,43mAP/83FPS | 论文速递

    YOLOv4在速度和准确率上都十分优异,作者使用了大量的trick,论文也写得很扎实,在工程还是学术上都有十分重要的意义,既可以学习如何调参,也可以了解目标检测的trick.   来源:晓飞的算法工程 ...

  6. KingbaseES V8R6数据库运维案例之---用户权限导致的备份恢复故障

    案例说明: 由于限制了用户对数据库的访问,导致在执行'sys_backup.sh init'初始化物理备份时,执行失败. 适用版本: KingbaseES V8R6 一.问题现象 如下所示,执行'sy ...

  7. WPF实现树形表格控件(TreeListView)

    前言 本文将探讨如何利用WPF框架实现树形表格控件,该控件不仅能够有效地展示复杂的层级数据,还能够提供丰富的个性化定制选项.我们将介绍如何使用WPF提供的控件.模板.布局.数据绑定等技术来构建这样一个 ...

  8. CH392作服务器TCP Server应用配置使用

    CH392工作在TCP Server模式时,参考手册说明需要打开监听Socket端口,也要设置数据连接Socket端口,注意数据连接Socket的源端口和监听Socket的源端口一致. 配置TCP S ...

  9. #KM算法#UVA11383 Golden Tiger Claw

    题目 给定 \(n*n\) 的矩阵,现在给每行安排一个权值 \(x_i\),给每列安排一个权值 \(y_j\), 使得 \(x_i+y_j\geq a_{i,j}\),并且使 \(\sum_{i=1} ...

  10. #排列组合#美团2018年CodeM大赛-决赛 A-Exam

    题目 分析 因为第一名所在的学校一定会发喜报, 所以只有一个学校发喜报说明其它学校都没有发喜报 钦定第一名所在的学校为1,总方案要乘\(n\),那么两个1之间不可能出现两个相同的学校的学生 那么可以分 ...