Files
CppDeveloperRoadmap/Chinese/PetProjects.md
dmfv 7f2dbbadd1
Some checks failed
Deploy Jekyll with GitHub Pages dependencies preinstalled / build (push) Has been cancelled
Deploy Jekyll with GitHub Pages dependencies preinstalled / deploy (push) Has been cancelled
fix expired links (#105)
Co-authored-by: d.fedotov <d.fedotov@btbx.io>
2025-05-08 08:28:05 +02:00

73 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# :telescope: 宠物项目
宠物项目是学习编程语言、库和/或框架的实践经验的绝佳机会。它们还可以作为面试的起点,并帮助开启工作机会。
找到并选择适合宠物项目的正确想法可能具有挑战性。为了帮助克服这一问题,我们已经编制了一个链接和想法列表,以便让您开始。阅读完此列表后,您应该能够选择最合适的想法或受到启发创建自己的想法!
## :arrows_counterclockwise: 外部链接
* [Google Summer of Code](https://summerofcode.withgoogle.com/archive)
各种公司和社区提供了一系列项目,作为年度 Google 学生实习计划的一部分。存档包含近年来的项目,其中有大量针对 C++ 语言可用的项目。您可以在自己练习中找到感兴趣的东西或考虑尝试未来实习。
* [基于项目学习 - C++](https://github.com/practical-tutorials/project-based-learning#cc)
该存储库保存了不同编程语言(包括 C++)的一组小型项目集合,并提供广泛且详细清单。
* [Programming challenges](https://challenges.jeremyjaydan.com/) - [PNG image](https://challenges.jeremyjaydan.com/media/programming-challenges-v4.0.png)
Pet Projects 想法轮盘允许您设置所需复杂性级别并旋转轮盘。旋转结果将随机选择要解决任务:)
## :boom: 宠物 - 项 目 列 表
### :arrow_forward: 游戏
以下是不包含复杂 AI 或动态世界生成内容但可作为起点实现游戏功能列表。你可以在进展过程中改善额外功能。对于图形库,你可以使用易于使用且提供足够特色以创建简单 2D 或 2.5D 图形接口(使用精灵)的[SFML](https://www.sfml-dev.org/) 。如果你想做更多与应用 物理相关方面,则可以从简单引擎如[Box2D](https://box2d.org/) 开始,也可以学习更高级引擎 如[Cocos2D](https:/ /www.cocos.com/en/) 和[Unreal Engine](https://www.unrealengine.com/en-US/)。记得遵循“从简单到复杂”的规则,先从简单游戏开始,然后逐渐增加难度。
* 贪吃蛇
* 俄罗斯方块
* 生命游戏
* 十五数码问题
* 打砖块
* 扫雷
* 2048
* 纸牌接龙
* 蜘蛛纸牌接龙
* 弹球
* 奇才大冒险
* 迷宫
* 面向两个至四个玩家网络游戏:弹球、扑克、国际象棋、海战等
建议阅读以下源代码,其中包含有关 gamedev 各种算法信息。他们可能对上述任何一个游戏或者你自己构思出来都非常有用:
- https://www.redblobgames.com/
- http://www.squidi.net/three/
---
### :arrow_forward: 应用程序
创建应用程序时,从最简单的实现开始,例如控制台应用程序。完成每个步骤后,设置更复杂的任务,例如添加图形界面、使应用程序使用 HTTP 请求从源请求数据,然后将接收到的数据写入/读取到文件/数据库等。始终遵循“由简至繁”的原则。
以下是一些适合初学者的潜在项目示例:
* 网络聊天(原始套接字或使用[gRPC](https://grpc.io/docs/languages/cpp/quickstart)
* 计算器
* 文件管理器
* 货币转换器
* 从任何 Github 存储库检索“pull-request”或“issue”列表
* 自动化常规任务,如各种计算和生成表格形式的报告。
---
### :arrow_forward: 学生申请
以下示例更适合已经学习过或最近学习过基础课程(如线性代数、解析几何、数学分析、物理等)的学生。涉及应用他们所学理论知识的任务可以帮助他们实现两个目标:通过实际应用巩固知识,并练习编程。这条路不限于其他人,但对于学生来说比较容易因为他们对于这些科目有着新鲜记忆。
* 开发一个线性代数库,包括矩阵,向量和执行计算。
* 建模各种进程,如物理和理论力学。
* 实施数字方法,包括积分,微分,近似和插值
---
[**返回主页**](README.md)