計算機科學(xué)技術(shù)畢業(yè)論文:技術(shù)創(chuàng)新對公路運輸市場體系的作用和影響分析與研究_第1頁
計算機科學(xué)技術(shù)畢業(yè)論文:技術(shù)創(chuàng)新對公路運輸市場體系的作用和影響分析與研究_第2頁
計算機科學(xué)技術(shù)畢業(yè)論文:技術(shù)創(chuàng)新對公路運輸市場體系的作用和影響分析與研究_第3頁
計算機科學(xué)技術(shù)畢業(yè)論文:技術(shù)創(chuàng)新對公路運輸市場體系的作用和影響分析與研究_第4頁
計算機科學(xué)技術(shù)畢業(yè)論文:技術(shù)創(chuàng)新對公路運輸市場體系的作用和影響分析與研究_第5頁
已閱讀5頁,還剩87頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

畢業(yè)設(shè)計〔論文〕論文題目:技術(shù)創(chuàng)新對公路運輸市場體系的作用和影響分析與研究學(xué)生:XXX指導(dǎo)教師:XXX教授學(xué)院:成人教育學(xué)院專業(yè)年級:土木工程摘要人工智能是一門正在迅速開展的新興的,綜合性很強的交叉科學(xué)。它與生物工程、空間技術(shù)一起被并列為二十一世界三大尖端技術(shù)。它的中心任務(wù)是研究如何使計算機去做那些過去只能靠人的智力才能做的工作。目前各興旺國家都把人工智能作為重點工程,列入本國的高科技開展方案當中,投入巨大的人力和物力。計算機人機對弈也是其中之一。作為人智能研究的一個重要分支,計算機博弈是檢驗人工水平的一個重要方面。它的研究為人工智能帶來了很多重要的方法和理論,產(chǎn)生了廣泛的社會影響和學(xué)術(shù)影響。五子棋人機對弈是計算機博弈中的一種。研究其計算機算法,可以讓我們看到人工智能的稚形,也有助于我們?nèi)四X的開發(fā)。五子棋是我國創(chuàng)造的,研究它可以讓更多的外國人了解五子棋,這有助于我國優(yōu)秀文化的推廣。關(guān)鍵詞:人工智能;計算人機對弈;五子棋;JSP

JAVArenjuplaychessprogramdesignandimplementationBasedonWebABSTRACTArtificialintelligenceisarapidlydevelopingnew,integratedastrongFrontierScience.Itiswithbio-engineering,spacetechnologyhasbeenlistedas21intheworldalongwiththethreecutting-edgetechnology.Itscentraltaskistostudyhowtomakethecomputerdothatinthepasttorelyonhumanintelligencetodo.AIiscurrentlyregardedasthefocusofthedevelopedcountriesincludedinthiscar'shigh-techdevelopmentprojectsinvestedtremendoushumanandmaterialresources.

Man-machinechesscomputerisoneofthem.Asahumanstudyofanimportantbranchofintelligence,thecomputergametotestthelevelofanimportantaspectofthemanual.Itsresearchinartificialintelligencehasresultedinmanyimportantmethodsandtheoriestoproduceawiderangeofsocialimpactandacademicimpact.

Man-machinechessgameRenjuinoneofthecomputer.Tostudythecomputeralgorithm,wecanseethebeginningofartificialintelligenceshadow,butalsohelpustohumanbraindevelopment.BackgammoninventedinChina,andtheresearchitcanallowmoreforeignerstounderstandandhelptopromoteChina'straditionalculture.Keywords:ArtificialIntelligence,Man-machineCchessComputer,Man-machineChess,Algorithm;JS目錄摘要 ABSTRACT 1引言 12五子棋對弈程序的可行性分析 22.1五子棋系統(tǒng)設(shè)計思路 22.2經(jīng)濟可行性分析 2技術(shù)上的可行性 22.4管理上的可行性 23JAVA五子棋對弈現(xiàn)的需求分析 43.1用戶需求分析 43.1.1普通用戶主要需要 43.1.2系級管理員主要需要: 43.1.3系統(tǒng)用例圖: 53.2數(shù)據(jù)字典的描述 5用戶信息表的數(shù)據(jù)字典的描述: 5用戶每次游戲信息表的數(shù)據(jù)字典描述: 63.2.3用戶每盤棋信息表的數(shù)據(jù)字典描述: 63.2.4用戶每步棋信息表的數(shù)據(jù)字典描述: 73.3五子棋對弈系統(tǒng)的數(shù)據(jù)流圖 73.3.1用戶登錄數(shù)據(jù)流圖〔DFD〕 73.3.2普通用戶界面顯示數(shù)據(jù)流圖〔DFD〕 83.3.3管理員用戶界面顯示數(shù)據(jù)流圖〔DFD〕 93.3.4用戶棋局回放數(shù)據(jù)流圖〔DFD〕 94JAVA五子棋對弈系統(tǒng)分析與設(shè)計 104.1系統(tǒng)設(shè)計總體思想、目標 104.2五子棋人機對弈系統(tǒng)的ER模型 114.3JAVA五子棋對弈系統(tǒng)結(jié)構(gòu)、功能設(shè)計 134.3.1系統(tǒng)結(jié)構(gòu)設(shè)計 134.3.2系統(tǒng)功能模塊設(shè)計 144.3.3設(shè)計思路 154.4程序設(shè)計分析 164.5類的設(shè)計 174.6五子棋對弈系統(tǒng)的數(shù)據(jù)庫設(shè)計 214.6.1系統(tǒng)用戶表 214.6.2用戶棋局表 224.6.3用戶棋盤表 224.6.4用戶下棋信息表 235五子棋相關(guān)根底 255.1五子棋相關(guān)解釋 255.2五子棋相關(guān)規(guī)那么 255.3五子棋常用術(shù)語 266系統(tǒng)平臺、計算模式及技術(shù) 296.1計算模式的進化及本系統(tǒng)選用的模式優(yōu)越性 296.1.1集中式管理——主機/終端模式 296.1.2Client/Server模式 296.1.3Brower/Server模式 306.1.4系統(tǒng)采用B/S三層體系結(jié)構(gòu)模式的優(yōu)越性 306.2JSP技術(shù) 326.2.1JSP簡介 326.2.2JSP內(nèi)建對象 336.3MVC設(shè)計模式 356.4Servlet 366.4.1Servlet簡介 366.4.2Servlet優(yōu)勢 376.5MYSQL數(shù)據(jù)庫 386.5.1MYSQL概述 386.5.2MYSQL優(yōu)勢 386.6TomCat效勞器工具概述 396.7環(huán)境的安裝 407系統(tǒng)實現(xiàn) 427.1用戶登陸流程 427.2用戶進入游戲〔初始化數(shù)據(jù)庫棋盤〕流程 437.3用戶玩游戲流程 44添加新用戶 458JAVA五子棋對弈程序設(shè)計的技術(shù)關(guān)鍵 478.1javascript中AJAX技術(shù) 478.2電腦下棋算法設(shè)計 509系統(tǒng)試運行結(jié)果與評價 6710結(jié)束語 68參考文獻 致謝 附錄 1引言電腦已經(jīng)深入到日常工作和生活的方方面面,比方文字處理、信息管理、輔助設(shè)計、圖形圖像處理、教育培訓(xùn)以及游戲娛樂等。Windows系統(tǒng)的推出使電腦從高雅的學(xué)術(shù)殿堂走入了尋常百姓家,各行各業(yè)的人們無須經(jīng)過特別的訓(xùn)練就能夠使用電腦完成許許多多復(fù)雜的工作。然而,雖然現(xiàn)在世界上已經(jīng)充滿了把戲繁多的各種軟件,但它們依然不能滿足用戶的各種特殊需要,人們還不得不開發(fā)適合自己特殊需求的軟件。Java語言作為一種面向?qū)ο蟮木幊陶Z言,具有分布式,可移植,高性能,多線程等特點。通過系統(tǒng)的學(xué)習(xí),人們就可以使用它開發(fā)出功能齊全,滿足特殊需求的應(yīng)用程序。Java語言易學(xué)易用,對學(xué)習(xí)者掌握技能,開拓思維都有很大的幫助。我作為一名學(xué)生,在系統(tǒng)的學(xué)習(xí)了Java語言之后,經(jīng)常用它搞一些小程序。這次畢業(yè)設(shè)計,正好將學(xué)過的Java語言中的各種技術(shù)綜合起來,用myeclipse開發(fā)工具編寫一個小游戲,既對自己學(xué)過的技能進行一次檢驗,也能系統(tǒng)地將學(xué)過的知識復(fù)習(xí)穩(wěn)固。隨著計算機技術(shù)的不斷開展,網(wǎng)絡(luò)技術(shù)的普及范圍越來越廣,網(wǎng)絡(luò)能夠提供的效勞多樣、便捷,已經(jīng)成為人們生產(chǎn)生活中不可缺少的重要組成局部。如今網(wǎng)絡(luò)休閑游戲開展迅速,它憑借健康、方便、互動性強、益智等諸多優(yōu)點,成為大局部現(xiàn)代人休閑娛樂的首選。

