搜尋此網誌

顯示具有 程式小品 標籤的文章。 顯示所有文章
顯示具有 程式小品 標籤的文章。 顯示所有文章

2013年6月25日 星期二

替代役時期: Unity3D Web小遊戲-PacMan (2013/6/24完成第一版)

   前陣子在2013/6/10開始自學Unity3D,邊學邊實作一個PacMan小遊戲,遊戲概念大多來自"大學畢業專題程式",有部分素材、script來自網路上的資源,遊戲採用二維陣列的概念來產生隨機地圖,新增可採第一人稱視角玩遊戲,大幅修正網路上提供的Ghost移動AI,目前於2013/6/24完成第一版。
  這支小遊戲的產生原因是我在五月底得知台中某家博弈遊戲公司在招收軟體工程師,需要的條件有C/C++以及Unity3D,於是我就花了一點時間學習Unity3D並實作一個作品,方便之後投履歷面試;還有一個原因就是我覺得Unity3D看起來很有趣、蠻好玩的,學習的過程中也玩得很愉快。

小遊戲網址:http://ppt.cc/C8bj  


隨機地圖的概念圖(二維陣列20X20,1表示牆,0表示路)
隨機創四種方向的障礙牆(紅色),再隨機挑選幾個關鍵點堵住(綠色)



第一人稱視角



第三人稱視角

第三人稱視角(角色死亡)



替代役時期: PHP書籍管理程式 (2013/5/6 完成第一版)

列出所有書籍的頁面

搜尋書籍的頁面

新增書籍的頁面


作品簡易說明:
這是一個用PHP語言搭配MySQL資料庫建置起來的書籍管理程式(網站),這支程式的產生起因是我在五月初要面試某家台中公司的PHP研發工程師時,第一次面試完後要考個程式題,題目是書籍管理程式,限制時間一周內完成,還需建置在網路上可供主管評審操作,之前沒有做過一個完整的PHP網站,趁此機會也學習怎麼採用MVC架構去撰寫程式。

線上執行的程式建置在Amazon EC2(曾建置在HiCloud)雲運算虛擬主機中,使用最小的微運算型Linux虛擬主機(Micro型),程式透過使用Zend-Framework套件來建構MVC架構,本程式主要有首頁(index)、新增書籍頁(add)、搜尋書籍頁(Search)、編輯書籍頁(edit)、刪除書籍頁(delete),各頁面使用了少許jQuery的效果。

作業系統: ubuntu12.04(32bit)

使用的工具、語言或架構: Amazon EC2、apache2、PHP語言、MySQL 5.5、phpmyadmin、Zend-Framework、jQuery、MVC架構。

替代役時期:分析今日BingoBingo開獎號碼的WebApp(2012/11/3 完成第一版)

WebApp顯示頁面

台灣彩券3/27當天BingoBingo開獎號碼頁面
作品簡易說明:

        我發覺BingoBingo每幾小時裡某些號碼會很熱門,所以如果只看奧索樂透網的統計今日熱門號碼的網頁會有些不夠準確,因為前幾小時的熱門號碼現在不一定熱門了,於是我便做了這一個Webapps,從表格中可以看到每段時間的熱門號很多,在近20期中出現7次到10次的熱門號碼起碼有八到九個,表示當前熱門號碼幾乎每兩到三次就開出一次,過了一陣子後這些號碼開始退出熱門,又換其他號碼開始逐漸熱門。這支程式就是為了統計熱門號碼,讓使用者可以更輕易地分析開獎資訊。

  現行服替代役期間,我花時間研讀Python程式語言和Google App Engine(GAE)相關知識,邊學邊撰寫WebApp上傳至GAE,這個WebApp去抓取台灣彩券的BingoBingo開獎號碼存到Google的資料庫,藉由Google雲的資料庫以及分散運算功能,快速幫我運算出冷熱門號碼結果並顯示在GAE提供的WebApp網頁。使用技術或工具:GAE、NoSQL(Google  BigTable)、GQL語言、Python語言。  

研究所時期作品:雲端化網路視訊電話Cloud-VVoIP (2012/07完成第一版)

  
登入帳號介面
程式操作畫面
雲端化網路視訊電話-英文版介面(電腦與手機的截圖)
雲端化網路視訊電話(實際操作畫面)


作品簡易說明:
    本作品是在雲端計算系統上設計一個即時性網路視訊電話,使用者藉由瀏覽器連線到我的Web網頁,以帳號驗證登入雲端計算系統,便可以在網頁上透過雲端計算系統的VVoIP程式與另一位上線使用者做網路視訊通話;Android行動裝置的使用者則經由Google  Play下載及安裝我們發佈雲端的VVoIP  App後,在Adobe  AIR  App的環境下進行網路視訊通話。

