前几天和一个在读的本科生聊天,他一直在抱怨学校学习的理论知识太多,实践的机会太少。担心自己因此毕业后可能难以找到工作。我认为一个人要是想投入开发,他总是可以找到项目的。与其把自己的时间浪费在抱怨和指责上,为什么不现在就动手开始开发呢?他的回答是不知道开发啥,没有人指导自己,不知道从何入手。我想想了,那么我们就从俄罗斯方块开始下手吧。

“从俄罗斯方块开始,那个游戏太简单了。我即使可以开发一个俄罗斯方块,又会有那个公司要我呢?如果将来我的建立上写上我做过俄罗斯方块游戏。那也不大会有人要我吧!”

“一个俄罗斯方块无论是从算法上来讲,还是从其他方面上来讲,确实太简单了。但是很多人只能看到俄罗斯方块的简单,却很少有人能把简单做到极致。而一个成功的程序员就是要做到把简单的东西深入下去,把简单的事情做到极致,就不在是简单了。让我来带你开发个俄罗斯方块吧。”

那么也请各位看客跟着我们一起去深入俄罗斯方块,把这个简单的小玩意做到一个极致。这个系列的探讨适合有一定的C#的语法基础。但是尚未做过任何大的项目的童鞋一起学习。如果哪位大侠看到鄙人的东西,热烈欢迎拍砖。

首先说说咱们的学习的大概的规划:

第一步、我们先简单的理解下俄罗斯游戏开发的大概算法和需要的知识,然后把这些知识组

合开发一个小小的俄罗斯游戏Demo。基本上实现俄罗斯方块游戏的控制和操作。
第二步、我们在我们的Demo的基础上,尽可能的提出对我们的算法进行优化。对我们的界面

进行美化,功能进行扩展。从一个简单的Demo变成一个可玩性很强的单机版俄罗斯

方块小游戏。

第三步、我们来尝试把单机版俄罗斯方块做成一个俩人联机版游戏,利用SOCKET通信,让咱

们的俄罗斯方块实现可以双人玩。我们主要使用point-to-point方式来玩。一个当做

服务器端一个当做客户端来玩。

第四步、我们把我们的简单联机版俄罗斯方块做成一个带游戏大厅的服务端和客户端多人连

接俄罗斯方块游戏。让更多的人加入我们来玩。

第五步、从可盈利出发。我们研究深入研究俄罗斯游戏可能产生的盈利模式,我们将在俄罗

斯游戏中把我们的盈利模式实现,我们将在我们的游戏中增加其他的一些道具,而

这些道具有可能需要稍微改变下游戏的规则。至此为止,我们就可以依托一个点逐

渐的拓展成一个面,完成一个俄罗斯方块游戏商业模式。

至此我们的游戏已经可以成为一个可盈利的商业模式。当然能不能依托这个简单的游戏收获金钱需要看咱们做的游戏的好坏。也需要看咱们的机会和宣传了。从极坏的情况下来讲解。咱们赚钱的可能性基本上为零。当然这个也是这次开发最最可能呈现的情况。但是对一个学习计算机的程序员来说。这样的开发过程绝对可以称得是一次工作经历了,而且有了这样的思维和学习的模式,我相信抱怨和指责应该可以远离你的生活了。