2五子棋對弈程序的可行性分析可行性分析是通過對工程的主要內(nèi)容和配套條件,如市場需求、資源供給、建設(shè)規(guī)模、工藝路線、設(shè)備選型、環(huán)境影響、資金籌措、盈利能力等,從技術(shù)、經(jīng)濟、工程等方面進行調(diào)查研究和分析比擬,并對工程建成以后可能取得的財務(wù)、經(jīng)濟效益及社會環(huán)境影響進行預(yù)測,從而提出該工程是否值得投資和如何進行建設(shè)的咨詢意見,為工程決策提供依據(jù)的一種綜合性的系統(tǒng)分析方法。五子棋系統(tǒng)設(shè)計思路五子棋系統(tǒng)根本設(shè)計思路是把系統(tǒng)按照實現(xiàn)模塊進行分解,利用java進行編程。2.2經(jīng)濟可行性分析主要是對工程的經(jīng)濟效益進行評價,本系統(tǒng)開發(fā)費用對于學(xué)員在經(jīng)濟上是可以接受的,并且本系統(tǒng)實施后可以讓用戶很好的對五子棋進行更加深入的研究,有助于開發(fā)用戶智力。技術(shù)上的可行性技術(shù)上的可行性分析主要技術(shù)條件是否順利完成開發(fā)工作,硬、軟件是否滿足開發(fā)者的需要等。該系統(tǒng)采用的簡單的二層結(jié)構(gòu),數(shù)據(jù)庫選用MySQL,它相對于其他的數(shù)據(jù)庫來說,安裝簡單,靈活性、平安性和易用性為數(shù)據(jù)庫編程提供了良好的條件。因此,系統(tǒng)的軟件開發(fā)平臺已成熟可行。硬件方面,科技飛速開展的今天,硬件更新的速度越來越快,容量越來越大,可靠性越來越高,價格越來越低,棋硬件平臺完全能滿足此系統(tǒng)的需求。2.4管理上的可行性主要是管理人員是否支持,現(xiàn)有的管理制度和方法是否科學(xué),規(guī)章制度是否齊全,原始數(shù)據(jù)是否正確等。規(guī)章制度和管理方法為系統(tǒng)的建設(shè)提供了制度保障。綜上所述,此系統(tǒng)開發(fā)目標已明確,在技術(shù)和經(jīng)濟等方面都可行,并且投入少、見效快。因此系統(tǒng)的開發(fā)是完全可行的。

3JAVA五子棋對弈現(xiàn)的需求分析本系統(tǒng)主要根據(jù)根據(jù)老師提出的要求進行的需求分析:3.1用戶需求分析根據(jù)老師提出的要求,我們把系統(tǒng)的用戶分為兩類:普通用戶、系統(tǒng)管理員用戶,下面是我們對兩種用戶的需求進行的分析:3普通用戶主要需要根據(jù)分析,普通用戶具有的功能:〔1〕用戶登錄:用戶根據(jù)自己的密碼登錄本系統(tǒng)?!?〕棋局回放:用戶根據(jù)自己的需求回放自己以前下過的棋局?!?〕玩五子棋:用戶在點擊playgame后會進入游戲界面玩游戲?!?〕悔棋功能:在下棋過程中,用戶根據(jù)自己的需求,選擇悔棋?!?〕更改密碼:用戶可以根據(jù)自己的需求更改自己的密碼。3系級管理員主要需要:系統(tǒng)管理員是本系統(tǒng)的最高權(quán)限的管理員,他不僅具有普通用戶的各種功能,還具有他獨有的功能一下是系統(tǒng)管理員所具備的功能:〔1〕用戶登錄:用戶根據(jù)自己的密碼登錄本系統(tǒng)。〔2〕棋局回放:用戶根據(jù)自己的需求回放自己以前下過的棋局?!?〕玩五子棋:用戶在點擊playgame后會進入游戲界面玩游戲?!?〕悔棋功能:在下棋過程中,用戶根據(jù)自己的需求,選擇悔棋。〔5〕更改密碼:用戶可以根據(jù)自己的需求更改自己的密碼?!?〕管理普通用戶:可以對普通用戶進行添加和刪除。系統(tǒng)用例圖:圖3-1系統(tǒng)用例圖3.2數(shù)據(jù)字典的描述數(shù)據(jù)字典是關(guān)于數(shù)據(jù)的信息的集合,也就是對數(shù)據(jù)流圖包含的所有元素的定義的集合。任何字典最重要的用途都是供人查閱對不了解的條目的解釋,數(shù)據(jù)字典的作用也正是在軟件分析和設(shè)計的過程中給人提供關(guān)于數(shù)據(jù)的描述信息。在本系統(tǒng)中涉及到多種數(shù)據(jù)的存儲,其中包括用戶信息、用戶每次玩游戲的信息、用戶每盤棋的信息、用戶每步棋的信息。下面是給出的本系統(tǒng)的數(shù)據(jù)字典描述用戶信息表的數(shù)據(jù)字典的描述:描述:用與儲存用戶信息,其中有用戶名,當用戶登錄后會在用戶首頁上顯示。用戶密碼用于登錄本系統(tǒng),用戶權(quán)限是整數(shù),1代表普通用戶,既可以通過注冊的用戶;0代表系統(tǒng)用戶,是系統(tǒng)自帶的不可以通過注冊獲得。名字:用戶信息表描述:用戶可以根據(jù)自己的密碼登陸系統(tǒng),系統(tǒng)根據(jù)用戶的信息來判斷用戶的權(quán)限,主要存儲的是用戶用戶信息和用戶權(quán)限。定義:用戶名+用戶密碼+用戶權(quán)限描述:用與儲存用戶信息,其中有用戶名,當用戶登錄后會在用戶首頁上顯示。用戶密碼用于登錄本系統(tǒng),用戶權(quán)限是整數(shù),1代表普通用戶,既可以通過注冊的用戶;0代表系統(tǒng)用戶,是系統(tǒng)自帶的不可以通過注冊獲得。名字:用戶信息表描述:用戶可以根據(jù)自己的密碼登陸系統(tǒng),系統(tǒng)根據(jù)用戶的信息來判斷用戶的權(quán)限,主要存儲的是用戶用戶信息和用戶權(quán)限。定義:用戶名+用戶密碼+用戶權(quán)限位置:數(shù)據(jù)庫用戶信息表〔UserInfo〕用戶每次游戲信息表的數(shù)據(jù)字典描述:名字:用戶每次游戲信息表描述:用于記錄用戶每次玩游戲的信息。定義:用戶名+名字:用戶每次游戲信息表描述:用于記錄用戶每次玩游戲的信息。定義:用戶名+用戶該盤局的編號+游戲時間位置:數(shù)據(jù)庫用戶每次游戲信息表〔UserDish〕描述:這個表主要用于記錄用戶玩游戲的時間,用戶棋盤編號是數(shù)據(jù)庫自動生成的,游戲時間主要用于用戶要回放棋局的查找。用戶每盤棋信息表的數(shù)據(jù)字典描述:描述:該表用戶儲存棋局信息,主要用于電腦下棋時通過棋局編號提取數(shù)據(jù),從而計算出電腦該下哪一步棋,其中棋子狀態(tài)分為4種,-1表示該點不在棋盤上,0表示該坐標無棋子,1表示白棋2表示黑棋名字:用戶每盤棋信息表描述:用于記錄用戶每盤棋棋盤的信息。定義:用戶該盤局描述:該表用戶儲存棋局信息,主要用于電腦下棋時通過棋局編號提取數(shù)據(jù),從而計算出電腦該下哪一步棋,其中棋子狀態(tài)分為4種,-1表示該點不在棋盤上,0表示該坐標無棋子,1表示白棋2表示黑棋名字:用戶每盤棋信息表描述:用于記錄用戶每盤棋棋盤的信息。定義:用戶該盤局編號+棋盤上棋子的X軸坐標+棋盤上棋子的Y軸坐標+該坐標上棋子狀態(tài)位置:數(shù)據(jù)庫用戶每盤棋信息表〔UserQipan〕

