元培科技大學
資訊管理系畢業專題
骰
子
遊
戲
組 別:A22
指導老師: 林志賢老師
組 員: 陳俊宇(0981408140)
陳詩芸(0981408052)
徐冠程(0981408142)
賀立緯(0981408021)
黃正揚(0981408144)
中 華 民 國 1 0 1
年 1 2
月 1
日
摘要
一提到擲骰子這個詞,您大概馬上會想到某個經典黑色電影 中,煙霧繚繞的賭場裏面擠滿了身著條紋西裝的身材魁梧的 男子的畫面。這個遊戲也許是賭場裏所有比賽中最激動人心 的,它總能吸引眾多玩家和觀眾趨之若鶩。 這個遊戲是源于古英格蘭的危險遊戲,這遊戲就是骰子的滾 動。「擲骰子」這個單詞實際上來自古法國的一場遊戲 crapaud, 這個遊戲也是使用雙骰子,目的是為達到特定的總點數。這 場比賽可能是由奴隸販賣者 帶到歐洲和美洲的,這些奴隸 販賣者早在 200-300 年前就在非洲玩這個遊戲了。 本專題的目的這專題的目的是為了讓有些人在有空閒的時 間來玩遊戲,而且每人都有一台手機,可以上網找尋這骰子 遊戲打發無聊的時間。 關鍵詞: Android、Android SDK、JDK、Eclipse、ADT、SQLite目 錄 摘 要……… 目 錄……… 第一章 緒論………4 1.1 背景與動機………4 1.2 目的………4 1.3 限制………4 1.4 關鍵名詞定義………5 第二章 文獻探討………10 2.1 擲骰子簡介………10 2.2 Android 系統簡介………11 2.3 機率系統發展現況………12 第三章 專題設計與規劃………15 3.1 專題規劃目標………15 3.2 系統發展方法………16 3.3 專題設備………17 3.4 專題時程規劃………18 3.5 專題分工………20 3.6 預期貢獻………21 第四章 專題成果………22 4.1 需求分析………22 4.1.1 使用者需求………22 4.1.2 使用者目標………22 4.2 系統分析………23 4.2.1 使用案例圖………23 4.2.2 邏輯圖………24 4.3 系統介紹………27 4.4 使用手冊………28 4.4.1 安裝步驟………28 4.4.2 操作手冊………41 第五章 結論與建議………45 5.1 結論………45 5.2 建議………47 參考文獻………48
第一章 緒論
1.1 背景與動機 因為時代社會進步的變遷之下,漸漸手機推成出新,.手機也 越來越人性化。 現在手機也可以說是人手一支,藉由這個擲骰子遊戲的平台 來打發時間。 1.2 目的 本專題研究是---『骰子遊戲』, 其製作的主要方向為:藉由 遊戲來了解人們釋放壓力舒緩的一環,也可以學習如何擲骰 子的技巧,就算是沒有擲過真正的骰子也能藉由手機體驗擲 骰子的樂趣。 1.3 限制 本專題在進行過程中力求盡善盡美,但恐怕尚有下列限 制: 1. 骰子遊戲有機率的運算方式 2. 在 Android 手機玩遊戲1.4 關鍵名詞定義 本專題計用到下列幾個重要的名詞,茲分別說明如下: 1. Android 系統: Android(讀音:['ændrɔid])是一個以 Linux 為基礎的半 開放原始碼作業系統,主要用於移動設備,由 Google 和開 放手持設備聯盟持續開發與領導。
Android 系統最初由安迪·魯賓(Andy Rubin)開發製作, 最初主要支援手機,於 2005 年 8 月被 Google 收購。2007 年 11 月,Google 與 84 家硬體製造商、軟體開發商及電信 營運商組成開放手持設備聯盟(Open Handset Alliance)來 共同研發改良 Android 系統,隨後,Google 以 Apache 免費 開源許可證的授權方式,發布了 Android 的源代碼。讓生 產商推出搭載 Android 的智慧型電話,Android 作業系統後 來更逐漸拓展到平板電腦及其他領域上。
Google 透過官方網上商店平台 Google Play,提供應用程式 和遊戲供用戶下載,截止至 2012 年 6 月,Google Play 商店 擁有超過 60 萬個官方認證應用程式。同時用戶亦可以通 過第三方網站來下載。
2010 年末數據顯示,僅正式推出兩年的 Android 作業系統 在市場佔有率上已經超越稱霸逾十年的諾基亞 Symbian 系 統,成為全球第一大智慧型手機作業系統。 2. Android SDK: 軟體開發套件(SoftwareDevelopmentKit,SDK)一般是一些 被軟體工程師用於為特定的軟體包、軟體框架、硬體平台、 作業系統等建立應用軟體的開發工具的集合。 它或許只是簡單的為某個程式語言提供應用程序介面的 一些文件,但也可能包括能與某種嵌入式系統通訊的複雜 的硬體。一般的工具包括用於調試和其他用途的實用工具。 SDK 還經常包括示例代碼、支持性的技術註解或者其他的 為基本參考資料澄清疑點的支持文檔。 軟體工程師通常從目標系統開發者那裡獲得軟體開發包。 為了鼓勵開發者使用其系統或者語言,許多 SDK 是免費 提供的。SDK 經常可以直接從網際網路下載。有時也被作 為營銷手段。例如,甲產品或許會免費提供構件 SDK 以 鼓勵人們使用它,從而會吸引更多人由於能免費為其編程 而購買其構件。
SDK 可能附帶了使其不能在不兼容的許可證下開發軟體 的許可證。例如一個專有的 SDK 可能與自由軟體開發抵 觸。而 GPL 能使 SDK 與專有軟體開發近乎不兼容。LGPL 下的 SDK 則沒有這個問題。
3. JDK:
Java Development Kit (JDK)是 Sun 公司針對 Java 開發人員發 布的免費軟體開發工具包(SDK,Software development kit)。 自從 Java 推出以來,JDK 已經成為使用最廣泛的 Java SDK。 由於 JDK 的一部分特性採用商業許可證,而非開源[1]。因 此,2006 年 Sun 公司宣布將發布基於 GPL 協議的開源 JDK, 使 JDK 成為自由軟體。在去掉了少量閉源特性之後,Sun 公司最終促成了 GPL 協議的 OpenJDK 的發布。用途:作為 java 語言的 SDK,普通用戶並不需要安裝 JDK 來運行 java 程序,而只需要安裝 JRE(Java Runtime Environment)。而程 序開發者必須安裝 JDK 來編譯、調試程序。
4. Eclipse: Eclipse 是著名的跨平台的自由集成開發環境(IDE)。最 初主要用來 Java 語言開發,目前亦有人通過外掛程式使其 作為 C++、Python、PHP 等其他語言的開發工具。 Eclipse 的本身只是一個框架平台,但是眾多外掛程式的支 持,使得 Eclipse 擁有較佳的靈活性。許多軟體開發商以 Eclipse 為框架開發自己的 IDE。 5. ADT:
在電腦運算(Computing)中,抽象資料型別(Abstract Data Type, ADT)是一組資料以及相應運算的規格。如某個資料型別 是抽象的,且獨立於各種具體的實作。其可用數學定義, 或者可用作為程式設計中的介面。介面提供一個建構子, 建新的資料時,其返回一個抽象控制代碼(handle);且有 若干運算函式接複數、容器、雙端佇列、列表、Multimap、 優先權佇列、佇列、集合、堆疊、字串和樹。
6. SQLite : SQLite 是遵守 ACID 的關聯式資料庫管理系統,它包含在 一個相對小的 C 庫中。它是 D.RichardHipp 建立的公有領 域項目。 不像常見的客戶端/伺服器結構範例,SQLite 引擎不是個 程式與之通訊的獨立行程,而是連線到程式中成為它的一 個主要部分。所以主要的通訊協議是在程式語言內的直接 API 呼叫。這在消耗總量、延遲時間和整體簡單性上有積 極的作用。整個資料庫(定義、表、索引和資料本身)都 在宿主主機上儲存在一個單一的檔案中。它的簡單的設計 是透過在開始一個事務的時候鎖定整個資料檔案而完成 的。
第二章 文獻探討
2.1 擲骰子簡介 骰子,亦作色子,是許多娛樂必不可少的工具之一,比如圓 夢城在永利博或者寶馬會裡打麻將、牌九等等。這裡說的骰 子是指純粹以骰子定輸贏的賭博。一般用來賭大小。骰寶是 由各閒家向莊家下注。每次下注前,莊家先把三顆骰子放在 有蓋的器皿內搖晃。當各閒家下注完畢,莊家便打開器皿並 派彩。因為最常見的賭注是買骰子點數的大小(總點數為 4 至 10 稱作小,11 至 17 為大,圍骰除外),故也常被稱為買 大小。2.2 Android 系統簡介
是一個以 Linux 為基礎的半開放原始碼作業系統,主要用於 移動設備,由 Google 和開放手持設備聯盟持續開發與領導。 Android 是一套建構在 Linux 核心(Linux Kernel)之上的智慧型 手機作業系統。使用者可以透過 Android 撥打電話、傳送簡 訊、收發電子郵件、查看行事曆、上網、玩遊戲、享受影音 娛樂、甚至透過應用程式的下載,達成許多意想不到的創新 功能。
由於,Android 在軟體版本授權上是採用 Apache Software License 2.0 的開放原始碼方案,因此,在這個版權協議之下, 智慧型手機製造商可免費地安裝 Android 作業系統至其生產 製造的硬體之中,有效地降低了軟體的採購成本。截至 2010 年 8 月 2 日為止,Android 在市面上免費流通的軟體版本共有 1.5、1.6、2.1 與 2.2。其中目前以 2.1 版本的使用量為最多。 對於智慧型手機製造商來說,透過免費取得作業系統而降低 軟體採購成本是一項很大的誘因,所以,截至目前為止共有 Acer(宏碁)、Alcatel、ASUS(華碩)、CCI、Dell、Foxconn(富士 康)、Garmin、Haier、HTC(宏達電)、Huawei(華為)、Kyocera、
Lenovo、LG、Motorola、NEC、Samsung、Sharp、Sony Ericsson、 Toshiba 與 ZTE 等二十家智慧型手機製造商以及其它數十家 行動通訊公司、半導體公司、軟體公司以及商業公司陸續加 入了開放手機聯盟(Open Handset Alliance)並投入生產、銷 售或者研發 Android 作業系統的相關軟硬體產品與服務。 Android 以新秀之姿在短短不到三年的時間就有此成績,不 只對於旗下合作的智慧型手機製造商具鼓舞作用,也會促使 Android 應用程式的開發者,投入更多時間與精力去開發兼具 功能性與創新性的應用程式。 再更進一步地說,由於 Android 在應用程式開發上,採取免 費、開放的策略。開發者不僅可以免費地下載安裝 Android SDK(Android 的軟體開發工具包)進行應用程式的開發。更重 要地是,人們可以使用多數程式設計師所熟悉的 Java 程式語 言進行應用程式的編寫。因為這兩個特點,促使為數眾多的 Java 程式設計師蜂擁至 Android 應用程式的開發行列。
2.3 機率系統發展現況 自古以來,對於不可預知的事情,人們總是充滿著好奇,並 且在好奇心的驅使下,往往產生了一些或對或錯的法則。估 且不論其動機為何,這些法則卻可能因此開創另一領域或學 科,機率論(theoryofprobability)的發展便是如此。 機率,又稱或然率、機會率或概率、可能性,是數學機率論 的基本概念,是一個在 0 到 1 之間的實數,是對隨機事件發 生的可能性的度量。物理學中常稱的幾率。像在日常生活中, 我們常常會遇到一些涉及可能性或發生機會等概念的事件。 一個事件的可能性或一個事件的發生機會都是與數學有關 的。例如:從一班 40 名學生中隨意選出一人,這人會是男生 嗎?事實上,人們問「……可能會發生嗎?」時,他們是在 關注這個事件發生的機會。在數學上,事件發生的機會可用 一個數來表示。我們都稱該數為機率。
2.4 骰子的歷史 相傳,骰子的發明人是三國時代的文學家曹植,最初用做占 卜的工具,後來才演變成遊戲,擲骰子點數賭酒或賭絲綢香 袋等物。當時骰子的點穴上塗的是黑色,在唐代才增加描紅。 但在考古上,最早的骰子是出現在埃及。在兩千多年前古埃 及的骰子學家,曾在出土的古埃及墳墓的壁上,繪有以羊的 後足跟制之賭具的賭戲.這種骨頭有四個面,並不對稱,每次 投擲會落在四個面之一方.中國的骰子絕不是曹植發明的.因 為山東青州戰國齊墓出土骰子已經證明骰子不是曹植發明 的.骰子,作為中國博戲中六博之一,被視作中國博具之祖, 在春秋戰國末期已較為流行。東晉時遺存的古磁中,曾見顆 方寸大的骰子,與古埃及、羅馬和印度的古跡中所發掘的骰 子,以及現代中國和印度的骰子,完全相同從這句話來看, 應該是從西方發明的然後傳到中國的。自清代開始,骰子的 娛樂模式被基本決定下來,一般採用 3 枚骰子和下骰盅。最 簡單的骰盅可用木碗替代,下面墊上一塊底板,骰時用骰盅 蓋上,莊家和玩家均不知道骰子的點數。這種方法帶有神秘 感,便以莊家營造氣氛,使玩家下注。在賭場,則有制作精 美、與盅相配的骰盅賭具,名稱叫做骰寶。
第三章 專題規劃
3.1 專題規劃目標 本專題希望能夠達到的功能: 1. 藉由了解到機率目的 2. 了解特殊骰子種類和特性 3. 介紹不同點數,了解歸納特性和特殊規則3.2 系統開發方法 此系統之發展和方法採用系統生命週期以瀑布模式 (Water Fall)方法,如圖為流程其內容如下:
系統測試
需求定義
內部設計
外部設計
結合測試
編寫程式
運作測試
測試
3.3 專題設備 本專題所需使用之軟硬體有: (1)軟體方面:…… ECLIPSE, JDK, Android SDK (2)硬體方面: 電腦使用設備 電腦規格 主記憶體(RAM) 4.00GB 以上 中央處理器(CPU) Intel(R)Core(TM)i5-2400CPU 3.10GHz 顯示卡 Intel(R)Sandybridge
Desktop Graphics Chipset
3.4 專題時程規劃 本專題由開始規劃至系統完成,預計會有下列幾項工作…… 成品 試玩和分析 骰子遊戲創作 進行討論 蒐集資料 了解研究動機和目的 確認主題
甘特圖
時間 工作 101 年 一月 二月 三月 四月 五月 六月 七月 八月 九月 十月 十一月 十二月 募集組員 選定題目 尋找專題 老師 訂定工作 和進度表 尋找文獻 製作計劃 書 程式設計 除錯.修 改 製作結案 書3.5 專題分工 個人工作分配表 工 作 分 配 . 召 集 開 會 書 籍 資 料 查 詢 網 路 資 料 收 集 計 畫 書 製 作 程 式 設 計
陳詩芸
徐冠程
陳俊宇
賀立緯
黃正揚
3.6 專題貢獻
可以利用骰子功能讓大家了解到數學機率的問題以及能成 為現在生活中把玩的一種小遊戲
第四章 專題成果
4.1 需求分析 製作骰子手機開發程式專案主要目的是休閒及博弈一種休 閒的遊戲對於不可預知的事情,人們總是充滿著好奇,並且 在好奇心的驅使下,往往產生好奇。因此開創另一領域或學 科,機率論的發展便是如此。而透過三顆骰子來比大小,來 了解機率的發生以及運氣跟拼搏的休閒遊戲。 4.1.1 使用者需求 這次專題製作是針對一般大眾持有智慧型手機民眾,透過本 專題製作內容,智慧型手機 Android 系統開發,讓大家能藉 由 Android 系統開發出來的休閒博弈 app 來打發時間。 對於一般使用者可以輕鬆上手,藉由此專題製作,透過三 顆骰子來比大小,能讓人們來了解機率的發生以及運氣的休 閒遊戲。 4.1.2 系統目標 (1)透過搖骰盅的方式以及押賭注的搏弈的方式來了解機率 的發生 (2)藉由一些動畫音效,來促進遊戲的刺激性 (3)以簡單介面使使用者方便操作4.2 系統分析 4.2.1 使用案例圖 本專題所發覺使用案例圖描畫如下: USER LOAD 畫面 說明 開始遊戲 加注.減注 Roll or Exit 籌碼 排行榜 Game over LOAD 畫面
4.2.2 邏輯圖(Logical View) LOAD 首 頁 說明 開始遊戲 加注 減注
否. 是 開始遊戲 Roll Game over 籌碼<0 排行榜
開始遊戲
Exit
Game over
排行榜
4.3 系統介紹: (1)使用 Eclipse 所做的 Android 智慧型手機博弈小遊戲 (2)進入骰子遊戲前封面為黑底跟開始遊戲及說明 (3)以三顆骰子比點數大小博弈可自行調整下注金額 (4)遊戲進行畫面以搖骰盅呈現 (5)搖骰盅時呈現搖骰的音效 (6)離開遊戲會呈現最高紀錄跟先前的紀錄與排行 (7)遊戲結束時會呈現所配的結束音效
4.4 使用手冊 4.4.1 安裝步驟 安裝 JAVA JDK 步驟一:在 IE 瀏覽器輸入 http://www.oracle.com/technetwork/java/javase/downl oads/jdk7u9-downloads-1859576.html,即可進入下載頁面, 選取 windows x86 因為此電腦是 32 位元。
步驟二: 在 IE 瀏覽器 輸入 http://www.eclipse.org/downloads/download.php?file= /eclipse/downloads/drops4/R-4.2.1-201209141800/ecli pse-SDK-4.2.1-win32.zip 上述網址 進入 Eclipse 網頁 下載 Eclipse 主程式
步驟三:
步驟四:
將以安裝完成之 Eclipse 打開、目錄上方有 help 選項,點 取並選取 Install New Software,即可進入下圖
接著選取圖示上 Add,接著在 name 欄位輸入 ADT,在 Location 欄位輸 https://dl-ssl.google.com/android/eclipse/,
接著再按下 Next 按鍵,會進入下圖所示:
點取 Finish 安裝。
步驟五:
上述步驟完成之後會重新開啟 Eclipse,接著會出現下圖
選取 open preferences ,接著出現的視窗關閉之後會出現 下圖
步驟六:
回到 Eclipse 介面,上方按取 windows 選項,選擇 android SDK Manager。跑完之後畫面如下圖,找尋 android 2.3.3 選取 全部並且安裝
步驟七:
接著選取 Android Virtual Device manager 如下圖所示
進入下圖畫面
如果再 Target 欄位 找尋不到剛剛已經安裝過的 android 2.3.3 需先從開機 即可。
步驟八:
接著會跑出下面圖示所呈現的地方,右邊有一個 STAR 的按 鈕,點取下去 即可跑出模擬器的畫面
步驟九:
重新開啟 eclipse 上方選項中有 File 按鈕點取,並選擇 Import。
接著選取已經打好程式碼的原始檔儲放的地方
步驟 10:
在 MainActivity 點又鍵、Run As、Android Application
4.4.2 操作手冊
說明功能
第五章 結論與建議
5.1 結論: 手機程式的製作經組員討論後決定,以符合現代休閒跟博弈 的小遊戲,而遊戲架設的內容是以骰子機率為主題,本組在 做專題期間學習如何使用 (1)「Android 系統」 (2)「Android 軟體開發套件 SDK」(3)Java Development Kit 程序開發者必須安裝 JDK 來編譯
(4)「Eclipse 跨平台的自由集成開發環境(IDE)本身只是 一個框架平台,但眾多外掛程式支持,擁有較佳的靈活性」
(5)ADT,抽象資料型別是一組資料以及相應運算的規格。如 某個資料型別是抽象的,且獨立於各種具體的實作。其可用 數學定義,可用作為程式設計中的介面。
(6)SQLite 學開發手機應用程式的人都應該要知道的 SQLite 資料庫是程式設計中一種不可或缺的夥伴。 SQLite 是個輕量化的關聯式資料庫,它輕薄短小,無須設定 或管理,沒有伺服器及組態檔,不需要資料庫管理員,它只 是一個檔案,可以依須求四處移動,對移動裝置來說是非常 好用的資料庫。 第一次寫手機軟體,因時間及技術上的不熟練,使本組在寫 手機程式上顯得困難,不過也因如此經由這次專題報告讓我 們學會以往不懂的程式撰寫。
5.2 建議:
由於現今 3C 資訊產品發達智慧型手機普遍,幾乎人手一支 智慧型手機或平板電腦,所以 Android 系統所開發出來的遊 戲擁有龐大的市場於商機,而且也能以 Android 開發出來的 這些遊戲與朋友們彼此交流。
參考文獻
1.http://blog.chinatimes.com/tomsun/archive/2010/08/31/533666.ht ml,[Android 教學] Android 的系統架構說明課程講義 2.http://blog.chinatimes.com/tomsun/archive/2010/08/30/533364.ht ml,什麼是 Android? 3.http://baike.baidu.com/view/28173.htm
,
百度百科資料 4.http://mbehm.com/a/lunpanguzi/2011/0908/4077.html,機率的歷 史5. android.iPhone Windows Mobile 手機程式設計 入門與應用 陳彥文‧彭亦暄 旗標出版有限公司 13-12 7. 鄭一鴻,「第一次學 Android」,碁峰學苑 8. 孫惠民,「系統分析與設計」,學冠行銷股份有限公司 9. 林國平,吳宗杉,「系統分析與設計」,東華書局 10. http://zh.wikipedia.org/zh-tw/%E9%AA%B0%E5%AD%90 , 維基百科,骰子介紹 11. http://mate.idc.scu.edu.tw/android/ ,Android 遊戲程式設計 12. http://www.runpc.com.tw/content/content.aspx?id=106839 ,手 機程式設計入門與應用,擲骰子遊戲 13. http://zh.wikipedia.org/wiki/SQLite ,維基百科,SQLite 介紹
14. http://blog.tonycube.com/2011/11/androidsqlite.html,在 Android 中使用 SQLite 資料庫 15. 蕭明城,周岱琳,「SQL 設計與應用範例」,金禾資訊有 限公司 16. 編譯 大新資訊,「SQL 21 天自學手冊」,第三波資訊有限 公司 17. 張丁才,「資料庫系統應用設計」,滄海書局