2013年2月28日

吴昊品工程级别软件项目 Round 3 —— 一个简易的字符识别系统(OCR技术+VB实现)

摘要: 如图,是一个简易的OCR系统。我在大二下学期的时候参加过华科的信息安全竞 赛,准备做一个简易的舆情监控系统。当然,最终还是没有实现的,但是,在这个过程中尝试过一些东西,比如图像识别技术(OCR)就是一种尝试。这款软件是 一位高中的学生做出的,他的名字叫——陨落雕(ThirdApple),识别率说还可以,当然,这个还是很不行的。而且,不存在机器学习的功能,只能识别 一些给定的文本(0--9以及所有的英文字母),这是这款软件的缺陷。 关于Visual Basic 6.0SP6(很多人之所以不使用最新的VS2010系列而使用老式的6.0,也是因为它的经典性以及便携性,比如我的迅雷5.0,一直都不愿意 阅读全文

posted @ 2013-02-28 17:31 吴昊系列 阅读(903) 评论(0) 推荐(0) 编辑

吴昊品工程级别项目 Round 3(追加) —— 一个基于android的手机防盗软件的实现

摘要: 在吴昊系列的吴昊品工程项目的Round 3中,我介绍过一款以前的“异世界”团队(我和几个人做爱立信的比赛时候完成)的软件,叫Mobile Safe,其实,这样的软件已经有不少,而且其中的很多都是非商业的。主要是因为目前的手机防盗已经出现一些直接植入到手机(硬件)内的嵌入式产品了,这 样即使你的手机丢失,别人将你的SIM卡更换或者操作系统重刷之后,你仍然可以找到你原来的手机。不过,这里,我想介绍一款叫做LostPrevent的 软件,它是附着在操作系统上的,别人刷机你木有办法,但是,作为历史性的手机防盗软件,至少可以纳为经典的行列吧! LostPrevent的功能: 手机防盗远程控制软件,包括. 阅读全文

posted @ 2013-02-28 17:28 吴昊系列 阅读(354) 评论(0) 推荐(0) 编辑

吴昊品工程级别软件项目 Round 3 —— Mobile Safe(for android)

摘要: 以下这一款软件是我在大二的时候 由我,尹达奇,肖晓和曾蔚同学给出的,当时我还不负责编码,只是做一些简单的设计以及软件说明书以及软件文档的写作。如图所示,这是一个和你的手机随时” 互通有无“的终端,在你手机丢失的时候可以清除你的手机私人信息,甚至可以销毁手机内部芯片(此项功能在本款软件中还没有予以实现,在以后会考虑),还可 以通过相关定位软件找寻你手机的位置,真可谓是你的手机信息的贴身保镖。综上所述,我们的产品“手机安全外置客户端”主要实现以下两个功能(1)在手机丢失的时候及时删除该手机上的私人信息(2)通过相关的定位软件寻找到遗失手机的具体位置。 这款软件谈不上... 阅读全文

posted @ 2013-02-28 17:26 吴昊系列 阅读(501) 评论(0) 推荐(0) 编辑

吴昊品工程级别软件项目 Round 2(附加)之(一个标准的DBMS系统的需求分析+数据库设计)(PS:感谢王露珠妹纸)

摘要: 1. 需求分析1.1. 引言1.1.1. 编写目的由于近几年来由于我国高等 院校的扩招,导致教学管理,学生管理方面受到很大的冲击。管理的困难主要在于数据量大,涉及的人员多,数据及时更新困难等。如果依靠人工管理则需要投入的 精力多,不便维护,且容易出现错误。因此我们考虑使用计算机进行管理。计算机管理相比人工管理而言拥有无与伦比的优势,能大大减少人力物力的投入,减少出 错,提高效率,实现对学生信息管理的规范化,信息化,自动化。 为明确软件需求、安排项目规划与进度、组织软件开发与测试,撰写本文档。 本文档供项目经理、设计人员、开发人员参考。1.1.2. 项目背景待开发的系统名称:学生信息管理系统.. 阅读全文

posted @ 2013-02-28 17:24 吴昊系列 阅读(322) 评论(0) 推荐(0) 编辑

吴昊品工程级别软件项目 Round 2 —— 餐饮管理系统(C#)

摘要: 此为一个标准的应用类的DBMS系统(数据库管理系统),正 如达芬奇的老师所说:不同的鸡蛋就有不同的画法,DBMS系统也是一样的,其应用在不同的场景,就会有不同的实现方式,有些甚至不仅仅是功能和UI的变 换,而是整个数据结构的变换,比如,考虑到数据之间的伸缩性的松紧程度的不同,其实现中可以采用由一些数组组成的结构体,或者是链表来实现,后者的伸缩性 更强(数据结构之间也不是完全对立的,比如,也可以使用游标数组来实现链表的功能)。 一. 背景 机器人炒菜是全自动的,但是,即使是所有的事情都由机器人来处理,还是需要人来负责收银以及处理机器的一切异常(处理器可能会因为湿度,温度等原因发生一... 阅读全文

posted @ 2013-02-28 17:22 吴昊系列 阅读(1069) 评论(0) 推荐(0) 编辑

吴昊品工程级别软件项目 Round 1 —— 吴昊教你玩字幕

摘要: 以上,是我大二的时候用MenuBuilder做的界面,基本上是所见即所得吧,在图形化界面的制作中,也就是为每个按钮加上相应的监听再调用光盘中相应 的文件就可以了,这一点不难,但是,除了UI之外,我想借此聊下字幕制作的技术,虽然也只是相应软件的调用,但是,想做出比较炫的ASS特效的话,还是需 要自己来写一些代码或者运用一些小插件的。碟子做出之后,我总结过字幕组的全套技术,当然,这只是我自己的(绝大部分还借鉴了会声会影的很多功能),正统 的字幕制作技术有一套详细的流程,比如著名的人人字幕组(组长为中山大学新闻系的一个本科生,很牛,他将自己的技术配合学校的一些团队进行了软件化,并... 阅读全文

posted @ 2013-02-28 17:20 吴昊系列 阅读(1415) 评论(0) 推荐(0) 编辑

吴昊品游戏核心算法 Round 14 —— (转载)推箱子游戏的NP难证明(关卡设计)

摘要: 何谓NP难 NP困难(NP-hard,non-deterministic polynomial-time hard)问题是计算复杂性理论中最重要的复杂性类之一。某个问题被称作NP困难,当且仅当存在一个NP完全问题可以在多项式时间图灵归约到这个问题。 因为NP困难问题未必可以在多项式的时间内验证一个解的正确性(即不一定是NP问题),因此即使NP完全问题有多项式时间内的解,NP困难问题依然可能没有多项式时间内的解。因此NP困难问题“至少与NPC问题一样难”。 PSPACE完全 推箱子的其中一个很重要的魅力来源于推箱子求解问题在计算复杂性理论里是一个 PSPACE 完全问题。在... 阅读全文

posted @ 2013-02-28 15:21 吴昊系列 阅读(784) 评论(0) 推荐(0) 编辑

吴昊品游戏核心算法 Round 14 —— (转载)著名的益智游戏大集结

摘要: 著名的益智游戏集合(神采飞扬光谷店) 推箱子 推箱子的规则 KDE内建的推箱子游戏KSokoban第一个《推箱子》的游戏规则,则是扮演工人的玩家,以“推”的方式,推动箱子。可以在没有阻碍物(如墙壁等的阻碍物)的情况下,向左、右、上、下的地方移动。将箱子移动到指定点,达到指定数量,即可过关。 但玩家移动箱子,有下列条件要注意: 推到墙壁的箱子,玩家就不可以背对墙壁,把箱子推回到空处。即箱子只能以“被推”的方式被移动,不是以“被拉”的方式被移动。但如果玩家推至墙壁后,垂直墙壁的两侧没有阻碍物,则玩家可以朝这两个不同的方向推移箱子。 一旦箱子被移动到... 阅读全文

posted @ 2013-02-28 15:12 吴昊系列 阅读(370) 评论(1) 推荐(0) 编辑

吴昊品游戏核心算法 Round 14 —— 推箱子的一种变式(三个箱子)

摘要: 在更多的情况下,除了很多路障(墙壁)以外,我们会发现眼前的箱子绝对不止一个,只有一个箱子的可玩性绝对是不高的。但是,这里却又有一个显著的问题,就是如果箱子增加的话,问题的(至少是)空间复杂度会呈现指数级别地增加。 这里面考虑的因素就要复杂许多,但是,总思路还是不变的。我们这里采用分模块的方法来解决,源程序的模块性应该说是蛮好的。 1注明头文件23#include<iostream>4//queue容器(这一次不用优先队列,而直接用队列了)5#include<queue>6usingnamespacestd;78各种数据结构各种调910//这里定义一个点(x,y)11.. 阅读全文

posted @ 2013-02-28 15:08 吴昊系列 阅读(670) 评论(0) 推荐(0) 编辑

吴昊品游戏核心算法 Round 14 —— 吴昊教你推箱子(priority_queue容器+BFS)(HDOJ 1254)

摘要: 在吴昊品游戏核心算法Round 1中,我有介绍一个“企鹅推箱子”的游戏,我们来回顾一下一个经典游戏是如何经过包装,最后成为一个崭新的游戏的。首先是美工,通过3D的画面,给人一种 震撼力,在UI方面,考虑到智能手机的触屏特性,制造出很多的“动态效果”。在算法方面,通过搜索算法的引入,给游戏制造了一种附加功能,就是,你可以通 过搜索让自己告诉你应该如何进行下一步的方向控制(这一点有点像连连看中的放大镜提示)。在这样的经典游戏中,往往就这么一个小插件就会给整个游戏增色不 少。 关于推箱子问题的解法的时间复杂度,最终被证明是NP难的,而且后来又被证明是PSPACE完全的,其具体的证明步骤... 阅读全文

posted @ 2013-02-28 15:00 吴昊系列 阅读(878) 评论(0) 推荐(0) 编辑

吴昊品游戏核心算法(第二季首映式)Round 11 —— 吴昊教你玩Tic-Tac-Toe

摘要: 作为首映式,首先,纠正一下以前的错误吧,在吴昊系列的 “称硬币游戏AI”中,我说的时间复杂度是O(n),实际上有问题,首先,确实将所有的硬币都遍历了一遍,但是,每遍历一个硬币的时候,strchr函数 将遍历一个天平上的所有硬币,这样是O(n/2),还没有完,因为称的次数与硬币的数目是正相关的,那么,至少是O(n^2)以上,一篇论文中用信息熵来 解决这个问题!,得到如果N个硬币有一个(可能没有)为假币,至少要称量K=log(2N+1)/log3次,那么,可以得到时间复杂度的上限为 O(n^2log3n)。 以上的图为比尔盖茨八年级的时候,他在向他的同班同学SHOW自己开发的AI作品,... 阅读全文

posted @ 2013-02-28 14:57 吴昊系列 阅读(206) 评论(0) 推荐(0) 编辑

吴昊品游戏核心算法 Round 13(特别篇)—— 另一种迷宫游戏AI(queue容器+BFS)

摘要: 另外一种迷宫游戏来自(HDOJ的1072)。刚才那个应该还不能说是游戏吧!因为只是一些迷宫类游戏的关键技术,还不具备有游戏性(所谓游戏性,可以参 考任天堂公司给出的定义)。这里,Ignatius给出了游戏的规则——五个数字标注了五种不同的图标(这里考虑五种位图,数字0代表墙,数字1代表可以 通过的路线,数字2代表起始的地方,数字3代表Ignatius的目标位置,而数字4代表了一种很新颖的道具,这个道具我们接了之后,可以将时间重置为6 分钟)这里考虑一点,最开始的时间为6分钟,每走一步要减少一分钟,我们必须要在规定的时间之内走到终点(当然,这里有RESET的装备),不然的话,炸 ... 阅读全文

posted @ 2013-02-28 14:54 吴昊系列 阅读(199) 评论(0) 推荐(0) 编辑

吴昊品游戏核心算法 Round 13(附加版)—— 迷宫小球(android实现)

摘要: 好啦,最后来说说那个最经典的游戏吧!我是想说,本来,我准备将其放在吴昊系列的《吴昊品工程级别软件项目》的,但是我想了一下,如果那样做的话,会阻碍 整个Round的连续性,所以,我最后决定将其放在这里。一款经典的游戏,也许,它最终会老去,就像神马坦克大战啊,俄罗斯方块,射击游戏那样,但是,相 信通过人们对其原理的了解的逐步增加,会逐渐推出一些UI,美工更精美,互动更强,或者说可玩性更高的新品种。记得魂斗罗那种在任天堂的FC上的游戏改版 到PS2上之后,是不是也推陈出新了呢?(这里的迷宫小球和经典的小球游戏还不太一样,设置了一个胜利小球和两个失败小球,碰到失败小球,游戏告负,而碰 到胜利小球,.. 阅读全文

posted @ 2013-02-28 14:53 吴昊系列 阅读(233) 评论(0) 推荐(0) 编辑

吴昊品游戏核心算法 Round 13 —— 吴昊教你走迷宫(BFS)

摘要: 如图所示,这是一个手机游戏,走迷宫游戏发展到现在,已经存在不少变式了,比如现在利用android/ios系统的重力感应器功能做成的——《迷宫小 球》就是现在比较成功的一款(关于《迷宫小球》这款经典游戏,我会在《吴昊品工程级别项目源代码》中详细阐述)。我们这里只是抽出游戏的核心算法作为探 讨,其实,这也是我的一个想法,因为UI,美工以及架构等等,在设计的时候不会太难(当然,这里纠正一个误区,就是顶尖的设计师的难度高于顶尖的算法工程 师,但是一般的设计不会追求那种纯粹艺术级别吧!我想)。 BFS的奥义: BFS是一种盲目搜寻法,目的是系统地展开并检查图中的所有节点,以找寻结果... 阅读全文

posted @ 2013-02-28 14:39 吴昊系列 阅读(312) 评论(0) 推荐(0) 编辑

吴昊品游戏核心算法 Round 12(特别篇) —— 吴昊教你玩筷子游戏(计算几何)

摘要: 筷子在古代叫箸或筯(箸者,助也,意思是帮助吃饭的工具。另:在闽南语地区、广东省和平县还有温州地区的当地人仍称筷子为箸,在闽南语地区念tî、广东省和平县拼音为chī,温州市区念dzei),又叫梜。清朝赵翼曾引用明朝陆容的《菽园杂记》说:“起于吴中。凡舟行讳住讳翻,故呼箸为快子”(住和箸同音)。人类使用筷子的历史可以追溯到三千年以前,《礼记·曲礼上》就有“饭黍母以箸”和“羹之有菜者用梜”的记载。由考古学提供的证据而言,筷子的出现晚于匙羹,同样原因,由于人们想做某种工具以方便取得烫热的熟食,所以筷子的发明跟原始农业和陶器的运用和发展有着直接关系。 筷子是何人发明,何时诞生,历代虽 阅读全文

posted @ 2013-02-28 14:35 吴昊系列 阅读(198) 评论(0) 推荐(0) 编辑

吴昊品游戏核心算法 Round 12(特别篇) —— 吴昊教你玩Block 3D(模拟)

摘要: 砖块游戏有很多种,比如“拼砖块”,“打砖块”,“推 砖块”等等,我们这里要做的是“叠砖块”。游戏的条件应该已经很明了了,如果再不明了的话,我还附上一张图(如下图所示),我们这里用一个简单的示例来模 拟这个游戏。我们假设一共有六种砖块,即1*1到6*6,而每一种砖块的数量是有限个的。我们的输入每一行只有六个数字,分别表示从1*1到6*6的这六 种砖块的个数。 由于如果不是同时放置,而是具有先后顺序的放置的话,我们需要考虑到一种策略的问题,这里的AI就有实现地聪明与愚蠢之分了,我们这里考虑一个更为简单的 AI,也就是说,所有的砖块是可以由玩家自己来考虑放置的先后顺序的,这样做的话,也... 阅读全文

posted @ 2013-02-28 14:31 吴昊系列 阅读(220) 评论(0) 推荐(0) 编辑

吴昊品游戏核心算法 Round 11 (插曲) —— (转载)比尔盖茨:从恶魔到天使

摘要: 我在Round 11中的那个截图就是盖茨在八年级(初二)时候的AI作品,其源码我找不到,不过,我给出一些其他的实现方式吧,无论是直接的给出具体逻辑,搜索还是极大极小值博弈树,都是比较经典的AI算法,这里,顺便给出我截图的那篇文章,介绍盖茨的叛逆一生。 美国科技博客网站Business Insider撰稿人朱莉波特(Julie Bort)近期发表文章,对微软联合创始人比尔盖茨(Bill Gates)的一生进行了总结。波特认为,盖茨的一生一直伴随着敬仰、憎恶、斥责、羞辱和奉承。他对计算机和软件的理念,改变了整个世界,这不仅为其个 人,也为整个软件开发者提供了巨大的财富。以下为盖茨简介: ... 阅读全文

posted @ 2013-02-28 14:27 吴昊系列 阅读(403) 评论(6) 推荐(0) 编辑

吴昊品游戏核心算法 Round 12 —— 火柴游戏AI(大整数加减)

摘要: 如图所示,这个游戏是基于android操作系统的,名字叫《火柴棍数学》。如图所示,你移动一个火柴,就可以发现火柴上指示的公式由错误变为了正确。这是一个非常有趣的游戏,也可以锻炼自己的逻辑思维。 我们这里考虑一个相对简单的情况,也就是游戏必须满足如下三个条件: (A)只能改变数字,不能改变符号。 (B)数字和符号的组成方式必须严格的和图示的一样(减号由一根火柴组成)。 (C)新等式必须形如a+b=c或a-b=c,其中a、b、c都是不含前导0的非负整数。 最后,等式还是需要成立的。 这是一个模拟,主要用到了大数加减的模板,解决起来还是相当棘手的,不过,分成几个模块... 阅读全文

posted @ 2013-02-28 13:42 吴昊系列 阅读(370) 评论(0) 推荐(0) 编辑

吴昊品游戏核心算法 Round 11 (增刊) —— 捡花生游戏AI(毫无理性的贪心)(POJ 2950)

摘要: 这个游戏非常简单,但非常有趣,所以,我在这里不作为Round 12,而将其独立出来,作为一个增刊来放送。这是一款比较老式的游戏了,我曾经在某次过年的时候,在NOKIA的手机上玩过,当时是塞班的系统,画质不怎么样,但是非常有趣。 玩法简介: 一个直观的想法: 将整个花生地作为一个二维的整型数组,没有花生的地方标注0而有花生的地方标注花生的数目。一个比较直观的想法就是自变量为时间t和这个二维数组,因变量 为最多可以获得花生数目的函数,当然,这个做法直观,而且可以确定这个函数是存在的(因为满足一一对应的关系),但问题是你建立地出来咩? 放弃直观的想法,我们开始推理: 有一种贪心... 阅读全文

posted @ 2013-02-28 13:25 吴昊系列 阅读(221) 评论(0) 推荐(0) 编辑

吴昊品游戏核心算法 Round 11 —— 吴昊教你玩Tic-Tac-Toe(模拟) (HDOJ 3075)

摘要: 井字棋是神马? 井字棋,大陆、台湾又称为井字游戏、圈圈叉叉;另外也有打井游戏、OX棋的称呼,香港多称井字过三关、过三关,是种纸笔游戏。 怎么玩? 两个玩家,一个打圈(O),一个打叉(X),轮流在3乘3的格上打自己的符号,最先以横、直、斜连成一线则为胜。 如果双方都下得正确无误,将得和局。 这种游戏实际上是由第一位玩家所控制,第一位玩家是攻,第二位玩家是守。 第一位玩家在角位行第一子的话赢面最大(见图一),第二位玩家若是在边,角位下子,第一位玩家就可以以两粒连线牵制着第二位玩家,然后制造“两头蛇”。(我这里不知道所谓的“两头蛇”是什么,不过,我觉得还是在中间走棋可以得到... 阅读全文

posted @ 2013-02-28 13:16 吴昊系列 阅读(431) 评论(0) 推荐(0) 编辑

导航