用戶每步棋信息表的數(shù)據(jù)字典描述:描述:該表主要儲存用戶和電腦下的每一步棋,用戶與棋盤回放時在數(shù)據(jù)庫提取數(shù)據(jù)名字:用戶每步棋信息表描述:用于記錄用戶每步的信息。描述:該表主要儲存用戶和電腦下的每一步棋,用戶與棋盤回放時在數(shù)據(jù)庫提取數(shù)據(jù)名字:用戶每步棋信息表描述:用于記錄用戶每步的信息。定義:用戶該盤棋的編號+用戶該步棋的編號+該步棋電腦下棋的Y軸坐標+該步棋電腦下棋的X軸坐標+該步棋用戶下棋的Y軸坐標+該步棋用戶下棋的X軸坐標位置:數(shù)據(jù)庫用戶每盤棋信息表〔UserStep〕3.3五子棋對弈系統(tǒng)的數(shù)據(jù)流圖數(shù)據(jù)流圖〔DataFlowDiagram〕:簡稱DFD,它從數(shù)據(jù)傳遞和加工角度,以圖形方式來表達系統(tǒng)的邏輯功能、數(shù)據(jù)在系統(tǒng)內(nèi)部的邏輯流向和邏輯變換過程,是結(jié)構(gòu)化系統(tǒng)分析方法的主要表達工具及用于表示軟件模型的一種圖示方法。下面簡要介紹局部需求的數(shù)據(jù)流圖:3.3.1用戶登錄數(shù)據(jù)流圖〔DFD〕在用戶登錄過程當中,用戶輸入的信息經(jīng)過加工處理后,通過對數(shù)據(jù)庫的查詢后返回給程序該用戶的權(quán)限,數(shù)據(jù)流圖〔圖3-1〕如下:用戶用戶接受用戶信息處理信息輸入信息查詢信息用戶信息表〔UserInfo〕用戶產(chǎn)生查詢結(jié)果權(quán)限信息權(quán)限信息圖3-1用戶登錄數(shù)據(jù)流圖3.3.2普通用戶界面顯示數(shù)據(jù)流圖〔DFD〕知道用戶權(quán)限后,通過查詢用戶游戲信息,顯示用戶游戲信息。數(shù)據(jù)流圖〔圖3-2〕如下:用戶用戶接受權(quán)限信息處理信息用戶每次游戲信息〔UserDish〕產(chǎn)生結(jié)果用戶權(quán)限查詢信息游戲信息游戲信息圖3-2普通用戶數(shù)據(jù)顯示數(shù)據(jù)流圖3.3.3管理員用戶界面顯示數(shù)據(jù)流圖〔DFD〕知道用戶權(quán)限后,通過查詢用戶游戲信息和所有普通用戶信息,顯示用戶游戲信息。數(shù)據(jù)流圖〔圖3-3〕如下圖3-3管理員用戶數(shù)據(jù)顯示數(shù)據(jù)流圖用戶圖3-3管理員用戶數(shù)據(jù)顯示數(shù)據(jù)流圖用戶接受權(quán)限信息處理信息用戶每次游戲信息〔UserDish〕產(chǎn)生結(jié)果用戶權(quán)限查詢信息游戲信息游戲信息用戶信息表〔UserInfo〕3.3.4用戶棋局回放數(shù)據(jù)流圖〔DFD〕知道用戶權(quán)限后,通過查詢用戶游戲信息和所有普通用戶信息,顯示用戶游戲信息。數(shù)據(jù)流圖〔圖3-4〕如下:用戶用戶接受數(shù)據(jù)處理信息用戶該盤棋該步棋信息〔UserStep〕產(chǎn)生結(jié)果用戶數(shù)據(jù)查詢信息游戲信息游戲信息圖3-4用戶棋局回放數(shù)據(jù)流圖圖3-4用戶棋局回放數(shù)據(jù)流圖4JAVA五子棋對弈系統(tǒng)分析與設(shè)計此系統(tǒng)為智力游戲,適合于各類游戲愛好者。由于其經(jīng)典性及其游戲的簡單性,各類人士都可以也都愛玩。人們在與電腦對戰(zhàn)享受娛樂的同時,也會體會到自己的智力也會有所提升。該款五子棋游戲功能雖然簡單,但實現(xiàn)了人機,所以從這個角度來說,該款游戲需要電腦能準確的計算棋局。雖然系統(tǒng)不大,但要在滿足玩家的根本要求的情況下,電腦有一定的智能,能給于新手一定的幫助。4.1系統(tǒng)設(shè)計總體思想、目標本系統(tǒng)在結(jié)構(gòu)設(shè)計中采用java的MVC模式,根據(jù)不同的功能劃分不同的模塊,該款五子棋游戲功能雖然簡單,但實現(xiàn)了人機,所以從這個角度來說,該款游戲需要電腦能準確的計算棋局。雖然系統(tǒng)不大,但要在滿足玩家的根本要求的情況下,電腦有一定的智能,能給于新手一定的幫助。4.2五子棋人機對弈系統(tǒng)的ER模型經(jīng)過對系統(tǒng)的分析,我們將系統(tǒng)劃分出了用戶信息、用戶棋局信息、用戶棋盤信息、用戶下棋信息等幾個實體,其各個實體的屬性如下:用戶信息:用戶名、用戶密碼、用戶權(quán)限用戶棋局信息:用戶名、棋局編號、棋局創(chuàng)立時間用戶棋盤信息:棋局編號、X軸坐標、Y軸坐標、棋子狀態(tài)用戶下棋信息:棋局編號、用戶X坐標、用戶Y坐標、電腦X坐標、電腦Y坐標本系統(tǒng)的具體ER模型如下:用戶用戶用戶名用戶密碼用戶權(quán)限圖4-1用戶ER圖圖4圖4-2用戶棋局ER圖棋局用戶名棋局編號創(chuàng)立時間圖4-3圖4-3用戶棋盤ER圖棋盤棋局編號X軸坐標Y軸坐標棋子狀態(tài)圖4-4圖4-4用戶棋盤ER圖下棋棋局編號用戶Y坐標用戶X坐標電腦X坐標電腦X坐標圖3-1整體ER圖圖3-1整體ER圖用戶用戶密碼用戶名用戶權(quán)限棋局棋局編號創(chuàng)立時間創(chuàng)立棋盤X軸坐標Y軸坐標棋子狀態(tài)下棋屬于屬于用戶X坐標用戶Y坐標電腦X坐標電腦X坐標1N1N11每步棋編號圖4-5整體ER圖4-5整體ER圖4.3JAVA五子棋對弈系統(tǒng)結(jié)構(gòu)、功能設(shè)計4系統(tǒng)結(jié)構(gòu)設(shè)計本系統(tǒng)主要針對用戶提出的要求業(yè)務(wù)開發(fā)的系統(tǒng),其結(jié)構(gòu)設(shè)計情況如圖〔圖4-6〕所示:圖4-6系統(tǒng)結(jié)構(gòu)圖用戶前臺注冊登錄數(shù)據(jù)顯示五子棋圖4-6系統(tǒng)結(jié)構(gòu)圖用戶前臺注冊登錄數(shù)據(jù)顯示五子棋棋盤回放悔棋游戲4系統(tǒng)功能模塊設(shè)計該款游戲主要由一下幾個模塊組成〔圖4-7〕:五子棋游戲五子棋游戲用戶登錄注冊人機對弈模式具有悔棋功能棋局回放功能圖4-7五子棋功能模塊圖用戶登錄注冊:在玩五子棋之前,用戶要先登錄游戲,未注冊的用戶應(yīng)該先注冊,如果登錄成功會跳到用戶管理頁面,登錄信息錯誤會提示密碼用戶名錯誤。人機對弈模式:選擇該模式可以實現(xiàn)人與電腦之間的對弈,電腦會智能的選擇該在哪處下子,并會在每次下棋結(jié)束后判斷是否有哪方已經(jīng)獲勝,如果獲勝那么結(jié)束本局游戲,并提示玩家游戲結(jié)束?;谄骞δ埽哼@個功能也是根據(jù)游戲的實際需求而存在的,在現(xiàn)實生活中難免有失誤下錯了棋,那么就需要悔棋。此功能提供了悔棋功能,使得下棋的靈活性有所提高。玩家假設(shè)想悔棋,那么只需選擇悔棋按鈕便可以重新下過剛剛的棋,但只能悔一步棋。棋局回放功能:這個功能是更加用戶需求設(shè)計的,該功能可以回放用戶以前下過的棋局只要點擊要回放的棋局,進入棋局回放頁面,點擊下一步就可以回放該棋局,點一下只能回放一步棋。設(shè)計思路1.本程序要實現(xiàn)五子棋的游戲功能,必須先有一個棋盤,所以,通過html中的表格畫的,棋盤是17*17,表格中是一個層,通過改變其背景圖片來表示有無棋子,是白棋還是黑棋。另外還有一個按鈕:悔棋按鈕,用于提供悔棋功能,界面還顯示系統(tǒng)時間,用戶提示用戶當前時間。2.對于下棋的操作,通過對該層鼠標事件監(jiān)聽器onclick,每次當用戶點擊鼠標時,先取得點擊的坐標值,然后換算成對應(yīng)棋盤上〔即棋盤數(shù)組〕的位置〔數(shù)組的下標〕。3.判斷此處是否已經(jīng)有棋子,如果有那么用javascript提示玩家重新下子,否那么通過ajax把點擊的數(shù)組傳遞給后臺,通過后臺處理返回給前臺數(shù)據(jù)來改變樣式,在此處畫上棋子。4.判斷該顏色棋子的上下左右是否滿足連續(xù)五個,是的話提醒相應(yīng)玩家獲勝,不是的話,更換玩家下棋。5.對于玩家的更換是程序自動的,每次用戶點擊鼠標后,假設(shè)本局還未結(jié)束那么會變換玩家,從而畫出對應(yīng)黑方白方的棋子,直到有一方獲勝程序結(jié)束。4.4程序設(shè)計分析1.在網(wǎng)站的首頁是登錄界面,有登錄和注冊兩個功能。2.在登錄成功會跳到用戶信息頁面,在該頁面的右下角會列出該用戶在最近5次,玩游戲的信息記錄,點擊該記錄可以回放對應(yīng)的棋局。在信息下方有開始游戲和更改密碼兩個按鈕。3.繪制棋盤,17*17的方框,在方框處下棋子〔實心黑白圓形〕。4.棋盤處于鼠標監(jiān)聽狀態(tài),當鼠標在棋盤上有點擊操作的時候,程序會獲得鼠標點擊的坐標然后換算成對應(yīng)的棋盤的位置,再判斷此處是否有棋子,假設(shè)沒有,那么在此處畫出對應(yīng)顏色的實心棋子,假設(shè)已經(jīng)有棋子了,那么提示玩家此處已經(jīng)有棋子請重新下棋。5.當用戶點擊表格中的層下完棋后,輪到電腦下子時,電腦會通過算法計算每個沒有棋子的位置的重要性來選擇最重要的位置下子。6.當任何一方有五個棋子沿著橫,豎,斜連在一起時,系統(tǒng)自動判斷贏棋,并顯示黑方或白方勝利。棋局結(jié)束后,會返回用戶信息頁面。7.程序流程如下列圖(圖4-8):圖4-8系統(tǒng)結(jié)構(gòu)圖圖4-8系統(tǒng)結(jié)構(gòu)圖4.5類的設(shè)計1〕由于要用到數(shù)據(jù)庫,所以設(shè)計了一個用來連接數(shù)據(jù)庫的類BaseDao,其中包括了兩個方法和4個變量,類圖(圖4-9)如下:圖4-9BaseDao類圖圖4-9BaseDao類圖2〕下列圖是關(guān)于數(shù)據(jù)庫中對應(yīng)的表的類圖(圖4-10)關(guān)系:圖4-10類表關(guān)系圖圖4-10類表關(guān)系圖3〕雖然有了用戶相關(guān)類,但是無法操作數(shù)據(jù)庫中的用戶信息,所以設(shè)計了操作用戶表的類UserDishDaoImpl,該類繼承BaseDao,并且實現(xiàn)IUserDao類,類圖(圖4-11)如下:圖4-11UserDishDaoImpl圖4-11UserDishDaoImpl類圖4〕對于用戶每次玩游戲的信息操作,用UserDishDaoImpl實現(xiàn)了各種操作。類圖(圖4-12)如下:圖4-12UserDishDaoImpl圖4-12UserDishDaoImpl類圖5〕對棋盤的各種信息保存操作,用類UserQipanDaoImpl來實現(xiàn)。其中類圖(圖4-13)如下圖4-13UserQipanDaoImpl圖4-13UserQipanDaoImpl類圖6〕對每局棋及每盤棋的各種保存操作,用UserStepDaoImpl來實現(xiàn),其中類圖(圖4-14)如下:圖4-14UserStepDaoImpl圖4-14UserStepDaoImpl類圖7〕由于程序是人機對弈,電腦下棋算法用Computer類來實現(xiàn),其中有電腦下棋算法,還有電腦判斷輸贏算法,類圖(圖4-15)如下:圖4-15Servlet圖4-15Servlet類圖8)本程序的時序圖〔圖4-16〕如下:圖4-16時序圖4-16時序圖4.6五子棋對弈系統(tǒng)的數(shù)據(jù)庫設(shè)計4.6.1系統(tǒng)用戶表