Flash Media Server (at Cloud Side) 和Flash Player (at Client Side) 之間的streaming (video/audio)及data (ActionScript Command)採用TCP-Based RTMP 、RTMPT 或RTMPS協定,具有多串流、多路徑、部分可靠等特性(類似PR-SCTP的特性),可以即時傳輸雲端網路視訊通話。


雲端網路視訊電話(Cloud-VVoIP)的優點:
1.  使用者在通話前無須取得對方的IP位址,只需要使用對方的ID名稱透過伺服主機即可進行連線。
2.  經由雲端計算的服務並且使用web介面在PC設備(行動裝置則是使用Adobe AIR App介面),即可進行視訊通話。
3.  行動裝置80%成本都使用在硬體設備,太低階的硬體設備無法執行複雜的網路視訊通話的程式與服務。使用雲端計算的方式來進行網路視訊電話,便可以使用Thin-Client等級的行動裝置或終端設備來進行通話連線,不一定要採用高階的行動裝置才可以進行視訊通話。
4.   因為終端設備上是使用web介面連線(行動裝置則是使用Adobe AIR App介面),VVoIP應用程式是安裝在伺服主機上,而不是安裝在終端設備本身(Android行動裝置則是需要透過Android Market下載安裝),另外VVoIP應用程式的主要運算都交給伺服主機來做,因此終端設備的計算負載變小,並且電源消耗也降低。
5.   雲端計算的服務是使用web介面,所以適合跨不同作業系統平台的終端設備(或行動裝置)上連線視訊通話。
6.   雲端網路視訊電話是經由web介面的方式操作,伺服主機可以即時的掌握連線用戶的人數及了解用戶的使用情形,可以做適當的通話流量調配。登入系統使用Authentication、Authorization、Accounting (AAA)管理機制,實施帳戶管理和使用者認證之機制,並且依照不同身份給予不同的使用權限,如此可以有效加強管理上的安全性。
7.  當程式設計者修改、更新網路視訊電話應用程式後,終端設備使用者只需重新整理網頁(Android行動裝置則須啟用Android Market自動更新),即可取得最新版本的VVoIP應用程式並執行它,不同於P2P的方式需要上網去下載新版的應用程式,下載安裝完後才可以執行使用。


使用技術或工具:Linux、Proxmox  Virtual  Environment、Flash  Media  Server、
       Actionscript3.0語言、PHP語言、Zend-AMF套件、MySQL。

註:論文保密三年,原始碼暫不分享。

研究所時期作品:Embedded system上的GPS定位與電子地圖程式 (2010/12 完成第一版)

X86平台上的GPS定位與電子地圖程式
實作環境:ARM-based Embedded System(WinFast310)
ARM-based Embedded System上的GPS定位與電子地圖程式

作品簡易說明:

        在Fedora8(Linux)作業系統上使用C語言和Qt Embedded套件,撰寫一個ARM平台程式來接收從RS232通道傳來的GPS訊息(在Com2孔接GPS接收裝置),並轉換GPS訊息的經緯度統一為”度”單位,得到經緯度後便在後台圖庫中呼叫圖庫並定位在適當位置。

大學時期作品:C#語言完成的2D小遊戲(PacMan 2009大學畢業展前完成最終版)

遊戲畫面
作品簡易說明:
  大學畢業專題程式採用C#語言撰寫一套2D單機遊戲,內容類似小精靈PacMan,沒有使用任何遊戲模組或遊戲引擎。畢業專題小組分工協力完成以下工作:遊戲主程式、人物碰撞偵測、繪圖顯示(使用DirectX)、怪物移動AI、二維陣列下的隨機地圖產生器、遊戲音效設定、畢業論文文稿撰寫。
  個人分工部分:遊戲主程式、人物碰撞偵測(人物碰撞到牆、怪物碰撞到玩家)、流暢的繪圖顯示(使用DirectX)、怪物快速移動AI。

使用技術或工具:C#語言、Visual Studio 2005(2008)、DirectX9

大學時期作品:採用FIFO法則之記憶體替換Page示意程式(作業系統課程期末小程式 2009)


點擊後~即可試算出解答~ 
=>[多少個frame]
=>[使用FIFO法則]

=>會產生多少個page faults(右上)

=>產生[圖表](左下) 及 詳細替換情形(右下)