当我们在学习一门编程语言的时候,往往会做很多代码的练习,但是这些练习的代码都是孤立的,之间没有联系,而且练习的内容都是比较局部的问题,不能反应编程语言在整个软件的开发过程的应用,在我的课程里除了代码片段的练习,增加了一个完整的软件项目,贯穿到整个语言的学习过程,在讲解基础知识的同时,也讲述了基础知识的使用,以及软件开发的一般过程和思路。这个项目是一个游戏,见图

游戏的规则是这样的,点击一个球可以移动到不同的格子里,移动的时候必须延着没有球的格子滚过去,每移动一次随机出现3个球,把5个以上颜色相同的球联成一条线,就可以销掉得分.移动球的时候,程序要找两个点间的最短路径,是这个游戏里比较难的部分,在浙江大学的acm试题库里居然看到了这道题,在算法里不算很难,采用广度优先算法就可以了。
         编写的过程,先是考虑数据如何存储,有了存储,就可以考虑逻辑的实现,就是算法的实现,实现算法,当然离不开函数,有了函数的定义才能更好的明确算法的边界,即条件和结果,然后才是考虑如何实现算法,这里一共有三个算法,随机放球,判断消球,寻找路径。最后,考虑采用什么样的界面,熟悉相应的函数库的使用。这个顺序和我的编程课程的顺序是完全一致的。这样下来,通过一个完整项目的实践,对语言的理解和驾驭都达到了较高的程度,这个项目除了C语言,JAVA,C#,JAVASCRIPT,PHP等各种语言都可以采用,这里面3个算法,都很典型,有一定难度,但都容易理解,有一定趣味,实现3个算法,已经说明你对语言的掌控能力已经过关了,界面在这里其实不是很重要,主要是用来学习如何使用类库,已经不是语言的范畴。
        刚学过语言,想找个项目练习的同学,可以尝试着写一下这个游戏,巩固一下学习效果,对于看不清楚自己水平的同学,也可以做一下,来验证一下自己的水平。在编写的过程中,代码重构,单元测试等东西都会用到, 你是否用了,欢迎大家把自己的编写体验拿出来分享。
     方便交流,点击可以加为好友。http://student.csdn.net/invite.php?u=108270&c=189a59b57330cb29

一个极佳的编程语言练习项目相关推荐

  1. 又是一个极佳的虚拟机网站

    这次的虚拟机网站要比之前的pcjs还要好,因为这个网站更加稳定 看图: 不得不说,太像了 甚至连窗口都和真正的Windows98一模一样 打开记事本 还可以保存txt,步骤和Windows中的一样 绝 ...

  2. “嫦娥五号”发射成功,文昌鲁能希尔顿酒店提供极佳观测点

    2020年11月24日凌晨4时30分,在中国文昌航天发射场,用长征五号遥五运载火箭成功发射探月工程嫦娥五号探测器,火箭飞行约2200秒后,顺利将探测器送入预定轨道,开启中国首次地外天体采样返回之旅.作 ...

  3. 在vue项目中使用gsap,实现极佳的2d动画效果

    在vue项目中使用gsap,实现极佳的2d动画效果 一.GSAP是什么? 二.使用步骤 1.引入库 2.在vue中使用 3.vue组件使用gsap完整代码 总结 一.GSAP是什么? GSAP全称是G ...

  4. python采用强制自动缩进使得代码具有极佳的可读性_Python简介

    1. python设计定位 Python的设计哲学是"优雅"."明确"."简单".Python开发者的哲学是"用一种方法,最好是只 ...

  5. 用CLIP做多个视频任务!上交牛津提出基于Prompt将CLIP拓展到多个视频任务,在open-set场景中效果极佳!...

    VU 关注公众号,发现CV技术之美 本文分享论文『Prompting Visual-Language Models for Efficient Video Understanding』,用 CLIP 做 ...

  6. “抗疫”新战术:世卫组织联合IBM、甲骨文、微软构建了一个开放数据的区块链项目!...

    作者 | Rohit Chatter jee 译者 | 天道酬勤 责编 | 徐威龙 出品 | 区块链大本营(blockchain_camp) 如今,新冠肺炎是每个人心中最重要的话题.浏览我们的社交媒体 ...

  7. python采用强制缩进的方式使得代码具有极佳的可读性_Python 的教程(2)

    解释性 -- 这一点需要一些解释.一个用编译性语言比如 C 或 C++ 写的程序可以从源文件(即 C 或 C++ 语言)转换到一个你的计算机使用的语言(二进制代码,即0和1).这个过程通过编译器和不同 ...

  8. python采用强制缩进的方式使得代码具有极佳的_Python基础

    Python的哲学: 明确,优雅,简单 Python更强大,执行效率比shell该 Python可以跨平台 可移植性好,标准统一,在不同的平台程序结果一样,但是shell可能不一样 python模块丰 ...

  9. 即时通讯工具的 23 个极佳优化方案(附产品原型)

    分享一篇关于即时通讯极佳优化方案,方案中提到了很多日常见到的问题,特别实用! 在刚刚过去的 2018 年年底,墨刀联合倍洽发起了一场「解X:做倍洽48小时产品经理」活动,邀请优秀的产品设计师一起来探讨 ...

最新文章

  1. Exchange2003-2010迁移系列之六,配置及配置第二台Exchange CAS/HUB服务器
  2. Linux Kernel TCP/IP Stack — L3 Layer
  3. c语言课程设计平时成绩,计算中心
  4. 团队作业6——展示博客(Alpha版本)
  5. Registry注册机制
  6. TCP TIME_WAIT 详解
  7. 五大黑科技资源网站,你想要的这里都有
  8. Python实现简单的excel对比工具
  9. FLASH 闪存的分类与介绍
  10. 基础会计学习笔记4 会计核算基本方法(会计工作的主要内容)
  11. 高数_第3章重积分__二重积分_怎样交换积分次序
  12. CQHTTP 以HTTP形式制作你的QQ机器人
  13. matlab光子晶体求反射率,一维光子晶体禁带结构的MATLAB分析计算讲解.PDF
  14. 使用ul li 实现图片的左右滚动
  15. 蓝桥杯 算法训练 Beaver's Calculator
  16. Python爬虫方式抓取免费http代理IP
  17. JME sdk中的中文乱码(全是方框)的解决办法
  18. 获取当前时间戳-在线时间戳转换工具
  19. 14.利用虚函数实现多态性来求正方体、球体和圆柱体的表面积和体积。
  20. 一名优秀的管理者应具有那些能力?

热门文章

  1. EventBus3 简单使用及注意点
  2. 北大工学院计算机考研,北京大学机械考研经验-北大工学院考研辅导班
  3. 三角函数算式的c语言表达式,能计算加减乘除表达式,求添加计算平方、三角函数的功能,...
  4. 美专家起诉欧洲对撞机可能撞出黑洞毁灭地球
  5. 微软上海C+AI(OC)
  6. android获取各运营商信号,一篇关于 Android 获取运营商的全面笔记
  7. DPDK flow_classify 源码阅读
  8. 南加大计算机研究生录取率,美国南加州大学研究生录取率
  9. CIO40知识星球—IT人之兄弟连
  10. 【pytest】pytest配置文件pytest.ini详解