名稱編碼數(shù)據(jù)類型備注用戶名userNamevarchar(255)用戶輸入,Notnull約束,是表的主鍵用戶密碼userPwdvarchar(255)用戶輸入,Notnull約束用戶權(quán)限userFlagInt(11)系統(tǒng)分配,Notnull約束,用于判斷用戶權(quán)限4.6.2用戶棋局表名稱編碼數(shù)據(jù)類型備注棋局編號dishIdInt(11)系統(tǒng)自動分配,是該表的主鍵,Notnull約束用戶名userNamevarchar(255)用戶輸入,Notnull約束創(chuàng)立時間playDateDate系統(tǒng)分配,Notnull約束4.6.3用戶棋盤表名稱編碼數(shù)據(jù)類型備注棋局編號dishIdInt〔11〕系統(tǒng)自動分配,是改變的主鍵,Notnull約束X軸坐標XInt(11)是棋盤的X坐標,Notnull約束Y軸坐標YInt(11)是棋盤的Y坐標,Notnull約束狀態(tài)FInt〔11〕表示棋子狀態(tài),Notnull約束4.6.4用戶下棋信息表

名稱編碼數(shù)據(jù)類型備注下棋編號stepIdInt〔11〕系統(tǒng)自動分配,是改變的主鍵,Notnull約束電腦X坐標pcXInt(11)是電腦該步棋的X坐標,Notnull約束電腦Y坐標pcYInt(11)是電腦該步棋的Y坐標,Notnull約束用戶X坐標psXInt〔11〕是電用戶該步棋的X坐標,Notnull約束用戶Y坐標psYInt〔11〕是電用戶該步棋的X坐標,Notnull約束棋局編號dishIdInt〔11〕是該表的外鍵,Notnull約束

