




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、基于基于 JAVAJAVA 的手機版五子棋開發(fā)的手機版五子棋開發(fā) 摘摘 要要 在現(xiàn)代社會中,手機及其它無線設(shè)備越來越多的走進普通老百姓的工作和生 活。隨著 3G 技術(shù)的普及與應(yīng)用,基于 Java 開發(fā)的軟件在手機上的使用非常的 廣泛,手機增值服務(wù)的內(nèi)容也是越來越多,對豐富人們的生活內(nèi)容、提供快捷 的資訊起著不可忽視的作用。 本文基于 J2ME 技術(shù),以計算機網(wǎng)絡(luò)游戲的運行流程為基礎(chǔ),分模塊開發(fā) 一款網(wǎng)絡(luò)五子棋游戲軟件。 本文對以下幾點內(nèi)容做了重點研究和探討: 1、系統(tǒng)整體結(jié)構(gòu),根據(jù)設(shè)計目標,結(jié)合普通網(wǎng)絡(luò)游戲的運行流程,給出了 系統(tǒng)總體設(shè)計方案,并探討了系統(tǒng)設(shè)計時需要用到的關(guān)鍵技術(shù)。 2、手機
2、MIDP 客戶端的實現(xiàn),MIDP 客戶端是游戲的唯一客戶端,主要功 能包括連接服務(wù)器進行身份驗證、進行游戲并不斷的與服務(wù)器交換數(shù)據(jù)。 3、后臺系統(tǒng)的設(shè)計與實現(xiàn),后臺用來處理與數(shù)據(jù)庫的互聯(lián)來驗證用戶身份、 處理由客戶端發(fā)送過來的數(shù)據(jù)。 由于受到客觀條件的限制,本系統(tǒng)的測試是在三星手機模擬器上完成的, 但它仍不失具一定的實用價值。 關(guān)鍵詞:關(guān)鍵詞:J2ME;手機游戲;Servlet The Design and Implementation of The Gobang War Game on Cell Phone Network Abstract In modern society, more a
3、nd more cell phones and other wireless devices come into the work and life of ordinary people. With the popularization and application of the 3rd Generation of Digital communication technology,the development of Java- based software in the use of mobile phones is very broad, mobile value-added servi
4、ces are more and more. It plays an import role to enrich peoples lives and provide easier access to information. This paper is based on J2ME technology, it expounds how to take the running flow of computer network as basis, introduce a kind of gobang game on network by the sub-module method. . The m
5、ain points of this paper go as follows: (1) The overall system structure. According to the design goals, with the general operation of the network game flow, gives the system design, and explores the key technology, which is used by the design of this system. (2) The implementation of the phone MIDP
6、 client. MIDP client is the only game client, the main functions include connecting the server to check the status, playing games and keeping the exchange of data with the server. (3) The implementation and design of background system. Background is to deal with the Internet database to verify the i
7、dentity of users, processing the data, which is sent by the clients. Due to the restrictions of objective conditions, the systems test completed in the Samsung handset simulator. But it does have some advantages. Key words: J2ME; Handset game; Servlet 目目 錄錄 論文總頁數(shù) :24 頁 1 引言.1 2 系統(tǒng)綜述.1 3 手機游戲的現(xiàn)狀和關(guān)鍵技術(shù)
8、介紹.2 3.1 軟件現(xiàn)狀.2 3.2 J2ME 概況.2 3.2.1 J2ME 的由來.2 3.2.2 J2ME 的 3 層體系結(jié)構(gòu)及 MIDP 簡介.3 3.3 TOMCAT服務(wù)器介紹 .4 3.4 SERVLET技術(shù)介紹.5 4 開發(fā)環(huán)境介紹.7 4.1 開發(fā)環(huán)境.7 4.2 關(guān)于 SAMSUNG WIRELESS TOOL KIT.7 5 客戶端模塊的開發(fā).7 5.1 綜述.7 5.2 程序的類結(jié)構(gòu).7 5.3 游戲的功能流程圖.8 5.4 游戲的實現(xiàn).9 5.4.1 主類 Omok 的實現(xiàn).9 5.4.2 游戲登錄界面以及操作說明界面的實現(xiàn).10 5.4.3 游戲畫布類的實現(xiàn).12
9、5.4.4 網(wǎng)絡(luò)連接類的實現(xiàn).14 5.4.5 五子棋獲勝算法.15 6 服務(wù)器端程序的開發(fā).17 6.1 數(shù)據(jù)庫的設(shè)計與實現(xiàn).17 6.2 SERVLET程序的編寫.17 7 改進建議和措施.20 7.1 關(guān)于圖片問題.20 7.2 軟件測試.20 7.2.1 測試前的準備工作.20 7.2.2 進行測試.21 7.2.3 有待添加和完善的功能.22 結(jié) 論.22 參考文獻.22 第 1 頁 共 24 頁 1 1 引言引言 Java 語言是美國 Sun Microsystem 的 James Gosling、Pratrick Naughton 及 Mike Sheridan 等人于 1991
10、 年精心設(shè)計出來的計算機編程語言,其構(gòu)想在于 實現(xiàn)使用同一種編程語言所寫出來的程序可以在不同的平臺上運作。這種架構(gòu) 對于消費性電子產(chǎn)品而言是具有革命性的,因為在消費性電子產(chǎn)品中的處理器 及操作系統(tǒng)各不相同,要在這些平臺上開發(fā)程序必須要了解各個平臺的特性, 以及其提供的 API 使用方式,分別開發(fā)不同的版本才能執(zhí)行,影響應(yīng)用程序的 普及性。 近幾年,由于微處理器性能的大幅提升,加上無線通訊技術(shù)的突破,手持 式移動設(shè)備開始受到大眾的青睞。短短幾年內(nèi),手機已經(jīng)升級了幾代產(chǎn)品,普 及率逐年攀升,生產(chǎn)效率不斷上升,產(chǎn)品價格比個人電腦的摩爾定律有更驚人 的下調(diào),以至手機是大多是城市居民不可缺少的一件隨身設(shè)
11、備。繼短信、彩信 等服務(wù)之后,中國移動提供基于 Java 的百寶箱業(yè)務(wù),應(yīng)用產(chǎn)品遍及商務(wù)應(yīng)用、 信息獲取、英漢互譯、游戲娛樂等多媒體領(lǐng)域。 為了適應(yīng)移動數(shù)據(jù)的發(fā)展,推動無線電子商務(wù)等業(yè)務(wù)的發(fā)展,J2ME(Java 2 Micro Edition)既用于嵌入式系統(tǒng)的 Java 被引入無線領(lǐng)域。J2ME 的出現(xiàn)實 際上是 Java 技術(shù)的回歸。作為 Java2 平臺的一部分,J2ME 與 J2SE、J2EE 一起, 為無線應(yīng)用的客戶端和服務(wù)器端建立了完整的開發(fā)、部署環(huán)境。隨著 J2ME 的應(yīng) 用,它為移動互聯(lián)引入了一種新的模型,既允許手機可以從互聯(lián)網(wǎng)上下載各種 應(yīng)用程序,并在手機創(chuàng)造可執(zhí)行環(huán)境離線
12、運行這些程序。由于定義了可執(zhí)行下 載的標準,并在手機上創(chuàng)立了可執(zhí)行環(huán)境和程序開發(fā)語言,由此,在移動通信 業(yè)第一次為軟件開發(fā)商創(chuàng)造了巨大的商業(yè)機會,手機用戶在得到豐富應(yīng)用體驗 的同時,也大大提高了運營商的網(wǎng)絡(luò)流量。 2 2 系統(tǒng)綜述系統(tǒng)綜述 本系統(tǒng)采用 C/S 結(jié)構(gòu),包括手機客戶端和服務(wù)器后臺兩個部分。 客戶端采用 j2me midp1.0 函數(shù)編寫,保證了非常好的可移植性。服務(wù)器端 采用了 tomcat 作為 http 服務(wù)器,免費并且具有非常強大的功能,中間件采用 java servlet 進行中間過程的處理,具有很好的穩(wěn)定性和可移植性,采用的數(shù) 據(jù)庫則是 sql server 2000。
13、用戶需要運行本系統(tǒng)客戶端軟件,輸入用戶名和密碼進行身份驗證,如果 驗證成功,則可以進入游戲界面,和其他已經(jīng)登錄的玩家進行游戲;如果驗證 不成功,說明輸入的用戶名或者密碼錯誤,需要重新進行輸入,否則不會進入 第 2 頁 共 24 頁 到游戲界面。 系統(tǒng)分為三層,包括數(shù)據(jù)庫服務(wù)器層、功能層和表示層。數(shù)據(jù)庫服務(wù)器層 主體是 SQL2000,功能層由 Tomcat+ servlet 技術(shù)實現(xiàn),表示層為前臺手機操 作客戶端.總體結(jié)構(gòu)如下圖所視: 圖 1 總體結(jié)構(gòu)圖 3 3 手機游戲的現(xiàn)狀和關(guān)鍵技術(shù)介紹手機游戲的現(xiàn)狀和關(guān)鍵技術(shù)介紹 3.13.1 軟件現(xiàn)狀軟件現(xiàn)狀 在信息社會中,手機及其他無線設(shè)備越來越多的
14、走進普通百姓的工作和生 活,隨著信息網(wǎng)絡(luò)化的不斷進展,手機及其他無線設(shè)備上網(wǎng)絡(luò)勢在必行。但是 傳統(tǒng)手機存在以下弊端: 1. 傳統(tǒng)手機出廠時均由硬件廠商固化程序,程序不能增加、刪除,有了 錯誤也不能更新、修改,若要增加新功能必須另換一部手機。 2. 傳統(tǒng)手機訪問互聯(lián)網(wǎng)是通過 WAP(Wireless Application Protocal), 所有網(wǎng)絡(luò)資源必須接通網(wǎng)絡(luò)才能在線訪問,非常耗時、費用亦很高。 而 Java 技術(shù)在無線應(yīng)用方面的優(yōu)勢非常明顯: 1. 應(yīng)用程序可按需下載,而不是購買由硬件商提供的套件,可升級空大。 2. Java 技術(shù)提供了一個類庫,它使的應(yīng)用開發(fā)商可以創(chuàng)建更為直覺、豐
15、 富的用戶界面(GUI); 3.Java 技術(shù)使網(wǎng)絡(luò)帶寬的應(yīng)用更為有效,因為應(yīng)用程序可以下載到器件上, 并在本地運行,僅僅是在連接到服務(wù)器時才會占用網(wǎng)絡(luò)帶寬。 3.23.2 J2MEJ2ME 概況概況 .1 J2MEJ2ME 的由來的由來 Java 的最大目標和特點,就是一次編寫,到處運行的平臺無關(guān)性。但是, 一套標準無法適應(yīng)各種不同的需求。因此,Java 技術(shù)目前共有三套,分別針對 第 3 頁 共 24 頁 不同的平臺和應(yīng)用。 Standard Edition(J2SE,標準版):針對桌面端 PC 和工作站的個人和低 端商務(wù)應(yīng)用。 Enterprise Edition(J2E
16、E,企業(yè)版):針對服務(wù)器端企業(yè)級應(yīng)用,支持 Servlets, JSP 和 XML 等等。 Micro Edition(J2ME,袖珍版):針對有限內(nèi)存,顯示和處理能力的設(shè)備, 主要是消費電子和嵌入式設(shè)備領(lǐng)域(這實際正是 Java 語言設(shè)計最初的目標領(lǐng)域) 。 圖 2 java 總體架構(gòu)圖 在消費電子和嵌入式設(shè)備領(lǐng)域,內(nèi)存從幾百 K 到幾十 M,從沒有屏幕到 Web-TV,CPU 從低功耗的嵌入式處理器到 206MHz 的 RISC 處理器,硬件條件的 差異是相當大的。這就使得 J2ME 的標準需要有不同的層次和類別來適應(yīng)這個復 雜的領(lǐng)域,因此相比之下 J2ME 就比 J2SE 和 J2EE
17、的標準要復雜得多。因此,清 楚的理解 J2ME 的體系結(jié)構(gòu)的劃分才能更好的理解和掌握 J2ME。 .2 J2MEJ2ME 的的 3 3 層體系結(jié)構(gòu)及層體系結(jié)構(gòu)及 MIDPMIDP 簡介簡介 J2ME 的 3 層體系結(jié)構(gòu)依照各種設(shè)備的資源特性,將 J2ME 技術(shù)構(gòu)架分為簡 表(Profile) 、配置(Configuration)和 Java Virtual Machine(JVM)3 層, 然后再進一步細分,這使 J2ME 能夠在每一類設(shè)備的限制下工作,而同時提供最 低限度的 Java 語言功能性。 關(guān)于 J2ME 的體系結(jié)構(gòu),可以這樣來進行總結(jié):Configuration 的
18、分類是根 據(jù)計算能力的不同來劃分的,同類設(shè)備的計算能力相近。Configuration 是一 個規(guī)范,定義了這類設(shè)備的共同 Java 平臺,定義與設(shè)備無關(guān)的 Java 虛擬機和 核心庫,是平臺相容性的基礎(chǔ)。Profile 的分類是根據(jù)設(shè)備功能劃分的,同類 功能的設(shè)備其他各種硬件條件和需求也相近。Profile 是一組 API,在某一 第 4 頁 共 24 頁 Configuration 的基礎(chǔ)上擴展了針對設(shè)備特定功能的 API,使得標準能夠完全適 應(yīng)特殊的設(shè)備,徹底發(fā)揮設(shè)備的功能。 J2ME 體系的一般結(jié)構(gòu)是:由 Configuration 定義的 Java 虛擬機運行于設(shè) 備的宿主操作系統(tǒng)之
19、上,構(gòu)成整個平臺的基礎(chǔ)。Configuration 提供了基本的 語言特性,Profile 提供針對設(shè)備的特殊功能 API 和擴展類庫。應(yīng)用程序的運 行環(huán)境需要一個 Configuration 和至少一個 Profile,多個 Profile 可以共存, 也可以疊加。 MIDP(Mobile Information Device Profile)定義了針對移動信息處理設(shè) 備(主要指智能手機和一部分具有無線通信功能的 PDA)的圖形界面,輸入和 時間處理,持久性存儲,無線電話網(wǎng)絡(luò)連接之上的一些消息處理(例如短消息) , 安全等等 API,并且考慮到了移動信息設(shè)備的屏幕和內(nèi)存限制。類似于 J2SE
20、 中 的 Applet 框架,MIDP 提供了基于 javax.microedition.midlet 包的 MIDlet 應(yīng) 用程序框架。 應(yīng)為 MIDP 提出較的比較早,目前重要的智能手機和 PDA 操作系統(tǒng)上都已有 了相應(yīng)的實現(xiàn),而且應(yīng)用的也比較廣泛。 3.33.3 tomcattomcat 服務(wù)器介紹服務(wù)器介紹 Tomcat 是一個免費的開源的 Serlvet 容器,它是 Apache 基金會的 Jakarta 項目中的一個核心項目,由 Apache,Sun 和其它一些公司及個人共同開發(fā)而成。 由于有了 Sun 的參與和支持,最新的 Servlet 和 Jsp 規(guī)范總能在 Tomcat
21、 中得到 體現(xiàn)。Tomcat 被 JavaWorld 雜志的編輯選為 2001 年度最具創(chuàng)新的 java 產(chǎn)品, 可見其在業(yè)界的地位。 由于 Java 的跨平臺特性,基于 Java 的 Tomcat 也具有跨平臺性。與傳統(tǒng)的 桌面應(yīng)用程序不同,Tomcat 中的應(yīng)用程序是一個 WAR(Web Archive)文件。 WAR 是 Sun 提出的一種 Web 應(yīng)用程序格式,與 JAR 類似,也是許多文件的一個 壓縮包。這個包中的文件按一定目錄結(jié)構(gòu)來組織:通常其根目錄下包含有 Html 和 Jsp 文件或者包含這兩種文件的目錄,另外還會有一個 WEB-INF 目錄,這個 目錄很重要。通常在 WEB-
22、INF 目錄下有一個 web.xml 文件和一個 classes 目錄, web.xml 是這個應(yīng)用的配置文件,而 classes 目錄下則包含編譯好的 Servlet 類和 Jsp 或 Servlet 所依賴的其它類(如 JavaBean) 。通常這些所依賴的類也 可以打包成 JAR 放到 WEB-INF 下的 lib 目錄下,當然也可以放到系統(tǒng)的 CLASSPATH 中,但那樣移植和管理起來不方便。 在 Tomcat 中,應(yīng)用程序的部署很簡單,你只需將你的 WAR 放到 Tomcat 的 webapp 目錄下,Tomcat 會自動檢測到這個文件,并將其解壓。你在瀏覽器中訪 問這個應(yīng)用的 J
23、sp 時,通常第一次會很慢,因為 Tomcat 要將 Jsp 轉(zhuǎn)化為 第 5 頁 共 24 頁 Servlet 文件,然后編譯。編譯以后,訪問將會很快。另外 Tomcat 也提供了一 個應(yīng)用:manager,訪問這個應(yīng)用需要用戶名和密碼,用戶名和密碼存儲在一個 xml 文件中。通過這個應(yīng)用,輔助于 Ftp,你可以在遠程通過 Web 部署和撤銷應(yīng) 用。當然本地也可以。 Tomcat 不僅僅是一個 Servlet 容器,它也具有傳統(tǒng)的 Web 服務(wù)器的功能: 處理 Html 頁面。但是與 Apache 相比,它的處理靜態(tài) Html 的能力就不如 Apache。我們可以將 Tomcat 和 Apac
24、he 集成到一塊,讓 Apache 處理靜態(tài) Html,而 Tomcat 處理 Jsp 和 Servlet。這種集成只需要修改一下 Apache 和 Tomcat 的配置文件即可。 基于 Tomcat 的開發(fā)其實主要是 Jsp 和 Servlet 的開發(fā),開發(fā) Jsp 和 Servlet 非常簡單,你可以用普通的文本編輯器或者 IDE,然后將其打包成 WAR 即可。 Tomcat 確實是一個很好的工具,不僅僅因為其免費,功能強大,更因為其 開放性。 3.43.4 servletservlet 技術(shù)介紹技術(shù)介紹 Servlet 是用 Java 編寫的 Server 端程序,它與協(xié)議和平臺無關(guān)。S
25、ervlet 運行于 Javaenabled Web Server 中。Java Servlet 可以動態(tài)地擴展 Server 的能力,并采用請求響應(yīng)模式提供 Web 服務(wù)。 最早支持 Servlet 技術(shù)的是 JavaSoft 的 Java Web Server。此后,一些其 它的基于 Java 的 Web Server 開始支持標準的 Servlet API。 一、Servlet 的特點 Servlet 是 Java 技術(shù)對 CGI 編程的回答。Servlet 程序在服務(wù)器端運行, 動態(tài)地生成 Web 頁面。與傳統(tǒng)的 CGI 和許多其他類似 CGI 的技術(shù)相比,Java Servlet 具
26、有更高的效率,更容易使用,功能更強大,具有更好的可移植性, 更節(jié)省投資。 1、高效 在傳統(tǒng)的 CGI 中,每個請求都要啟動一個新的進程,如果 CGI 程序本身的 執(zhí)行時間較短,啟動進程所需要的開銷很可能反而超過實際執(zhí)行時間。而在 Servlet 中,每個請求由一個輕量級的 Java 線程處理(而不是重量級的操作系 統(tǒng)進程) 。在傳統(tǒng) CGI 中,如果有 N 個并發(fā)的對同一 CGI 程序的請求,則該 CGI 程序的代碼在內(nèi)存中重復裝載了 N 次;而對于 Servlet,處理請求的是 N 個線 程,只需要一份 Servlet 類代碼。在性能優(yōu)化方面,Servlet 也比 CGI 有著更 多的選擇,
27、比如緩沖以前的計算結(jié)果,保持數(shù)據(jù)庫連接的活動,等等。 2、方便 第 6 頁 共 24 頁 Servlet 提供了大量的實用工具例程,例如自動地解析和解碼 HTML 表單數(shù) 據(jù)、讀取和設(shè)置 HTTP 頭、處理 Cookie、跟蹤會話狀態(tài)等。 3、功能強大 在 Servlet 中,許多使用傳統(tǒng) CGI 程序很難完成的任務(wù)都可以輕松地完成。 例如,Servlet 能夠直接和 Web 服務(wù)器交互,而普通的 CGI 程序不能。Servlet 還能夠在各個程序之間共享數(shù)據(jù),使得數(shù)據(jù)庫連接池之類的功能很容易實現(xiàn)。 4、可移植性好 Servlet 用 Java 編寫,Servlet API 具有完善的標準。因
28、此,為 I-Planet Enterprise Server 寫的 Servlet 無需任何實質(zhì)上的改動即可移植到 Apache、Microsoft IIS 或者 WebStar。幾乎所有的主流服務(wù)器都直接或通過插 件支持 Servlet。 5、節(jié)省投資 不僅有許多廉價甚至免費的 Web 服務(wù)器可供個人或小規(guī)模網(wǎng)站使用,而且 對于現(xiàn)有的服務(wù)器,如果它不支持 Servlet 的話,要加上這部分功能也往往是 免費的(或只需要極少的投資) 。 二、Servlet 的主要功能 Servlet 的主要功能在于交互式地瀏覽和修改數(shù)據(jù),生成動態(tài) Web 內(nèi)容。 這個過程為: 客戶端發(fā)送請求至服務(wù)器端; 服務(wù)
29、器將請求信息發(fā)送至 Servlet; Servlet 生成響應(yīng)內(nèi)容并將其傳給 Server。響應(yīng)內(nèi)容動態(tài)生成,通常取決 于客戶端的請求; 服務(wù)器將響應(yīng)返回給客戶端; Servlet 看起來像是通常的 Java 程序。Servlet 導入特定的屬于 Java Servlet API 的包。因為是對象字節(jié)碼,可動態(tài)地從網(wǎng)絡(luò)加載,可以說 Servlet 對 Server 就如同 Applet 對 Client 一樣,但是,由于 Servlet 運行于 Server 中,它們并不需要一個圖形用戶界面。從這個角度講,Servlet 也被稱為 Faceless Object。 三、JAVA Servlet
30、 的優(yōu)勢 Servlet 可以和其他資源(文件、數(shù)據(jù)庫、Applet、Java 應(yīng)用程序等)交互, 以生成返回給客戶端的響應(yīng)內(nèi)容。如果需要,還可以保存請求響應(yīng)過程中的 信息。 采用 Servlet,服務(wù)器可以完全授權(quán)對本地資源的訪問(如數(shù)據(jù)庫),并且 Servlet 自身將會控制外部用戶的訪問數(shù)量及訪問性質(zhì)。 第 7 頁 共 24 頁 Servlet 可以是其它服務(wù)的客戶端程序,例如,它們可以用于分布式的應(yīng) 用系統(tǒng)中,可以從本地硬盤,或者通過網(wǎng)絡(luò)從遠端硬盤激活 Servlet。 采用 Servlet Tag 技術(shù),可以在 HTML 頁面中動態(tài)調(diào)用 Servlet。 Servlet API 與協(xié)
31、議無關(guān)。它并不對傳遞它的協(xié)議有任何假設(shè)。 像所有的 Java 程序一 樣,Servlet 擁有面向?qū)ο?Java 語言的所有優(yōu)勢 Servlet 提供了 Java 應(yīng)用程 序的所有優(yōu)勢可移植、穩(wěn)健、易開發(fā)。使用 Servlet 的 Tag 技術(shù), Servlet 能夠生成嵌于靜態(tài) HTML 頁面中的動態(tài)內(nèi)容。 一個 Servlet 被客戶端 發(fā)送的第一個請求激活,然后它將繼續(xù)運行于后臺,等待以后的請求。每個請 求將生成一個新的線程,而不是一個完整的進程。多個客戶能夠在同一個進程 中同時得到服務(wù)。一般來說,Servlet 進程只是在 Web Server 卸載時被卸載。 4 4 開發(fā)環(huán)境介紹開發(fā)
32、環(huán)境介紹 4.14.1 開發(fā)環(huán)境開發(fā)環(huán)境 操作系統(tǒng):Microsoft Windows XP 程序語言:Java 2 開發(fā)平臺:Java 2 Micro Edition + Tomcat 5.0 開發(fā)工具: SAMSUNG Wireless Tool Kit 2.1+ eclipse3.0.1 4.24.2 關(guān)于關(guān)于 SAMSUNGSAMSUNG WirelessWireless ToolTool KitKit SAMSUNG WTK(SAMSUNG Wireless Tool Kit)是 SAMSUNG 公司針對 J2ME 推出 的用于手機和 Palm 等移動設(shè)備的軟件開發(fā)包,它通用性高,開
33、發(fā)出的應(yīng)用程序 可保證能運行在大部分設(shè)備上,具有強大的功能和完善的調(diào)試手段,它提供了 運行模擬器的最基本組件,是其他 IDE 需集成采用的必備元素,也可以單獨使 用。 5 5 客戶端模塊的開發(fā)客戶端模塊的開發(fā) 5.15.1 綜述綜述 客戶端部分主要劃分為 3 個界面:菜單界面,登錄界面、游戲界面。 具體實現(xiàn)的功能為: 1、菜單界面:有如下選項: 進入游戲進入到用戶登錄界面; 操作說明進入說明界面,說明游戲軟件的操作方法; 2、登錄界面: 得到用戶輸入的用戶名和密碼,向服務(wù)器提交,如果身份驗證成功,界面 則跳轉(zhuǎn)到游戲界面,如果身份驗證失敗,則彈出警告窗口,說明登錄失敗原因。 第 8 頁 共 24
34、 頁 3、游戲界面: 用戶游戲時看到的界面,負責根據(jù)需要畫圖。 5.25.2 程序的類結(jié)構(gòu)程序的類結(jié)構(gòu) 5.35.3 游戲的功能流程圖游戲的功能流程圖 5.45.4 游戲的實現(xiàn)游戲的實現(xiàn) .1 主類主類 OmokOmok 的實現(xiàn)的實現(xiàn) .2 游戲登錄界面以及操作說明界面的實現(xiàn)游戲登錄界面以及操作說明界面的實現(xiàn) 這兩個類的實現(xiàn)都是繼承了 Form 類,來添加各種組件的。下面是效果圖: 圖 6 Form 界面效果圖 下面先來分析 logo 類: class Logo extends Form implements CommandListener 這是類的聲明,它繼承
35、了 Form 類,同時派生了一個接口,用來產(chǎn)生按鈕事 件。 Logo(Omok midlet) super(); this.midlet = midlet; UserName=new TextField(用戶名,9,TextField.ANY); UserPassword=new TextField(密 碼,9,TextField.PASSWORD); try 第 9 頁 共 24 頁 img=new ImageItem(,Image.createImage(/1.png),ImageItem.LAYOUT_CENTER,image explorer); catch(java.io.IOExc
36、eption e) append(img); append(UserName); append(UserPassword); backCommand = new Command(登錄, Command.BACK, 1); exit = new Command(退出, Command.EXIT, 1); addCommand(backCommand); / addCommand(exit); setCommandListener(this); 這是他的構(gòu)造方法,創(chuàng)建了 2 個輸入框,并添加到 Form 上,并且還加上了 2 個按鈕。 Help 類的實現(xiàn)和它類似,因此不再詳細介紹。 5.4.35.
37、4.3 游戲畫布類的實現(xiàn)游戲畫布類的實現(xiàn) 在 J2ME 游戲編程中,Canvas 類是最常用的類之一,該類提供了獲得手機 屏幕屬性、繪制界面以及事件處理等很多實用的功能。 Canvas 類是 Displayable 的子類,在實際的使用過程,一般都通過繼承 Canvas 來利用該類提供的功能。Canvas 類是一個抽象類,繼承該類的時候必須 覆蓋 paint 方法。來看游戲畫面: 第 10 頁 共 24 頁 圖 7 游戲運行效果圖 首先先看下它的構(gòu)造方法: public OmokCanvas() board = new OmokBoard();/創(chuàng)建畫板 cursor = new Cursor
38、();/創(chuàng)建光標 connector = new ServerConnector(this); setGameMode(INIT);/設(shè)置模式 在它里面,創(chuàng)建了畫板,光標、連接器。并且設(shè)置了模式。 然后來看具有流程控制作用的 setGameMode 方法: private void setGameMode(int gameMode) this.gameMode = gameMode; switch(gameMode) case INIT : id0 = id1 = -1;/設(shè)置標記變量初始值 row = col = 6;/初始化棋盤大小 board.init(); break; case CO
39、NNECT : Thread cthread = new Thread() public void run() repaint(); if(islogin) connect(); else loginGame(); ; 第 11 頁 共 24 頁 cthread.start(); break; case TURN0 : cursor.setLocation(row, col); break; case TURN1 : connector.receiveData(id0); break; repaint(); 在這里面,定義了 4 種狀態(tài)時所要處理的事件,在這個程序中的別的方法 里,當滿足一定條
40、件的時候,就開始設(shè)置那些狀態(tài)變量,從而實現(xiàn)了流程的控 制。 .4 網(wǎng)絡(luò)連接類的實現(xiàn)網(wǎng)絡(luò)連接類的實現(xiàn) 在 J2ME 中,專門提供了一個網(wǎng)絡(luò)連接框架GCF。它為資源有限的設(shè)備 提供了一個可擴展的、通用的 I/O 框架。GCF 是一組在 javax.microedition.io 包中定義的接口。 在 GCF 中共定義了七個接口 ,其中 Connection 是最基本的連接類型, 且同時提供了對數(shù)據(jù)包和流連接的支持。沿著層次結(jié)構(gòu)向下派生出提供更多功 能的接口。在 MIDP 1.0 規(guī)范只要求設(shè)備支持 HTTP 連接協(xié)議,而更新的 MIDP 2.0 規(guī)范要求同時支持 HTTP 和 HT
41、TPS,后者提供了對更安全的網(wǎng)絡(luò)連接的支 持。 下面來分析核心代碼: /打開連接 private String readPage(String url) throws IOException StringBuffer result = new StringBuffer(); HttpConnection c = null; InputStream is = null; try c = (HttpConnection)Connector.open(url); is = c.openInputStream(); 第 12 頁 共 24 頁 int ch = 0; while (ch = is.re
42、ad() != -1) result.append(char)ch); finally if (is != null) is.close(); if (c != null) c.close(); return result.toString(); 在這個方法中,首先建立了一個連接,采用流來得到數(shù)據(jù),當數(shù)據(jù)傳輸完 畢后,關(guān)閉流,關(guān)閉連接。 下面的代碼則是發(fā)送數(shù)據(jù)和接收數(shù)據(jù)的時候采用多線程: public void sendData(final int id1, final String data) Thread thread = new Thread() public void run() tr
43、y readPage(URL+?command=sendData catch (IOException e) ; thread.start(); public void receiveData(final int id0) Thread thread = new Thread() public void run() receive(id0); ; thread.start(); 在目標設(shè)備具有內(nèi)存小,計算能力弱和電池供電等特點的時候,如何使應(yīng)用 程序高效的運行就成為開發(fā)中的一個大問題.尤其針對手機等移動信息設(shè)備時, 第 13 頁 共 24 頁 無線通訊的特點又對我們的程序提出了更高的要求.從代
44、碼優(yōu)化的角度,在網(wǎng)絡(luò) 編程中引入多線程就顯得十分重要。 當程序運行的時候,Application Management Software(應(yīng)用管理軟件)首 先初始化一個 MIDlet,然后調(diào)用它的 startApp()方法使得 MIDlet 進入 active 狀態(tài),這條程序分支就是主線程,它執(zhí)行其他的方法后都會返回到這個分支上 來繼續(xù)執(zhí)行。然而網(wǎng)絡(luò)連接是個可能堵塞的操作,意味著它可能長時間都不返 回。 在三星公司的無線開發(fā)包 WTK 中模擬一段網(wǎng)絡(luò)連接程序運行時,WTK 會提 示網(wǎng)絡(luò)連接工作可能會堵塞用戶輸入,需要創(chuàng)建另外一個線程去進行聯(lián)網(wǎng)操作。 所以針對以上情況,采用多線程進行實現(xiàn)。 5.
45、 五子棋獲勝算法五子棋獲勝算法 因為本系統(tǒng)模擬的重點是網(wǎng)絡(luò)連接,數(shù)據(jù)交互以及怎樣來初步實現(xiàn)一個簡 單的手機網(wǎng)絡(luò)游戲,所以對于五子棋游戲的規(guī)則方面并沒有考慮太多,禁手等 游戲規(guī)則都沒有考慮,而僅僅實現(xiàn)了五子棋的獲勝算法,這點是這次畢業(yè)設(shè)計 的很大不足之處。 下面這個方法就是來實現(xiàn)五子棋的獲勝算法: /檢測是否獲勝 public int checkStones() for (int x = 0;x 11;x+) for (int y = 0;y 999) ? 0 : idCount+1; else if (command.equals(login) String userid =
46、getParameterValue(request, UserId); String psw = getParameterValue(request, Psw); System.out.println(userid); System.out.println(psw); String sql =select * from users where id=+userid+; try ResultSet result0=ExecuteQuery(sql); if(result0.next() 第 16 頁 共 24 頁 String password = result0.getString(passw
47、ord); if(password.equals(psw) dataMap.remove(String.valueOf(idCount); result = String.valueOf(idCount); System.out.println(result); idCount = (idCount 999) ? 0 : idCount+1; else result=String.valueOf(-1); else result=String.valueOf(-1); catch(Exception e)System.out.println(訪問數(shù)據(jù)庫出錯); /斷開 else if (com
48、mand.equals(disconnect) String id = getParameterValue(request, id); dataMap.put(id, E); /發(fā)送數(shù)據(jù) else if (command.equals(sendData) String id = getParameterValue(request, id); String data = getParameterValue(request, data); dataMap.put(id, data); /接收數(shù)據(jù) else if (command.equals(receiveData) String id =get
49、ParameterValue(request, id); if (dataMap.containsKey(id) result = (String)dataMap.remove(id); 第 17 頁 共 24 頁 PrintWriter pw = response.getWriter(); pw.print(result);/返回分配給每個客戶端分配的代號 pw.flush(); pw.close(); 在這個方法中,分別就 5 種狀態(tài)進行了分別的處理,包括:用戶驗證狀態(tài)、 連接狀態(tài)、發(fā)送狀態(tài)、接受狀態(tài)以及斷開狀態(tài)??蛻舳嗽谶M行登錄,身份驗證 的時候,狀態(tài)為 login,然后提交用戶名密碼,
50、當這個 servlet 接收到信息后, 首先查詢信息的狀態(tài),然后進行相應(yīng)的處理,這次狀態(tài)為“l(fā)ogin”,所以提取 用戶名密碼 進行查詢,如果都匹配的話,返回分配給這個客戶端的號碼,以便 以后傳輸信息用。如果不匹配的話,則返回-1。身份驗證成功的客戶端,以后 在每次發(fā)送消息的時候都要附帶發(fā)送之前被分配的那個號碼,因為手機是沒有 ip 地址的,并且本系統(tǒng)的傳輸協(xié)議為 http 連接,為了區(qū)分發(fā)送過來的信息的 來源,就必須附加一個號碼,每次解吸信息前,先提取是哪個號碼發(fā)送來的信 息,然后把信息放到 hashtable 中,然后等待與這個號碼相匹配的另一個號碼 發(fā)送請求來取走信息。 7 7 改進建議
51、和措施改進建議和措施 7.17.1 關(guān)于圖片問題關(guān)于圖片問題 在編程過程中,由于沒有美工,本人又不會太多的圖片處理技術(shù),所以有 一些圖片是從 上面搜索到的,然后再進行加工,因為本題目為 畢業(yè)設(shè)計,不是商業(yè)用途,所以對于侵犯版權(quán)問題,不應(yīng)該存在。 7.27.2 軟件測試軟件測試 .1 測試前的準備工作測試前的準備工作 第一步:首先必須在 PC 上安裝 J2SE SDK 1.4.2 第二步:下載 SAMSUNG WTK2.0,這個程序是三星手機的軟件開發(fā)包,里面 包含有很多種型號的手機模擬器,我們需要的就是這個模擬器。 第三步:雙擊桌面上開發(fā)包程序的快捷方式,打開開發(fā)包程序,然后打
52、開 開發(fā)包內(nèi)自帶的工程,啟動模擬器,運行那個工程,測試下軟件是否安裝成功。 Java 語言并沒有完全編譯成二進制可執(zhí)行文件,編譯出的.class 文件是一 種介于源程序和二進制之間的一種基于半解釋的字節(jié)碼,需要虛擬機來執(zhí)行。 第 18 頁 共 24 頁 它包括了所有的信息。然而這樣會導致.class 很容易被反編譯為源代碼,從而不 能保護作者的知識成果。目前流行的如 decodeJAD 等反編譯工具可以以很快的 速度生成源文件。如果不加以施行有效的措施,將造成嚴重的后果。 由此引入混淆器的概念?;煜鲗⒋a中的所有變量、函數(shù)、類的名稱變 為簡短的英文字母代號,如果缺乏相應(yīng)的函數(shù)名指示和程序注釋
53、,即使被反編 譯,也將難以閱讀。 混淆器的作用不僅僅是保護代碼,它也有精簡編譯后程序大小的作用。由 于以上介紹的減少變量、函數(shù)的命名長度的關(guān)系,編譯后也會從.class 文件中 減少這些冗余的信息。混淆后,體積大約能減少 25%,這對當前費用較貴的無 線網(wǎng)絡(luò)傳輸是有一定意義的。 打包具體過程: 游戲文件打包實際上就是生成 jar、jad 文件。wtk 中文件打包是這樣實現(xiàn) 的: 圖 8 打包效果圖 .2 進行測試進行測試 進行游戲系統(tǒng)測試的目的是發(fā)現(xiàn)錯誤,一個成功的測試是發(fā)現(xiàn)了迄今為止 還沒有發(fā)現(xiàn)的錯誤。因為游戲系統(tǒng)的功能實現(xiàn)最終是通過界面體現(xiàn)出來的,所 以我們下面的測試將游戲
54、系統(tǒng)功能測試和界面測試結(jié)合起來進行。 1、進入游戲前的顯示界面 (圖 9) 2、用戶登錄界面(圖 10) 3、游戲界面(圖 11) 第 19 頁 共 24 頁 圖 9顯示界面 圖 10 登錄界面 圖 11 游戲界面 測試過程中發(fā)現(xiàn)的 bug: 1、錄界面中,輸入用戶名的時候,要先把光標移動到下面輸入框內(nèi) 2、如果用戶名輸入錯誤后,第二次輸入的時候則不能登錄進去 3、游戲中如果用戶較多,回合較多的話,會有數(shù)量限制 游戲 bug 的解決: 1、由于經(jīng)驗問題,這個問題還未解決 2、把登錄函數(shù)轉(zhuǎn)移到登錄界面類中去 3、由于技術(shù)問題,還未得到解決辦法 .3 有待添加和完善的功能有待添加和
55、完善的功能 1、界面設(shè)計不夠美觀。界面采用統(tǒng)一的方格塊,看起來很單調(diào)。游戲任務(wù) 失敗和任務(wù)完成都是通過文字顯示,缺少畫面效果。 2、游戲沒有時間控制模塊。 3、玩家人數(shù)有限制。 結(jié)結(jié) 論論 程序設(shè)計實現(xiàn)了手機上聯(lián)網(wǎng)游戲的開發(fā)以及后臺的實現(xiàn),具有一定的可玩 性和復雜性。經(jīng)過了細心的調(diào)試和排錯解決了絕大部分的問題。 現(xiàn)在已經(jīng)做出的是游戲的 1.0 版本,實現(xiàn)了游戲的最基本功能,還有一些 第 20 頁 共 24 頁 在游戲中應(yīng)有的功能沒有能實現(xiàn),離一個完全意義上的手機網(wǎng)絡(luò)游戲還有很大 一段的距離: 1.游戲只在模擬器上運行,還沒有經(jīng)過真機調(diào)試; 2.游戲的選項界面沒有經(jīng)過任何效果美化; 3.后臺實現(xiàn)
56、比較簡單 參考文獻參考文獻 1 胡虛懷,楊志和,李煥.J2ME 移動設(shè)備程序設(shè)計M.北京:清華大學出版社,2005。 2 李振鵬,龔劍.J2ME 手機游戲開發(fā)技術(shù)詳解M.北京:清華大學出版社,2006。 3 詹建飛.J2ME 開發(fā)精解M.北京:電子工業(yè)出版社,2006。 4 施錚.J2ME 技術(shù)參考手冊M.北京:電子工業(yè)出版社,2004。 5 微型爪哇人.JAVA 手機開發(fā)M.北京:中國鐵道出版社,2003。 6 聞怡洋.J2ME MIDP 1.0/2.0 無線設(shè)備編程指南M.北京:北京大學出版社,2004。 1 原文已完。下文為附加文檔,如不需要,下載后可以編輯刪除,謝謝! 施工組織設(shè)計 本
57、施工組織設(shè)計是本著“一流的質(zhì)量、一流的工期、科學 管理”來進行編制的。編制時,我公司技術(shù)發(fā)展部、質(zhì)檢科以 及項目部經(jīng)過精心研究、合理組織、充分利用先進工藝,特制 定本施工組織設(shè)計。 一、 工程概況: 西夏建材城生活區(qū) 27#、30#住宅樓位于銀川市新市區(qū),橡膠 廠對面。 本工程由寧夏燕寶房地產(chǎn)開發(fā)有限公司開發(fā),銀川市規(guī)劃建 筑設(shè)計院設(shè)計。 本工程耐火等級二級,屋面防水等級三級,地震防烈度為 8 度,設(shè)計使用年限 50 年。 本工程建筑面積:27#樓 3824.75m2;30#樓 3824.75 m2。室內(nèi)地 坪0.00 以絕對標高 1110.5 m 為準,總長 27#樓 47.28m;30#樓
58、 47.28 m。總寬 27#樓 14.26m;30#樓 14.26 m。設(shè)計室外地坪至檐 口高度 18.6 00m,呈長方形布置,東西向,三個單元。 本工程設(shè)計屋面為坡屋面防水采用防水涂料。外墻水泥砂漿 抹面,外刷淺灰色墻漆。內(nèi)墻面除衛(wèi)生間 200300 瓷磚,高到 頂外,其余均水泥砂槳罩面,刮二遍膩子;樓梯間內(nèi)墻采用 50 2 厚膠粉聚苯顆粒保溫。地面除衛(wèi)生間 200200 防滑地磚,樓梯 間 50 厚細石砼 1:1 水泥砂漿壓光外,其余均采用 50 厚豆石砼 毛地面。樓梯間單元門采用樓宇對講門,臥室門、衛(wèi)生間門采 用木門,進戶門采用保溫防盜門。本工程窗均采用塑鋼單框雙 玻窗,開啟窗均加紗
59、扇。本工程設(shè)計為節(jié)能型住宅,外墻均貼 保溫板。 本工程設(shè)計為磚混結(jié)構(gòu),共六層。基礎(chǔ)采用 C30 鋼筋砼條 形基礎(chǔ),上砌 MU30 毛石基礎(chǔ),砂漿采用 M10 水泥砂漿。一、 二、三、四層墻體采用 M10 混合砂漿砌筑 MU15 多孔磚;五層 以上采用 M7.5 混合砂漿砌筑 MU15 多孔磚。 本工程結(jié)構(gòu)中使用主要材料:鋼材:I 級鋼,II 級鋼;砼: 基礎(chǔ)墊層 C10,基礎(chǔ)底板、地圈梁、基礎(chǔ)構(gòu)造柱均采用 C30,其 余均 C20。 本工程設(shè)計給水管采用 PPR 塑料管,熱熔連接;排水管采 用 UPVC 硬聚氯乙烯管,粘接;給水管道安裝除立管及安裝 IC 卡水表的管段明設(shè)計外,其余均暗設(shè)。 本
60、工程設(shè)計采暖為鋼制高頻焊翅片管散熱器。 本工程設(shè)計照明電源采用 BV2.5 銅芯線,插座電源等采 用 BV4 銅芯線;除客廳為吸頂燈外,其余均采用座燈。 二、 施工部署及進度計劃 1、工期安排 本工程合同計劃開工日期:2004 年 8 月 21 日,竣工日期: 3 2005 年 7 月 10 日,合同工期 315 天。計劃 2004 年 9 月 15 日前 完成基礎(chǔ)工程,2004 年 12 月 30 日完成主體結(jié)構(gòu)工程,2005 年 6 月 20 日完成裝修工種,安裝工程穿插進行,于 2005 年 7 月 1 日前完成。具體進度計劃詳見附圖1(施工進度計劃) 。 2、施工順序 基礎(chǔ)工程 工程定
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 自然課題申報書撰寫模板
- 語文道法融合課題申報書
- 教研課題申報書范本模板
- app租車合同范本
- 課題申報書文檔格式要求
- 出口oem訂單合同范本
- 公司授權(quán)租賃合同范本
- 中小學課題申報 評審書
- 光伏安裝工合同范本
- 舞臺美術(shù)課題申報書
- 催化材料智慧樹知到答案章節(jié)測試2023年南開大學
- GB/T 9846.1-2004膠合板第1部分:分類
- GB/T 32685-2016工業(yè)用精對苯二甲酸(PTA)
- 部編優(yōu)質(zhì)課國家一等獎初中語文八年級下冊《大道之行也》
- 小學六年級下冊心理健康教育-1多種角度看自己-課件
- 2023年重慶市春招考試信息技術(shù)模擬試題一
- 醫(yī)囑制度檢查總結(jié)(4篇)
- 普中51單片機開發(fā)攻略
- 2022年廊坊市財信投資集團有限公司招聘筆試試題及答案解析
- 《小餐飲經(jīng)營許可證》注銷申請表
- 《我愛你漢字》課件
評論
0/150
提交評論