学习C#从俄罗斯方块开始(一)概述相关推荐

  1. APPCAN学习笔记004---AppCan与Hybrid,appcan概述

    APPCAN学习笔记004---AppCan与Hybrid,appcan概述 技术qq交流群:JavaDream:251572072 本节讲了appcan的开发流程,和开发工具 笔记不做具体介绍了,以 ...

  2. 基于深度学习的图像语义分割技术概述之背景与深度网络架构

    本文为论文阅读笔记,不当之处,敬请指正.  A Review on Deep Learning Techniques Applied to Semantic Segmentation: 原文链接 摘要 ...

  3. 计算机网络学习(九)—应用层的概述

    计算机网络学习(九)-应用层的概述 一.应用层概述 二.服务器方式和对等方式 三.动态主机配置协议DHCP 四.域名系统DNS 五.文件传输协议FTP 六.电子邮件 七.万维网 一.应用层概述 应用层 ...

  4. 华为HCIA-datacom 学习笔记18——SDN与NFV概述

    华为HCIA-datacom 学习笔记18--SDN与NFV概述 SDN与NFV概述 1.计算机时代的演进 1.1大型机 专门的硬件 专门的操作系统 专门的应用.(稳定性能好,但封闭) 1.2小型机 ...

  5. UDT协议学习笔记(一)UDT概述

    UDT协议学习笔记(一)UDT概述 本人近来就职于国内某著名互联网血汗工厂,从事分布式后台相关的工作,最近的项目主要是网络相关.我们有许多海外的proxy节点,为了加速海外proxy与国内某机房的通信 ...

  6. PLC学习笔记(一):概述

    目录: PLC学习笔记(一):概述 PLC学习笔记(二):PLC结构(1) PLC学习笔记(三):PLC结构(2)

  7. java虚拟机预先加载哪些类_Java虚拟机JVM学习02 类的加载概述

    Java虚拟机JVM学习02 类的加载概述 类的加载 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对 ...

  8. 嵌入式学习笔记——STM32的USART通信概述

    文章目录 前言 常用通信协议分类及其特征介绍 通信协议 通信协议分类 1.同步异步通信 2.全双工/半双工/单工 3.现场总线/板级总线 4. 串行/并行通信 5. 有线通信.无线通信 STM32通信 ...

  9. 编译原理学习笔记2——高级程序设计语言概述

    编译原理学习笔记2--高级程序设计语言概述 2.1常用的高级程序设计语言 2.2程序设计语言的定义 2.2.1语法 2.2.1语法 2.2.3程序语言的基本功能和层次机构 2.2.4程序语言成分的逻辑 ...

最新文章

  1. mysql 命令大全
  2. python从零基础到项目实战怎么样-2018完整Python零基础到项目精通的学习书籍
  3. linux 从仓库拉取镜像,k8s 从私有仓库拉取镜像
  4. X-UA-Compatible 1
  5. Appium移动自动化测试(一)--安装Appium(转)
  6. Hive的基本操作-排序
  7. 最新Modis影像数据下载完整流程---以MOD13Q1 NDVI数据下载为例(2020年12月2日更新)
  8. Linux expr命令、Linux wc命令、Linux let 命令
  9. Android学习随笔 -- draw9patch的使用
  10. 深圳数字人民币专项资金至3月末已累计发放1.96亿元
  11. (转)OAuth 2.0的设计思路
  12. git将本地练手的项目放置到git远端上--本地仓库和远程建立连接
  13. 数据结构与算法中的经典算法
  14. 微信H5框架:WEUI
  15. win10 休眠设置无效_win10休眠设置无效的解决教程
  16. teamviewer常用命令
  17. 面试经验(妙计旅行:C++算法工程师)
  18. matlab中的dsolve函数是用来解决什么问题的?请详细解释并给我几个简单的例子...
  19. AWT/SWT/SWING 区别和联系
  20. 光耦,磁耦,容耦的区别

热门文章

  1. Metabase学习教程:权限-1
  2. 香港银行个人户需要什么条件
  3. 2020春季线上PAT甲级比赛经验(必看!!!)、155题目分类
  4. 如何对计算机进行硬盘的区分,如何对硬盘进行检测
  5. 华科计算机博士学位,华科计算机学院博士毕业条件
  6. [leetcode]41. First Missing Positive
  7. 阿里新手程序员干一个月就辞职:感觉生活得像狗,工资再高又怎么样?
  8. 问道海岛地区服务器维护,问道手游今日09:00服务器停机维护通知_网络-游戏圈...
  9. 使用JS实现三级联动
  10. 苹果台式机_苹果自研处理器M1跑分出炉,单核性能全球第一