5五子棋相關(guān)根底5.1五子棋相關(guān)解釋引用?辭海?中所言,五子棋是“棋類游戲,棋具與圍棋相同,兩人對局,輪流下子,先將五子連成一行者為勝。〞。五子棋的名稱:日文亦有“連五子、五子連、串珠、五目、五目碰、五格、五石、五法、五聯(lián)、京棋〞等多種稱謂,英文那么稱之為FIR(FiveInARow的縮寫)、Gomoku(日語“五目〞的羅馬拼音)、Gobang、connect5、mo-rphion。捷克語piskvorky,韓語omok、韓國人還稱之為情侶棋。5.2五子棋相關(guān)規(guī)那么1.五子棋行棋時,黑棋先下第一子,由天元開始,后白棋在黑棋周圍的方框的落子。接著黑方再以天元中心的25個交叉點的范圍內(nèi)落盤面的第三子,之后黑白雙方相互順序子。2.最先在棋盤上橫向,縱向,斜向形成已方的五個棋子連續(xù)的一方為勝。3.出現(xiàn)禁手對方指出后將判負,其中包括兩個或兩個以上的活三,活四,長連均稱之為禁手。4.禁手只對黑棋有效,白棋無禁手。5.黑方禁手形成時,白方需立即指出,黑方將被判負。假設(shè)白方未發(fā)現(xiàn)黑方禁手存在而繼續(xù)應(yīng)子,其后指出黑方禁手不能判黑方負。6.黑方連五與禁手同時形成,因黑方已連成五即黑方已獲勝,故禁手規(guī)那么失效。7.在對局中,在盤上落下的子又拿起來,此動作稱為拔子,假設(shè)拔子將被判為負。8.在對局中棋子掉落在棋盤上將被判負。假設(shè)推子或蹭子,以盤面第一落點為準。用手將棋子推正不算違犯規(guī)那么。9.在對局中,一方自行中止比賽如:中途退場,將被判負。10.在對局中對方宣布認輸,本局獲勝。11.超過比賽規(guī)定所用時間限制,將被判為負:正式比賽期間,遲到時間超過比賽容許時間將被判負。12.如下至最終一子仍不分勝負那么定為平局。13.中盤期間雙方同意和局提議,判定為平局。5.3五子棋常用術(shù)語1.著:也稱“步〞。對局中把一個棋子按照規(guī)那么放到某一點,稱之為一著棋。一著是否完成有兩種規(guī)那么:

1)在執(zhí)行落子無悔規(guī)那么是,以行棋者的手離開棋子為一著已完成。

2)在執(zhí)行限時規(guī)那么時,以行棋者按下棋鐘作為一著已完成。2.PASS:五子棋中引入的英文名稱,即應(yīng)該行棋的一方主動放棄此次行棋的時機,由對方繼續(xù)行棋。3.先手:對方必須應(yīng)答的著法,如對方形成活三必須阻止其形成活四。4.絕對先手:相對先手而言,即形成同色連四或嵌五,對方必須應(yīng)著,就是絕對先手。絕對先手又叫“沖〞。5.VCF:(VictoryofContinusFour的縮寫)意思是利用連續(xù)沖四取勝之意。利用連續(xù)不斷的沖四或嵌五的絕對先手,制止形成連五獲得勝利的一種方法。在對局接近尾聲或排局解題中一種常見的取勝技巧。6.追下取勝:是指白棋利用黑棋禁手取勝的戰(zhàn)術(shù)。白1沖四,迫使黑2形成“四、四〞禁手(即沖四,活四禁手),這種取勝方法叫做追下取勝。7.自由取勝:追下取勝以外的取勝方法,即未利用黑棋禁手戰(zhàn)術(shù)而取勝。8.一子雙殺:是指對局中一方落子后出現(xiàn)兩個叫殺點即兩個獲勝點,而使對方無法防守的情形。一般是有兩個沖四活三點,白棋的雙活三,雙四均可稱為一子雙殺。9.陽線:棋盤上可見的橫線與直線的總稱。10.陰線:也稱“斜線〞。是棋盤上不可見的斜行線。11.“四、三〞:指同時具備兩個先手,其中一個四,另一個是活三。12.“活三〞、“嵌五〞、“沖四〞:參見五子棋重要棋形講座。13.禁手:對局中禁止使用的戰(zhàn)術(shù)或被判為負的行棋手段。14.開局:也稱“布局〞。布局階段大體為七至十幾著之內(nèi)。種類繁多,職業(yè)連珠五子棋有二十四種開局。

15.局面:亦稱“局勢〞。為對局中某一段時間內(nèi)雙方子力的配置情況。16.優(yōu)勢:是指足以取勝的優(yōu)勢局面,其對方即為敗勢。17.妙著:對局中走出的一步精妙的著法。既符合邏輯又出人意料,有使局面頓時改觀的效果,對局勢的開展及對局的質(zhì)量都有重大影響。18.好著:也稱“佳著〞。對局中成功的某一步。19.正著:對局的某一局面中的正確著法。20.劣著:對局中,導(dǎo)致嚴重不利后果的一步錯誤著法。21.敗著:也稱“失著〞“漏著〞。對局中造成局面惡化的一步嚴重錯誤著法。22.等著:對局中具有等待性的一步著法,主要意圖是等待有利時機。23.廢著:也稱“空著〞。對局中不起作用的著法。實際上指浪費時間毫無疑義的錯著。24.搶先:對局中利用反活三或沖四的強制手段奪取主動權(quán)的著法。25.打譜:按照棋譜演練著法,是提高棋藝水平的重要方法之一。26.復(fù)局:也叫“復(fù)著〞。對局結(jié)束又重演對局的過程。一般用以研究、比擬雙方的成敗得失和著法的優(yōu)劣。

