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