6系統(tǒng)平臺、計算模式及技術(shù)1)系統(tǒng)的硬件平臺:一臺臺式計算機2)系統(tǒng)的軟件平臺:Windowsxp/windows7IE瀏覽器等6.1計算模式的進化及本系統(tǒng)選用的模式優(yōu)越性回憶計算機的開展史,計算模式有過三次質(zhì)的飛躍:6集中式管理——主機/終端模式通過硬件連線把簡單的終端接到主機上;所有用戶的擊鍵和光標位置傳入主機,所有從主機返回的結(jié)果,顯示在終端屏幕的特定位置;分時共享模式,所有的程序和數(shù)據(jù)都存儲在大型的主機中〔數(shù)據(jù)庫、應(yīng)用程序、通信程序〕,資源集中控制;利用主機的能力運行應(yīng)用程序,利用無智能的終端來對應(yīng)用進行控制;6Client/Server模式在Client-Server模式,應(yīng)用被分為前端〔客戶端〕和后端〔效勞器端〕;客戶局部運行在微機或工作站上,而效勞器局部可以運行在從微機到大型機等各種計算機上??蛻魴C和效勞器分別工作在不同的邏輯實體中,并協(xié)同工作。效勞器主要是運行客戶機不能完成或費時的工作,比方大型數(shù)據(jù)庫的管理,而客戶機可以通過預(yù)先指定的語言向效勞器提出請求,要求效勞器去執(zhí)行某項操作,并將操作結(jié)果返送給客戶機。6Brower/Server模式基于瀏覽器、WWW效勞器和應(yīng)用效勞器的計算結(jié)構(gòu),稱為瀏覽器/效勞器〔Browser/Server〕的計算模式,簡稱B/S模式,該計算模式在20世紀90年代中期逐漸形成和開展。B/S計算模式繼承和共融了傳統(tǒng)客戶機/效勞器模式中的網(wǎng)絡(luò)軟、硬件平臺和應(yīng)用,但它具有傳統(tǒng)C/S計算模式所不及的很多特點,比方更加開放、與軟、硬件平臺無關(guān)、應(yīng)用開發(fā)速度快、生命周期長、應(yīng)用擴充和系統(tǒng)維護升級方便等。6系統(tǒng)采用B/S三層體系結(jié)構(gòu)模式的優(yōu)越性三層體系結(jié)構(gòu)圖如圖圖6-1所示:CGI,ASP,PHP等技術(shù)的出現(xiàn),使得開發(fā)動態(tài)交互式的Web應(yīng)用得以實現(xiàn)。用戶通過瀏覽器向效勞器發(fā)送請求,Web效勞器接收客戶端發(fā)送來的請求,對請圖6-1三層體系結(jié)構(gòu)圖求進行分析,如果請求是靜態(tài)頁面,那么就將所請求的頁面發(fā)送到客戶端;如果請求的是動態(tài)頁面,那么就執(zhí)行此動態(tài)頁面,并將執(zhí)行結(jié)果發(fā)送給客戶端。動態(tài)頁面中的腳本程序可以和數(shù)據(jù)庫效勞器進行交互。Web效勞器可以根據(jù)用戶的請求動態(tài)更新頁面上的信息,Web信息提供者可以通過改變數(shù)據(jù)庫中的數(shù)據(jù)向用戶提供最新信息,而不需要逐個更改頁面。用戶可以通過這些動態(tài)頁面向數(shù)據(jù)庫中輸入信息,從而增強了用戶和效勞器之間的交互性。與傳統(tǒng)的C/S體系結(jié)構(gòu)相比,三層體系結(jié)構(gòu)存在以下優(yōu)點:(1)客戶端零維護在三層體系結(jié)構(gòu)中,幾乎所有的業(yè)務(wù)處理都是在中間件WebServer上完成的,客戶端只需要安裝支持Java的瀏覽器即可,不用做任何其它安裝和配置工作,所以也就不存在客戶端維護的問題,真正實現(xiàn)了“客戶端零維護〞。處理業(yè)務(wù)時,操作員可以直接通過Web瀏覽器訪問WebServer進行業(yè)務(wù)處理工作。2〕可擴展性好三層體系結(jié)構(gòu)的可擴展性好表達在以下四個方面:第一,工作節(jié)點的可擴展性好。由于三層體系結(jié)構(gòu)的客戶端零維護的特點,使增加一個工作節(jié)點的工作簡單到了只需增加一臺裝有Web瀏覽器的PC機即可。第二,應(yīng)用系統(tǒng)的可擴展性好。好的應(yīng)用系統(tǒng)應(yīng)該能方便地實現(xiàn)一定程度上業(yè)務(wù)的變化和業(yè)務(wù)單元的增加。三層體系結(jié)構(gòu)采用面向?qū)ο蟮姆治龊驮O(shè)計模式,將業(yè)務(wù)模塊都封裝到了業(yè)務(wù)類和效勞類中,所以,如果一個業(yè)務(wù)流程變了,或需要增加一個新的業(yè)務(wù)模塊,只需替換或增加新的業(yè)務(wù)類和效勞類即可。第三,業(yè)務(wù)邏輯與用戶界面及數(shù)據(jù)庫別離,使得當用戶業(yè)務(wù)邏輯發(fā)生變化時只需更改中間層的控件/組件/JB/EJB即可。第四,便于數(shù)據(jù)庫移植。由于客戶端不直接訪問數(shù)據(jù)庫,而是通過一個中間層進行訪問,所以,在改變數(shù)據(jù)庫、驅(qū)動程序或存儲方式時無需改變客戶端配置,只要集中改變中間件上的持久化層的數(shù)據(jù)庫連接局部即可。3〕平安性好在三層體系結(jié)構(gòu)中,客戶端只能通過WebServer而不能直接訪問數(shù)據(jù)庫,這大大提高了系統(tǒng)的平安性。如果對系統(tǒng)提出更高的平安性要求的話,還可以通過防火墻進行屏蔽。

4)資源重用性好由于將業(yè)務(wù)邏輯集中到WebServer統(tǒng)一處理,三層體系結(jié)構(gòu)可以更好地利用共享資源。例如數(shù)據(jù)庫連接是一項很消耗系統(tǒng)資源、影響響應(yīng)時間的事件,在三層體系結(jié)構(gòu)中可以將數(shù)據(jù)庫連接放在緩沖池中統(tǒng)一管理,由不同應(yīng)用共享,并有效控制連接的數(shù)量。6.2JSP技術(shù)JSP簡介JSP〔JavaServerPages〕是一種基于Java的腳本技術(shù)。在JSP的眾多優(yōu)點之中,其中之一是它能將HTML編碼從Web頁面的業(yè)務(wù)邏輯中有效地別離出來。用JSP訪問可重用的組件,如Servlet、JavaBean和基于Java的Web應(yīng)用程序。JSP還支持在Web頁面中直接嵌入Java代碼??捎脙煞N方法訪問JSP文件:瀏覽器發(fā)送JSP文件請求、發(fā)送至Servlet的請求。1.JSP文件訪問Bean或其它能將生成的動態(tài)內(nèi)容發(fā)送到瀏覽器的組件。圖6-2說明了該JSP訪問模型。當Web效勞器接收到一個JSP文件請求時,效勞器將請求發(fā)送至WebSphere應(yīng)用效勞器。WebSphere應(yīng)用效勞器對JSP文件進行語法分析并生成Java源文件〔被編譯和執(zhí)行為Servlet〕。Java源文件的生成和編譯僅在初次調(diào)用Servlet時發(fā)生,除非已經(jīng)更新了原始的JSP文件。在這種情況下,WebSphere應(yīng)用效勞器將檢測所做的更新,并在執(zhí)行它之前重新生成和編譯Servlet。

圖6-2瀏覽器發(fā)送JSP文件請求2.發(fā)送至Servlet的請求生成動態(tài)內(nèi)容,并調(diào)用JSP文件將內(nèi)容發(fā)送到瀏覽器。圖6-3說明了該訪問模型。該訪問模型使得將內(nèi)容生成從內(nèi)容顯示中別離出來更為方便。WebSphere應(yīng)用效勞器支持ServiceRequest對象和ServiceResponse對象的一套新方法。這些方法允許調(diào)用的Servlet將一個對象放入〔通常是一個Bean〕請求對象中,并將該請求傳遞到另一個頁面〔通常是一個JSP文件〕以供顯示。調(diào)用的頁面從請求對象中檢索Bean,并用JSP來生成客戶機端的HTML。

圖6-3:發(fā)送至Servlet的請求6.2.2JSP內(nèi)建對象定義:可以不加聲明就在JSP頁面du/view/54.htm"腳本〔Java程序片和Java表達式〕中使用的成員變量JSP共有以下9種根本內(nèi)置組件〔可與ASP的6種內(nèi)部組件相對應(yīng)〕:1.request對象客戶端的請求信息被封裝在request對象中,通過它才能了解到客戶的需求,然后做出響應(yīng)。它是ServletRequest類的實例。2.response對象response對象包含了響應(yīng)客戶請求的有關(guān)信息,但在JSP中很少直接用到它。它是ServletResponse類的實例。3.session對象session對象指的是客戶端與效勞器的一次會話,從客戶端連到效勞器的一個WebApplication開始,直到客戶端與效勞器斷開連接為止。它是Session類的實例.4.out對象out對象是JspWriter類的實例,是向客戶端輸出內(nèi)容常用的對象5.page對象page對象就是指向當前JSP頁面本身,有點象類中的this指針,它是java.lang.Object類的實例6.application對象application對象實現(xiàn)了用戶間數(shù)據(jù)的共享,可存放全局變量。它開始于效勞器的啟動,直到效勞器的關(guān)閉,在此期間,此對象將一直存在;這樣在用戶的前后連接或不同用戶之間的連接中,可以對此對象的同一屬性進行操作;在任何地方對此對象屬性的操作,都將影響到其他用戶對此的訪問。效勞器的啟動和關(guān)閉決定了application對象的生命。它是ServletContext類的實例。7.exception對象exception對象是一個例外對象,當一個頁面在運行過程中發(fā)生了例外,就產(chǎn)生這個對象。如果一個JSP頁面要應(yīng)用此對象,就必須把isErrorPage設(shè)為true,否那么無法編譯。他實際上是java.lang.Throwable的對象8.pageContext對象pageContext對象提供了對JSP頁面內(nèi)所有的對象及名字空間的訪問,也就是說他可以訪問到本頁所在的SESSION,也可以取本頁面所在的application的某一屬性值,他相當于頁面中所有功能的集大成者,它的本類名也叫pageContext。9.config對象config對象是在一個Servlet初始化時,JSP引擎向它傳遞信息用的,此信息包括Servlet初始化時所要用到的參數(shù)〔通過屬性名和屬性值構(gòu)成〕以及效勞器的有關(guān)信息〔通過傳遞一個ServletContext對象〕6.3MVC設(shè)計模式MVC模式的根本形式圖如圖6-4所示。圖6-4MVC模式的根本形式圖MVC(Model-View-Controller)模式并不是J2EE行業(yè)人士標新立異的。MVC的核心就是要做到三級甚至多級的松散耦合,MVC模式將系統(tǒng)分為三個局部,分別是數(shù)據(jù)模型、視圖和控制器,并定義了這三個局部之間實現(xiàn)通信的一種模式,使每個局部不必卷入到其他局部的狀態(tài)表示和方法實現(xiàn)的細節(jié)中去。每個局部有自己的數(shù)據(jù)管理規(guī)那么,各個對象之間的通信只能使用自己定義的一個受限連接集合進行。保持這種別離性通常是面向?qū)ο缶幊毯驮O(shè)計要追求的目標,讓各個對象只需專注于自己的事務(wù)。模型局部代表了商業(yè)數(shù)據(jù)的訪問及修改數(shù)據(jù)的操作。當數(shù)據(jù)發(fā)生改變時,要負責(zé)通知視圖局部,并且提供視圖查詢狀態(tài)的能力。另外,還向控制局部提供給用功能。視圖局部以自己的方式顯示模型的內(nèi)容。訪問模型的數(shù)據(jù),并且當模型的數(shù)據(jù)發(fā)生變化時更新模型的顯示。視圖還把從用戶那里得到的信息傳給控制局部??刂凭植慷x了應(yīng)用的行為。分發(fā)用戶請求和選擇表現(xiàn)視圖,還負責(zé)解釋用戶輸入,進而調(diào)用模型的功能。在Web應(yīng)用中,用戶輸入包括對Web級資源的、GET和POST請求??刂凭植扛鶕?jù)用戶交互和模型的狀態(tài)選擇要顯示的視圖。一個應(yīng)用程序一般為相關(guān)的功能選擇一個控制局部。6.4ServletServlet簡介servlet是在效勞器上運行的小程序。這個詞是在Javaapplet的環(huán)境中創(chuàng)造的,Javaapplet是一種當作單獨文件跟網(wǎng)頁一起發(fā)送的小程序,它通常用于在客戶端運行,結(jié)果得到為用戶進行運算或者根據(jù)用戶互作用定位圖形等效勞。效勞器上需要一些程序,常常是根據(jù)用戶輸入訪問數(shù)據(jù)庫的程序。這些通常是使用公共網(wǎng)關(guān)接口〔CGI(CommonGatewayInterface)〕應(yīng)用程序完成的。然而,在效勞器上運行Java,這種程序可使用Java編程語言實現(xiàn)。在通信量大的效勞器上,/view/29.htm"Javaservlet的優(yōu)點在于它們的執(zhí)行速度更快于CGI程序。各個用戶請求被激活成單個程序中的一個線程,而無需創(chuàng)立單獨的進程,這意味著效勞器端處理請求的系統(tǒng)開銷將明顯降低。實現(xiàn)過程:最早支持Servlet技術(shù)的是JavaSoft的JavaWebServer。此后,一些其它的基于Java的WebServer開始支持標準的ServletAPI。Servlet的主要功能在于交互式地瀏覽和修改數(shù)據(jù),生成動態(tài)Web內(nèi)容。這個過程為:1、客戶端發(fā)送請求至效勞器端;2、效勞器將請求信息發(fā)送至Servlet3、Servlet生成響應(yīng)內(nèi)容并將其傳給效勞器。響應(yīng)內(nèi)容動態(tài)生成,通常取決于客戶端的請求4、效勞器將響應(yīng)返回給客戶端5、Servlet看起來像是通常的Java程序。Servlet導(dǎo)入特定的屬于JavaServletAPI的包。因為是對象字節(jié)碼,可動態(tài)地從網(wǎng)絡(luò)加載,可以說Servlet對Server就如同Applet對Client一樣,但是,由于Servlet運行于Server中,它們并不需要一個圖形用戶界面。從這個角度講,Servlet也被稱為FacelessObject。一個servlet就是Java編程語言中的一個類,它被用來擴展效勞器的性能,效勞器上駐留著可以通過“請求-響應(yīng)〞編程模型來訪問的應(yīng)用程序。雖然servlet可以對任何類型的請求產(chǎn)生響應(yīng),但通常只用來擴展Web效勞器的應(yīng)用程序。Servlet優(yōu)勢JavaServlet與CGI(CommonGatewayInterface公共網(wǎng)關(guān)接口)的比擬:與傳統(tǒng)的CGI和許多其他類似CGI的技術(shù)相比,JavaServlet具有更高的效率,更容易使用,功能更強大,具有更好的可移植性,更節(jié)省投資。在未來的技術(shù)開展過程中,Servlet有可能徹底取代CGI。在傳統(tǒng)的CGI中,每個請求都要啟動一個新的進程,如果CGI程序本身的執(zhí)行時間較短,啟動進程所需要的開銷很可能反而超過實際執(zhí)行時間。而在Servlet中,每個請求由一個輕量級的Java線程處理(而不是重量級的操作系統(tǒng)進程)。在傳統(tǒng)CGI中,如果有N個并發(fā)的對同一CGI程序的請求,那么該CGI程序的代碼在內(nèi)存中重復(fù)裝載了N次;而對于Servlet,處理請求的是N個線程,只需要一份Servlet類代碼。在性能優(yōu)化方面,Servlet也比CGI有著更多的選擇。*方便Servlet提供了大量的實用工具例程,例如自動地解析和解碼HTML表單數(shù)據(jù)、讀取和設(shè)置72.htm"頭、處理Cookie、跟蹤會話狀態(tài)等。*功能強大在Servlet中,許多使用傳統(tǒng)CGI程序很難完成的任務(wù)都可以輕松地完成。例如,Servlet能夠直接和Web效勞器交互,而普通的CGI程序不能。Servlet還能夠在各個程序之間共享數(shù)據(jù),使得數(shù)據(jù)庫連接池之類的功能很容易實現(xiàn)。*可移植性好Servlet用Java編寫,ServletAPI具有完善的標準。因此,為IPlanetEnterpriseServer寫的Servlet無需任何實質(zhì)上的改動即可移植到Apache、MicrosoftIIS或者WebStar。幾乎所有的主流效勞器都直接或通過插件支持Servlet。*節(jié)省投資不僅有許多廉價甚至免費的Web效勞器可供個人或小規(guī)模網(wǎng)站使用,而且對于現(xiàn)有的效勞器,如果它不支持Servlet的話,要加上這局部功能也往往是免費的(或只需要極少的投資)。6.5MYSQL數(shù)據(jù)庫6.5.1MYSQL概述MySQL是一個小型關(guān)系型數(shù)據(jù)庫管理系統(tǒng),開發(fā)者為瑞典MySQLAB公司。在2021年1月16號被Sun公司收購。而2021年,SUN又被Oracle收購。MySQL是一種關(guān)聯(lián)數(shù)據(jù)庫管理系統(tǒng),關(guān)聯(lián)數(shù)據(jù)庫將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個大倉庫內(nèi)。這樣就增加了速度并提高了靈活性。MySQL的SQL“結(jié)構(gòu)化查詢語言〞。SQL是用于訪問數(shù)據(jù)庫的最常用標準化語言。MySQL軟件采用了GPL〔GNU通用公共許可證〕。由于其體積小、速度快、總體擁有本錢低,尤其是開放源碼這一特點,許多中小型網(wǎng)站為了降低網(wǎng)站總體擁有本錢而選擇了MySQL作為網(wǎng)站數(shù)據(jù)庫。6.5.2MYSQL優(yōu)勢可靠性和性能:MySQLAB向公眾提供所有數(shù)據(jù)庫效勞器軟件的早期版本,利用開發(fā)源碼進行為期幾個月的測試,之后才發(fā)布作為生產(chǎn)之用。易于使用和部署:MySQL的結(jié)構(gòu)體系易于定制,而且速度極快。其獨特的多存儲引擎結(jié)構(gòu)為企業(yè)客戶提供了廣泛的靈活性,賦予數(shù)據(jù)庫管理系統(tǒng)以卓越的緊致性和穩(wěn)定性,并且易于部署,同時具有無與匹敵的速度。平臺自由:源代碼隨時可訪問,MySQL策略確保了自由性,以防鎖定于某個公司或平臺內(nèi)。跨平臺支持:MySQL可用于20多種不同的平臺,包括主要的Linux系統(tǒng)、MacOSX、Unix和MicrosoftWindows。開發(fā)隊伍龐大:MySQL是世界上最為流行的開放源碼數(shù)據(jù)庫,因此很容易獲得高素質(zhì)和有經(jīng)驗的開發(fā)團隊。強大、簡單MySQL——MySQL結(jié)構(gòu)體系簡單易用,而且運行速度極快,能夠處理企業(yè)數(shù)據(jù)庫絕大多數(shù)的應(yīng)用需求。MySQLAB有兩種許可證。無論選擇哪一種,您都將會享受到MySQL數(shù)據(jù)庫所帶來的巨大優(yōu)勢,它能夠顯著降低您的總本錢。從許可證而言,本公司提供兩種不同的產(chǎn)品,在使用和發(fā)行上都有所區(qū)別,盡管技術(shù)上他們具有完全相同的源代碼。許可證選項包括:商業(yè)許可證——允許您向客戶提供商業(yè)軟件許可證,或僅在企業(yè)范圍內(nèi)發(fā)布基于MySQL的應(yīng)用程序。如果企業(yè)不希望發(fā)布應(yīng)用程序的源代碼,即不希望將其作為開放源碼/免費軟件,或者不愿遵守GNUGPL,需要選擇該種許可證方案。開發(fā)源碼許可證——對于那些進行開放源碼應(yīng)用程序的開發(fā)人員而言,可以將其軟件在一個開放源碼/免費許可證方案下進行發(fā)布,其他人員可以對其進行使用、修改或免費發(fā)布。只要您是在重新發(fā)布的應(yīng)用程序中使用MySQL,該種許可證就允許您免費使用軟件,在合理條件下,您應(yīng)用程序的完全源代碼必須是可用的,并且允許自由重新發(fā)布。6.6TomCat效勞器工具概述Tomcat很受廣闊程序員的喜歡,因為它運行時占用的系統(tǒng)資源小,擴展性好,支持負載平衡與郵件效勞等開發(fā)應(yīng)用系統(tǒng)常用的功能;而且它還在不斷的改良和完善中,任何一個感興趣的程序員都可以更改它或在其中參加新的功能。Tomcat是一個小型的輕量級應(yīng)用效勞器,在中小型系統(tǒng)和并發(fā)訪問用戶不是很多的場合下被普遍使用,是開發(fā)和調(diào)試JSP程序的首選。對于一個初學(xué)者來說,可以這樣認為,當在一臺機器上配置好Apache效勞器,可利用它響應(yīng)對HTML頁面的訪問請求。實際上Tomcat局部是Apache效勞器的擴展,但它是獨立運行的,所以當你運行tomcat時,它實際上作為一個與Apache獨立的進程單獨運行的。當配置正確時,Apache為HTML頁面效勞,而Tomcat實際上運行JSP頁面和Servlet。另外,Tomcat和IIS、Apache等Web效勞器一樣,具有處理HTML頁面的功能,另外它還是一個Servlet和JSP容器,獨立的Servlet容器是Tomcat的默認模式。不過,Tomcat處理靜態(tài)HTML的能力不如Apache效勞器。[3]6.7環(huán)境的安裝Windows下直接運行.exe文件,安裝到一個目錄,如C:/jdk1.6,安裝完成后就是環(huán)境變量的設(shè)置。桌面上選擇“我的電腦〞(右鍵)->高級->環(huán)境變量->在“系統(tǒng)變量〞>“新建〞->在變量名中輸入:JAVA_HOME,變量值中輸入:C:/jdk1.6。同樣再新建一個變量名CLASSPATH,變量值中輸入:C:\jdk1.6\lib;還需要在Path變量值后面添加一個值:C:\jdk1.6\bin。至此JAVA環(huán)境安裝成功。我們可以在命令行中敲入命令java如果顯示java幫助,那么證明環(huán)境設(shè)置成功。Tomcat環(huán)境搭建安裝TOMCAT,直接使用默認安裝就可以了,假設(shè)我們將其安裝在C:\Tomcat6.0,安裝完畢后,開始設(shè)置環(huán)境變量,新建環(huán)境變量CATALINA_HOME,值為C:\Tomcat6.0,新建CATALINA_BASE,值為C:\Tomcat6.0。翻開Tomcat6.0文件中的bin文件,雙擊其中的運行程序,顯示serverstart,效勞器正常啟動,此時在瀏覽器上敲入本地測試地址:://localhost:8080如果出現(xiàn)Tomcat頁面那么證明Tomcat安裝成功,而且正常啟動。

7系統(tǒng)實現(xiàn)7.1用戶登陸流程1.獲取用戶輸入的數(shù)據(jù)。下面是用戶登錄的流程圖和用戶登錄界面圖7-1。源代碼見附件1圖7圖7-1用戶登陸流程7.2用戶進入游戲〔初始化數(shù)據(jù)庫棋盤〕流程在用戶登錄游戲過后,可以看見界面上有按鈕playgame,點擊按鈕可以進入游戲界面,在這個過程中程序初始化了棋盤,既在數(shù)據(jù)庫中初始化了棋盤上的所有棋子具體的流程如圖7-2。源代碼見附件2

獲取當前時間獲取當前時間當前棋子位置棋子狀態(tài)置-1棋子狀態(tài)置0不在棋盤上在棋盤上圖圖7-2初始化棋盤流程7.3用戶玩游戲流程在用戶進入游戲界面時,本款游戲已經(jīng)開始,用戶先下子,根據(jù)棋盤上方的提示進行就可以了,只要鼠標點擊方框即可下子,本游戲是事件驅(qū)動。具體的流程如圖7-3。源代碼見附件3圖7圖7-3用戶玩游戲流程事件用戶下子用戶勝出游戲結(jié)束電腦下子電腦勝出否是否是7.4添加新用戶由于系統(tǒng)設(shè)計的比擬簡單,所以用戶信息比擬簡約。其具體的流程圖如圖7-4,界面如圖。詳細源代碼見附件4注冊界面注冊界面兩次密碼相同用戶信息用戶數(shù)據(jù)表否是圖7-4用戶注冊流程

8JAVA五子棋對弈程序設(shè)計的技術(shù)關(guān)鍵8.1javascript中AJAX技術(shù)AJAX指異步JavaScript及XML〔AsynchronousJavaScriptAndXML〕。國內(nèi)翻譯常為“阿賈克斯〞和阿賈克斯足球隊同音。Web應(yīng)用的交互如Flickr,Backpack和Google在這方面已經(jīng)有質(zhì)的飛躍。這個術(shù)語源自描述從基于Web的應(yīng)用到基于數(shù)據(jù)的應(yīng)用的轉(zhuǎn)換。在基于數(shù)據(jù)的應(yīng)用中,用戶需求的數(shù)據(jù)如聯(lián)系人列表,可以從獨立于實際網(wǎng)頁的效勞端取得并且可以被動態(tài)地寫入網(wǎng)頁中,給緩慢的Web應(yīng)用體驗著色使之像桌面應(yīng)用一樣。Ajax的核心是JavaScript對象XmlRequest。該對象在InternetExplorer5中首次引入,它是一種支持異步請求的技術(shù)。簡而言之,XmlRequest使您可以使用JavaScript向效勞器提出請求并處理響應(yīng),而不阻塞用戶。本系統(tǒng)的ajax代碼如下:varxml;varisPs=1;function$(id){returndocument.getElementById(id);}functionstring(m,n){return(m+","+n);}functioncheck(m,n){varv=m+","+n;if(isPs!=1){}else{isPs=0;if($(m+","+n).className=="c0"){ $(v).className="c2"; $("title").innerHTML="請等待電腦下子,謝謝!"; creat(); xml.onreadystatechange=callback; xml.open("GET","showServlet?X="+m+"&Y="+n+"&di="+<%=request.getParameter("di")%>,true); xml.send(null)

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論