Java五子棋畢業(yè)設(shè)計(jì)-JAVA五子棋對(duì)弈程序的設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
Java五子棋畢業(yè)設(shè)計(jì)-JAVA五子棋對(duì)弈程序的設(shè)計(jì)與實(shí)現(xiàn)_第2頁(yè)
Java五子棋畢業(yè)設(shè)計(jì)-JAVA五子棋對(duì)弈程序的設(shè)計(jì)與實(shí)現(xiàn)_第3頁(yè)
Java五子棋畢業(yè)設(shè)計(jì)-JAVA五子棋對(duì)弈程序的設(shè)計(jì)與實(shí)現(xiàn)_第4頁(yè)
Java五子棋畢業(yè)設(shè)計(jì)-JAVA五子棋對(duì)弈程序的設(shè)計(jì)與實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩46頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

題目:JAVA五子棋對(duì)弈程序的設(shè)計(jì)與實(shí)現(xiàn)目錄摘要 IAbstract II1引言 12五子棋對(duì)弈程序的可行性分析 12.1五子棋系統(tǒng)設(shè)計(jì)思路 12.2經(jīng)濟(jì)可行性分析 12.3技術(shù)上的可行性 12.4管理上的可行性 23JAVA五子棋對(duì)弈現(xiàn)的需求分析 23.1用戶需求分析 23.1.1普通用戶主要需要: 23.1.2系級(jí)管理員主要需要: 23.1.3系統(tǒng)用例圖: 33.2數(shù)據(jù)字典的描述 3用戶信息表的數(shù)據(jù)字典的描述: 3用戶每次游戲信息表的數(shù)據(jù)字典描述: 43.2.3用戶每盤棋信息表的數(shù)據(jù)字典描述: 43.2.4用戶每步棋信息表的數(shù)據(jù)字典描述: 43.3五子棋對(duì)弈系統(tǒng)的數(shù)據(jù)流圖 43.3.1用戶登錄數(shù)據(jù)流圖〔DFD〕 5普通用戶界面顯示數(shù)據(jù)流圖〔DFD〕 5管理員用戶界面顯示數(shù)據(jù)流圖〔DFD〕 6用戶棋局回放數(shù)據(jù)流圖〔DFD〕 64JAVA五子棋對(duì)弈系統(tǒng)分析與設(shè)計(jì) 74.1系統(tǒng)設(shè)計(jì)總體思想、目標(biāo) 74.2五子棋人機(jī)對(duì)弈系統(tǒng)的ER模型 74.3JAVA五子棋對(duì)弈系統(tǒng)結(jié)構(gòu)、功能設(shè)計(jì) 94.3.1系統(tǒng)結(jié)構(gòu)設(shè)計(jì) 94.3.2系統(tǒng)功能模塊設(shè)計(jì) 10設(shè)計(jì)思路 114.4程序設(shè)計(jì)分析 114.5類的設(shè)計(jì) 124.6五子棋對(duì)弈系統(tǒng)的數(shù)據(jù)庫(kù)設(shè)計(jì) 154.6.1系統(tǒng)用戶表 154.6.2用戶棋局表 164.6.3用戶棋盤表 164.6.4用戶下棋信息表 175五子棋相關(guān)根底 175.1五子棋相關(guān)解釋 175.2五子棋相關(guān)規(guī)那么 175.3五子棋常用術(shù)語(yǔ) 186系統(tǒng)平臺(tái)、計(jì)算模式及技術(shù) 196.1計(jì)算模式的進(jìn)化及本系統(tǒng)選用的模式優(yōu)越性 196.1.1集中式管理——主機(jī)/終端模式 196.1.2Client/Server模式 196.1.3Brower/Server模式 206.1.4系統(tǒng)采用B/S三層體系結(jié)構(gòu)模式的優(yōu)越性 206.2JSP技術(shù) 216.2.1JSP簡(jiǎn)介 216.2.2JSP內(nèi)建對(duì)象 226.3MVC設(shè)計(jì)模式 236.4Servlet 236.4.1Servlet簡(jiǎn)介 236.4.2Servlet優(yōu)勢(shì) 246.5MYSQL數(shù)據(jù)庫(kù) 256.5.1MYSQL概述 256.5.2MYSQL優(yōu)勢(shì) 256.6TomCat效勞器工具概述 266.7環(huán)境的安裝 267系統(tǒng)實(shí)現(xiàn) 277.1用戶登陸流程 277.2用戶進(jìn)入游戲〔初始化數(shù)據(jù)庫(kù)棋盤〕流程 287.3用戶玩游戲流程 297.4添加新用戶 308JAVA五子棋對(duì)弈程序設(shè)計(jì)的技術(shù)關(guān)鍵 308.1javascript中AJAX技術(shù) 308.2電腦下棋算法設(shè)計(jì) 329系統(tǒng)試運(yùn)行結(jié)果與評(píng)價(jià) 4110結(jié)束語(yǔ) 41致謝 41參考文獻(xiàn) 41附件1: 42附件2: 43附件3: 44附件3: 46基于Web的JAVA五子棋對(duì)弈程序的設(shè)計(jì)與實(shí)現(xiàn)羅友〔重慶三峽學(xué)院計(jì)算機(jī)科學(xué)與工程學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)2021級(jí)重慶萬州404000〕摘要:人工智能是一門正在迅速開展的新興的,綜合性很強(qiáng)的交叉科學(xué)。它與生物工程、空間技術(shù)一起被并列為二十一世界三大尖端技術(shù)。它的中心任務(wù)是研究如何使計(jì)算機(jī)去做那些過去只能靠人的智力才能做的工作。目前各興旺國(guó)家都把人工智能作為重點(diǎn)工程,列入本國(guó)的高科技開展方案當(dāng)中,投入巨大的人力和物力。計(jì)算機(jī)人機(jī)對(duì)弈也是其中之一。作為人智能研究的一個(gè)重要分支,計(jì)算機(jī)博弈是檢驗(yàn)人工水平的一個(gè)重要方面。它的研究為人工智能帶來了很多重要的方法和理論,產(chǎn)生了廣泛的社會(huì)影響和學(xué)術(shù)影響。五子棋人機(jī)對(duì)弈是計(jì)算機(jī)博弈中的一種。研究其計(jì)算機(jī)算法,可以讓我們看到人工智能的稚形,也有助于我們?nèi)四X的開發(fā)。五子棋是我國(guó)創(chuàng)造的,研究它可以讓更多的外國(guó)人了解五子棋,這有助于我國(guó)優(yōu)秀文化的推廣。關(guān)鍵詞:人工智能;計(jì)算人機(jī)對(duì)弈;五子棋;JSP

JAVArenjuplaychessprogramdesignandimplementationBasedonWebLuoyou(Grade2021,ComputerScienceandTechnology,SchoolofComputerScienceandEngineering,ChongqingThreeGorgesUniversity,Wanzhou,Chongqing404000)Abstract:Artificialintelligenceisarapidlydevelopingnew,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;JSP1引言電腦已經(jīng)深入到日常工作和生活的方方面面,比方文字處理、信息管理、輔助設(shè)計(jì)、圖形圖像處理、教育培訓(xùn)以及游戲娛樂等。Windows系統(tǒng)的推出使電腦從高雅的學(xué)術(shù)殿堂走入了尋常百姓家,各行各業(yè)的人們無須經(jīng)過特別的訓(xùn)練就能夠使用電腦完成許許多多復(fù)雜的工作。然而,雖然現(xiàn)在世界上已經(jīng)充滿了把戲繁多的各種軟件,但它們依然不能滿足用戶的各種特殊需要,人們還不得不開發(fā)適合自己特殊需求的軟件。Java語(yǔ)言作為一種面向?qū)ο蟮木幊陶Z(yǔ)言,具有分布式,可移植,高性能,多線程等特點(diǎn)。通過系統(tǒng)的學(xué)習(xí),人們就可以使用它開發(fā)出功能齊全,滿足特殊需求的應(yīng)用程序。Java語(yǔ)言易學(xué)易用,對(duì)學(xué)習(xí)者掌握技能,開拓思維都有很大的幫助。我作為一名學(xué)生,在系統(tǒng)的學(xué)習(xí)了Java語(yǔ)言之后,經(jīng)常用它搞一些小程序。這次畢業(yè)設(shè)計(jì),正好將學(xué)過的Java語(yǔ)言中的各種技術(shù)綜合起來,用myeclipse開發(fā)工具編寫一個(gè)小游戲,既對(duì)自己學(xué)過的技能進(jìn)行一次檢驗(yàn),也能系統(tǒng)地將學(xué)過的知識(shí)復(fù)習(xí)穩(wěn)固。隨著計(jì)算機(jī)技術(shù)的不斷開展,網(wǎng)絡(luò)技術(shù)的普及范圍越來越廣,網(wǎng)絡(luò)能夠提供的效勞多樣、便捷,已經(jīng)成為人們生產(chǎn)生活中不可缺少的重要組成局部。如今網(wǎng)絡(luò)休閑游戲開展迅速,它憑借健康、方便、互動(dòng)性強(qiáng)、益智等諸多優(yōu)點(diǎn),成為大局部現(xiàn)代人休閑娛樂的首選。2五子棋對(duì)弈程序的可行性分析可行性分析是通過對(duì)工程的主要內(nèi)容和配套條件,如市場(chǎng)需求、資源供給、建設(shè)規(guī)模、工藝路線、設(shè)備選型、環(huán)境影響、資金籌措、盈利能力等,從技術(shù)、經(jīng)濟(jì)、工程等方面進(jìn)行調(diào)查研究和分析比擬,并對(duì)工程建成以后可能取得的財(cái)務(wù)、經(jīng)濟(jì)效益及社會(huì)環(huán)境影響進(jìn)行預(yù)測(cè),從而提出該工程是否值得投資和如何進(jìn)行建設(shè)的咨詢意見,為工程決策提供依據(jù)的一種綜合性的系統(tǒng)分析方法。2.1五子棋系統(tǒng)設(shè)計(jì)思路五子棋系統(tǒng)根本設(shè)計(jì)思路是把系統(tǒng)按照實(shí)現(xiàn)模塊進(jìn)行分解,利用java進(jìn)行編程。2.2經(jīng)濟(jì)可行性分析主要是對(duì)工程的經(jīng)濟(jì)效益進(jìn)行評(píng)價(jià),本系統(tǒng)開發(fā)費(fèi)用對(duì)于學(xué)員在經(jīng)濟(jì)上是可以接受的,并且本系統(tǒng)實(shí)施后可以讓用戶很好的對(duì)五子棋進(jìn)行更加深入的研究,有助于開發(fā)用戶智力。2.3技術(shù)上的可行性技術(shù)上的可行性分析主要技術(shù)條件是否順利完成開發(fā)工作,硬、軟件是否滿足開發(fā)者的需要等。該系統(tǒng)采用的簡(jiǎn)單的二層結(jié)構(gòu),數(shù)據(jù)庫(kù)選用MySQL,它相對(duì)于其他的數(shù)據(jù)庫(kù)來說,安裝簡(jiǎn)單,靈活性、平安性和易用性為數(shù)據(jù)庫(kù)編程提供了良好的條件。因此,系統(tǒng)的軟件開發(fā)平臺(tái)已成熟可行。硬件方面,科技飛速開展的今天,硬件更新的速度越來越快,容量越來越大,可靠性越來越高,價(jià)格越來越低,棋硬件平臺(tái)完全能滿足此系統(tǒng)的需求。2.4管理上的可行性主要是管理人員是否支持,現(xiàn)有的管理制度和方法是否科學(xué),規(guī)章制度是否齊全,原始數(shù)據(jù)是否正確等。規(guī)章制度和管理方法為系統(tǒng)的建設(shè)提供了制度保障。綜上所述,此系統(tǒng)開發(fā)目標(biāo)已明確,在技術(shù)和經(jīng)濟(jì)等方面都可行,并且投入少、見效快。因此系統(tǒng)的開發(fā)是完全可行的。3JAVA五子棋對(duì)弈現(xiàn)的需求分析本系統(tǒng)主要根據(jù)根據(jù)老師提出的要求進(jìn)行的需求分析:3.1用戶需求分析根據(jù)老師提出的要求,我們把系統(tǒng)的用戶分為兩類:普通用戶、系統(tǒng)管理員用戶,下面是我們對(duì)兩種用戶的需求進(jìn)行的分析:3.1.1普通用戶主要需要:根據(jù)分析,普通用戶具有的功能:〔1〕用戶登錄:用戶根據(jù)自己的密碼登錄本系統(tǒng)?!?〕棋局回放:用戶根據(jù)自己的需求回放自己以前下過的棋局?!?〕玩五子棋:用戶在點(diǎn)擊playgame后會(huì)進(jìn)入游戲界面玩游戲?!?〕悔棋功能:在下棋過程中,用戶根據(jù)自己的需求,選擇悔棋。〔5〕更改密碼:用戶可以根據(jù)自己的需求更改自己的密碼。3.1.2系級(jí)管理員主要需要:系統(tǒng)管理員是本系統(tǒng)的最高權(quán)限的管理員,他不僅具有普通用戶的各種功能,還具有他獨(dú)有的功能一下是系統(tǒng)管理員所具備的功能:〔1〕用戶登錄:用戶根據(jù)自己的密碼登錄本系統(tǒng)?!?〕棋局回放:用戶根據(jù)自己的需求回放自己以前下過的棋局?!?〕玩五子棋:用戶在點(diǎn)擊playgame后會(huì)進(jìn)入游戲界面玩游戲?!?〕悔棋功能:在下棋過程中,用戶根據(jù)自己的需求,選擇悔棋。〔5〕更改密碼:用戶可以根據(jù)自己的需求更改自己的密碼?!?〕管理普通用戶:可以對(duì)普通用戶進(jìn)行添加和刪除。3.1.3系統(tǒng)用例圖:圖3-1-3系統(tǒng)用例圖圖3-1-3系統(tǒng)用例圖3.2數(shù)據(jù)字典的描述數(shù)據(jù)字典是關(guān)于數(shù)據(jù)的信息的集合,也就是對(duì)數(shù)據(jù)流圖包含的所有元素的定義的集合。任何字典最重要的用途都是供人查閱對(duì)不了解的條目的解釋,數(shù)據(jù)字典的作用也正是在軟件分析和設(shè)計(jì)的過程中給人提供關(guān)于數(shù)據(jù)的描述信息。在本系統(tǒng)中涉及到多種數(shù)據(jù)的存儲(chǔ),其中包括用戶信息、用戶每次玩游戲的信息、用戶每盤棋的信息、用戶每步棋的信息。下面是給出的本系統(tǒng)的數(shù)據(jù)字典描述:3.2.1用戶信息表的數(shù)據(jù)字典的描述:描述:用與儲(chǔ)存用戶信息,其中有用戶名,當(dāng)用戶登錄后會(huì)在用戶首頁(yè)上顯示。用戶密碼用于登錄本系統(tǒng),用戶權(quán)限是整數(shù),1代表普通用戶,既可以通過注冊(cè)的用戶;0代表系統(tǒng)用戶,是系統(tǒng)自帶的不可以通過注冊(cè)獲得。名字:用戶信息表描述:用戶可以根據(jù)自己的密碼登陸系統(tǒng),系統(tǒng)根據(jù)用戶的信息來判斷用戶的權(quán)限,主要存儲(chǔ)的是用戶用戶信息和用戶權(quán)限。描述:用與儲(chǔ)存用戶信息,其中有用戶名,當(dāng)用戶登錄后會(huì)在用戶首頁(yè)上顯示。用戶密碼用于登錄本系統(tǒng),用戶權(quán)限是整數(shù),1代表普通用戶,既可以通過注冊(cè)的用戶;0代表系統(tǒng)用戶,是系統(tǒng)自帶的不可以通過注冊(cè)獲得。名字:用戶信息表描述:用戶可以根據(jù)自己的密碼登陸系統(tǒng),系統(tǒng)根據(jù)用戶的信息來判斷用戶的權(quán)限,主要存儲(chǔ)的是用戶用戶信息和用戶權(quán)限。定義:用戶名+用戶密碼+用戶權(quán)限位置:數(shù)據(jù)庫(kù)用戶信息表〔UserInfo〕3.2.2用戶每次游戲信息表的數(shù)據(jù)字典描述:名字:用戶每次游戲信息表描述:用于記錄用戶每次玩游戲的信息。名字:用戶每次游戲信息表描述:用于記錄用戶每次玩游戲的信息。定義:用戶名+用戶該盤局的編號(hào)+游戲時(shí)間位置:數(shù)據(jù)庫(kù)用戶每次游戲信息表〔UserDish〕描述:這個(gè)表主要用于記錄用戶玩游戲的時(shí)間,用戶棋盤編號(hào)是數(shù)據(jù)庫(kù)自動(dòng)生成的,游戲時(shí)間主要用于用戶要回放棋局的查找。3.2.3用戶每盤棋信息表的數(shù)據(jù)字典描述:描述:該表用戶儲(chǔ)存棋局信息,主要用于電腦下棋時(shí)通過棋局編號(hào)提取數(shù)據(jù),從而計(jì)算出電腦該下哪一步棋,其中棋子狀態(tài)分為4種,-1表示該點(diǎn)不在棋盤上,0表示該坐標(biāo)無棋子,1表示白棋2表示黑棋名字:用戶每盤棋信息表描述:用于記錄用戶每盤棋棋盤的信息。描述:該表用戶儲(chǔ)存棋局信息,主要用于電腦下棋時(shí)通過棋局編號(hào)提取數(shù)據(jù),從而計(jì)算出電腦該下哪一步棋,其中棋子狀態(tài)分為4種,-1表示該點(diǎn)不在棋盤上,0表示該坐標(biāo)無棋子,1表示白棋2表示黑棋名字:用戶每盤棋信息表描述:用于記錄用戶每盤棋棋盤的信息。定義:用戶該盤局編號(hào)+棋盤上棋子的X軸坐標(biāo)+棋盤上棋子的Y軸坐標(biāo)+該坐標(biāo)上棋子狀態(tài)位置:數(shù)據(jù)庫(kù)用戶每盤棋信息表〔UserQipan〕3.2.4用戶每步棋信息表的數(shù)據(jù)字典描述:描述:該表主要儲(chǔ)存用戶和電腦下的每一步棋,用戶與棋盤回放時(shí)在數(shù)據(jù)庫(kù)提取數(shù)據(jù)名字:用戶每步棋信息表描述:用于記錄用戶每步的信息。描述:該表主要儲(chǔ)存用戶和電腦下的每一步棋,用戶與棋盤回放時(shí)在數(shù)據(jù)庫(kù)提取數(shù)據(jù)名字:用戶每步棋信息表描述:用于記錄用戶每步的信息。定義:用戶該盤棋的編號(hào)+用戶該步棋的編號(hào)+該步棋電腦下棋的Y軸坐標(biāo)+該步棋電腦下棋的X軸坐標(biāo)+該步棋用戶下棋的Y軸坐標(biāo)+該步棋用戶下棋的X軸坐標(biāo)位置:數(shù)據(jù)庫(kù)用戶每盤棋信息表〔UserStep〕3.3五子棋對(duì)弈系統(tǒng)的數(shù)據(jù)流圖數(shù)據(jù)流圖〔DataFlowDiagram〕:簡(jiǎn)稱DFD,它從數(shù)據(jù)傳遞和加工角度,以圖形方式來表達(dá)系統(tǒng)的邏輯功能、數(shù)據(jù)在系統(tǒng)內(nèi)部的邏輯流向和邏輯變換過程,是結(jié)構(gòu)化系統(tǒng)分析方法的主要表達(dá)工具及用于表示軟件模型的一種圖示方法。下面簡(jiǎn)要介紹局部需求的數(shù)據(jù)流圖:3.3.1用戶登錄數(shù)據(jù)流圖〔DFD〕在用戶登錄過程當(dāng)中,用戶輸入的信息經(jīng)過加工處理后,通過對(duì)數(shù)據(jù)庫(kù)的查詢后返回給程序該用戶的權(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〕如下用戶用戶接受權(quán)限信息處理信息用戶每次游戲信息〔UserDish〕產(chǎn)生結(jié)果用戶權(quán)限查詢信息游戲信息游戲信息用戶信息表〔UserInfo〕圖3-3管理員用戶數(shù)據(jù)顯示數(shù)據(jù)流圖圖3-3管理員用戶數(shù)據(jù)顯示數(shù)據(jù)流圖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五子棋對(duì)弈系統(tǒng)分析與設(shè)計(jì)此系統(tǒng)為智力游戲,適合于各類游戲愛好者。由于其經(jīng)典性及其游戲的簡(jiǎn)單性,各類人士都可以也都愛玩。人們?cè)谂c電腦對(duì)戰(zhàn)享受娛樂的同時(shí),也會(huì)體會(huì)到自己的智力也會(huì)有所提升。該款五子棋游戲功能雖然簡(jiǎn)單,但實(shí)現(xiàn)了人機(jī),所以從這個(gè)角度來說,該款游戲需要電腦能準(zhǔn)確的計(jì)算棋局。雖然系統(tǒng)不大,但要在滿足玩家的根本要求的情況下,電腦有一定的智能,能給于新手一定的幫助。4.1系統(tǒng)設(shè)計(jì)總體思想、目標(biāo)本系統(tǒng)在結(jié)構(gòu)設(shè)計(jì)中采用java的MVC模式,根據(jù)不同的功能劃分不同的模塊,該款五子棋游戲功能雖然簡(jiǎn)單,但實(shí)現(xiàn)了人機(jī),所以從這個(gè)角度來說,該款游戲需要電腦能準(zhǔn)確的計(jì)算棋局。雖然系統(tǒng)不大,但要在滿足玩家的根本要求的情況下,電腦有一定的智能,能給于新手一定的幫助。4.2五子棋人機(jī)對(duì)弈系統(tǒng)的ER模型經(jīng)過對(duì)系統(tǒng)的分析,我們將系統(tǒng)劃分出了用戶信息、用戶棋局信息、用戶棋盤信息、用戶下棋信息等幾個(gè)實(shí)體,其各個(gè)實(shí)體的屬性如下:用戶信息:用戶名、用戶密碼、用戶權(quán)限用戶棋局信息:用戶名、棋局編號(hào)、棋局創(chuàng)立時(shí)間用戶棋盤信息:棋局編號(hào)、X軸坐標(biāo)、Y軸坐標(biāo)、棋子狀態(tài)用戶下棋信息:棋局編號(hào)、用戶X坐標(biāo)、用戶Y坐標(biāo)、電腦X坐標(biāo)、電腦Y坐標(biāo)本系統(tǒng)的具體ER模型如下:用戶用戶用戶名用戶密碼用戶權(quán)限圖4-1用戶ER圖圖4-2用戶棋局ER圖棋局圖4-2用戶棋局ER圖棋局用戶名棋局編號(hào)創(chuàng)立時(shí)間圖4-3用戶棋盤ER圖棋盤圖4-3用戶棋盤ER圖棋盤棋局編號(hào)X軸坐標(biāo)Y軸坐標(biāo)棋子狀態(tài)圖4-4用戶棋盤ER圖下棋圖4-4用戶棋盤ER圖下棋棋局編號(hào)用戶Y坐標(biāo)用戶X坐標(biāo)電腦X坐標(biāo)電腦X坐標(biāo)圖3-1整體ER圖用戶圖3-1整體ER圖用戶用戶密碼用戶名用戶權(quán)限棋局棋局編號(hào)創(chuàng)立時(shí)間創(chuàng)立棋盤X軸坐標(biāo)Y軸坐標(biāo)棋子狀態(tài)下棋屬于屬于用戶X坐標(biāo)用戶Y坐標(biāo)電腦X坐標(biāo)電腦X坐標(biāo)1N1N11每步棋編號(hào)圖4-5整體ER圖圖4-5整體ER圖4.3JAVA五子棋對(duì)弈系統(tǒng)結(jié)構(gòu)、功能設(shè)計(jì)4.3.1系統(tǒng)結(jié)構(gòu)設(shè)計(jì)本系統(tǒng)主要針對(duì)用戶提出的要求業(yè)務(wù)開發(fā)的系統(tǒng),其結(jié)構(gòu)設(shè)計(jì)情況如圖〔圖4-6〕所示:圖4-6系統(tǒng)結(jié)構(gòu)圖用戶前臺(tái)圖4-6系統(tǒng)結(jié)構(gòu)圖用戶前臺(tái)注冊(cè)登錄數(shù)據(jù)顯示五子棋棋盤回放悔棋游戲4.3.2系統(tǒng)功能模塊設(shè)計(jì)該款游戲主要由一下幾個(gè)模塊組成〔圖4-7〕:五子棋游戲五子棋游戲用戶登錄注冊(cè)人機(jī)對(duì)弈模式具有悔棋功能棋局回放功能圖4-7五子棋功能模塊圖用戶登錄注冊(cè):在玩五子棋之前,用戶要先登錄游戲,未注冊(cè)的用戶應(yīng)該先注冊(cè),如果登錄成功會(huì)跳到用戶管理頁(yè)面,登錄信息錯(cuò)誤會(huì)提示密碼用戶名錯(cuò)誤。人機(jī)對(duì)弈模式:選擇該模式可以實(shí)現(xiàn)人與電腦之間的對(duì)弈,電腦會(huì)智能的選擇該在哪處下子,并會(huì)在每次下棋結(jié)束后判斷是否有哪方已經(jīng)獲勝,如果獲勝那么結(jié)束本局游戲,并提示玩家游戲結(jié)束。悔棋功能:這個(gè)功能也是根據(jù)游戲的實(shí)際需求而存在的,在現(xiàn)實(shí)生活中難免有失誤下錯(cuò)了棋,那么就需要悔棋。此功能提供了悔棋功能,使得下棋的靈活性有所提高。玩家假設(shè)想悔棋,那么只需選擇悔棋按鈕便可以重新下過剛剛的棋,但只能悔一步棋。棋局回放功能:這個(gè)功能是更加用戶需求設(shè)計(jì)的,該功能可以回放用戶以前下過的棋局只要點(diǎn)擊要回放的棋局,進(jìn)入棋局回放頁(yè)面,點(diǎn)擊下一步就可以回放該棋局,點(diǎn)一下只能回放一步棋。4.3.3設(shè)計(jì)思路1.本程序要實(shí)現(xiàn)五子棋的游戲功能,必須先有一個(gè)棋盤,所以,通過html中的表格畫的,棋盤是17*17,表格中是一個(gè)層,通過改變其背景圖片來表示有無棋子,是白棋還是黑棋。另外還有一個(gè)按鈕:悔棋按鈕,用于提供悔棋功能,界面還顯示系統(tǒng)時(shí)間,用戶提示用戶當(dāng)前時(shí)間。2.對(duì)于下棋的操作,通過對(duì)該層鼠標(biāo)事件監(jiān)聽器onclick,每次當(dāng)用戶點(diǎn)擊鼠標(biāo)時(shí),先取得點(diǎn)擊的坐標(biāo)值,然后換算成對(duì)應(yīng)棋盤上〔即棋盤數(shù)組〕的位置〔數(shù)組的下標(biāo)〕。3.判斷此處是否已經(jīng)有棋子,如果有那么用javascript提示玩家重新下子,否那么通過ajax把點(diǎn)擊的數(shù)組傳遞給后臺(tái),通過后臺(tái)處理返回給前臺(tái)數(shù)據(jù)來改變樣式,在此處畫上棋子。4.判斷該顏色棋子的上下左右是否滿足連續(xù)五個(gè),是的話提醒相應(yīng)玩家獲勝,不是的話,更換玩家下棋。5.對(duì)于玩家的更換是程序自動(dòng)的,每次用戶點(diǎn)擊鼠標(biāo)后,假設(shè)本局還未結(jié)束那么會(huì)變換玩家,從而畫出對(duì)應(yīng)黑方白方的棋子,直到有一方獲勝程序結(jié)束。4.4程序設(shè)計(jì)分析1.在網(wǎng)站的首頁(yè)是登錄界面,有登錄和注冊(cè)兩個(gè)功能。2.在登錄成功會(huì)跳到用戶信息頁(yè)面,在該頁(yè)面的右下角會(huì)列出該用戶在最近5次,玩游戲的信息記錄,點(diǎn)擊該記錄可以回放對(duì)應(yīng)的棋局。在信息下方有開始游戲和更改密碼兩個(gè)按鈕。3.繪制棋盤,17*17的方框,在方框處下棋子〔實(shí)心黑白圓形〕。4.棋盤處于鼠標(biāo)監(jiān)聽狀態(tài),當(dāng)鼠標(biāo)在棋盤上有點(diǎn)擊操作的時(shí)候,程序會(huì)獲得鼠標(biāo)點(diǎn)擊的坐標(biāo)然后換算成對(duì)應(yīng)的棋盤的位置,再判斷此處是否有棋子,假設(shè)沒有,那么在此處畫出對(duì)應(yīng)顏色的實(shí)心棋子,假設(shè)已經(jīng)有棋子了,那么提示玩家此處已經(jīng)有棋子請(qǐng)重新下棋。5.當(dāng)用戶點(diǎn)擊表格中的層下完棋后,輪到電腦下子時(shí),電腦會(huì)通過算法計(jì)算每個(gè)沒有棋子的位置的重要性來選擇最重要的位置下子。6.當(dāng)任何一方有五個(gè)棋子沿著橫,豎,斜連在一起時(shí),系統(tǒng)自動(dòng)判斷贏棋,并顯示黑方或白方勝利。棋局結(jié)束后,會(huì)返回用戶信息頁(yè)面。7.程序流程如下列圖(圖4-8):圖4-8系統(tǒng)結(jié)構(gòu)圖圖4-8系統(tǒng)結(jié)構(gòu)圖4.5類的設(shè)計(jì)1〕由于要用到數(shù)據(jù)庫(kù),所以設(shè)計(jì)了一個(gè)用來連接數(shù)據(jù)庫(kù)的類BaseDao,其中包括了兩個(gè)方法和4個(gè)變量,類圖(圖4-9)如下:圖4-9BaseDao類圖圖4-9BaseDao類圖2〕下列圖是關(guān)于數(shù)據(jù)庫(kù)中對(duì)應(yīng)的表的類圖(圖4-10)關(guān)系:圖4-10類表關(guān)系圖圖4-10類表關(guān)系圖3〕雖然有了用戶相關(guān)類,但是無法操作數(shù)據(jù)庫(kù)中的用戶信息,所以設(shè)計(jì)了操作用戶表的類UserDishDaoImpl,該類繼承BaseDao,并且實(shí)現(xiàn)IUserDao類,類圖(圖4-11)如下:圖4-11圖4-11UserDishDaoImpl類圖4〕對(duì)于用戶每次玩游戲的信息操作,用UserDishDaoImpl實(shí)現(xiàn)了各種操作。類圖(圖4-12)如下:圖4-12UserDishDaoImpl圖4-12UserDishDaoImpl類圖5〕對(duì)棋盤的各種信息保存操作,用類UserQipanDaoImpl來實(shí)現(xiàn)。其中類圖(圖4-13)如下圖4-13UserQipanDaoImpl圖4-13UserQipanDaoImpl類圖6〕對(duì)每局棋及每盤棋的各種保存操作,用UserStepDaoImpl來實(shí)現(xiàn),其中類圖(圖4-14)如下:圖4-14UserStepDaoImpl圖4-14UserStepDaoImpl類圖7〕由于程序是人機(jī)對(duì)弈,電腦下棋算法用Computer類來實(shí)現(xiàn),其中有電腦下棋算法,還有電腦判斷輸贏算法,類圖(圖4-15)如下:圖4-15Servlet圖4-15Servlet類圖8)本程序的時(shí)序圖〔圖4-16〕如下:圖4-16時(shí)序圖4-16時(shí)序圖4.6五子棋對(duì)弈系統(tǒng)的數(shù)據(jù)庫(kù)設(shè)計(jì)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ù)類型備注棋局編號(hào)dishIdInt(11)系統(tǒng)自動(dòng)分配,是該表的主鍵,Notnull約束用戶名userNamevarchar(255)用戶輸入,Notnull約束創(chuàng)立時(shí)間playDateDate系統(tǒng)分配,Notnull約束4.6.3用戶棋盤表名稱編碼數(shù)據(jù)類型備注棋局編號(hào)dishIdInt〔11〕系統(tǒng)自動(dòng)分配,是改變的主鍵,Notnull約束X軸坐標(biāo)XInt(11)是棋盤的X坐標(biāo),Notnull約束Y軸坐標(biāo)YInt(11)是棋盤的Y坐標(biāo),Notnull約束狀態(tài)FInt〔11〕表示棋子狀態(tài),Notnull約束4.6.4用戶下棋信息表名稱編碼數(shù)據(jù)類型備注下棋編號(hào)stepIdInt〔11〕系統(tǒng)自動(dòng)分配,是改變的主鍵,Notnull約束電腦X坐標(biāo)pcXInt(11)是電腦該步棋的X坐標(biāo),Notnull約束電腦Y坐標(biāo)pcYInt(11)是電腦該步棋的Y坐標(biāo),Notnull約束用戶X坐標(biāo)psXInt〔11〕是電用戶該步棋的X坐標(biāo),Notnull約束用戶Y坐標(biāo)psYInt〔11〕是電用戶該步棋的X坐標(biāo),Notnull約束棋局編號(hào)dishIdInt〔11〕是該表的外鍵,Notnull約束5五子棋相關(guān)根底5.1五子棋相關(guān)解釋引用?辭海?中所言,五子棋是“棋類游戲,棋具與圍棋相同,兩人對(duì)局,輪流下子,先將五子連成一行者為勝。〞。五子棋的名稱:日文亦有“連五子、五子連、串珠、五目、五目碰、五格、五石、五法、五聯(lián)、京棋〞等多種稱謂,英文那么稱之為FIR(FiveInARow的縮寫)、Gomoku(日語(yǔ)“五目〞的羅馬拼音)、Gobang、connect5、mo-rphion。捷克語(yǔ)piskvorky,韓語(yǔ)omok、韓國(guó)人還稱之為情侶棋。5.2五子棋相關(guān)規(guī)那么1.五子棋行棋時(shí),黑棋先下第一子,由天元開始,后白棋在黑棋周圍的方框的落子。接著黑方再以天元中心的25個(gè)交叉點(diǎn)的范圍內(nèi)落盤面的第三子,之后黑白雙方相互順序子。2.最先在棋盤上橫向,縱向,斜向形成已方的五個(gè)棋子連續(xù)的一方為勝。3.出現(xiàn)禁手對(duì)方指出后將判負(fù),其中包括兩個(gè)或兩個(gè)以上的活三,活四,長(zhǎng)連均稱之為禁手。4.禁手只對(duì)黑棋有效,白棋無禁手。5.黑方禁手形成時(shí),白方需立即指出,黑方將被判負(fù)。假設(shè)白方未發(fā)現(xiàn)黑方禁手存在而繼續(xù)應(yīng)子,其后指出黑方禁手不能判黑方負(fù)。6.黑方連五與禁手同時(shí)形成,因黑方已連成五即黑方已獲勝,故禁手規(guī)那么失效。7.在對(duì)局中,在盤上落下的子又拿起來,此動(dòng)作稱為拔子,假設(shè)拔子將被判為負(fù)。8.在對(duì)局中棋子掉落在棋盤上將被判負(fù)。假設(shè)推子或蹭子,以盤面第一落點(diǎn)為準(zhǔn)。用手將棋子推正不算違犯規(guī)那么。9.在對(duì)局中,一方自行中止比賽如:中途退場(chǎng),將被判負(fù)。10.在對(duì)局中對(duì)方宣布認(rèn)輸,本局獲勝。11.超過比賽規(guī)定所用時(shí)間限制,將被判為負(fù):正式比賽期間,遲到時(shí)間超過比賽容許時(shí)間將被判負(fù)。12.如下至最終一子仍不分勝負(fù)那么定為平局。13.中盤期間雙方同意和局提議,判定為平局。5.3五子棋常用術(shù)語(yǔ)1.著:也稱“步〞。對(duì)局中把一個(gè)棋子按照規(guī)那么放到某一點(diǎn),稱之為一著棋。一著是否完成有兩種規(guī)那么:

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

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

15.局面:亦稱“局勢(shì)〞。為對(duì)局中某一段時(shí)間內(nèi)雙方子力的配置情況。16.優(yōu)勢(shì):是指足以取勝的優(yōu)勢(shì)局面,其對(duì)方即為敗勢(shì)。17.妙著:對(duì)局中走出的一步精妙的著法。既符合邏輯又出人意料,有使局面頓時(shí)改觀的效果,對(duì)局勢(shì)的開展及對(duì)局的質(zhì)量都有重大影響。18.好著:也稱“佳著〞。對(duì)局中成功的某一步。19.正著:對(duì)局的某一局面中的正確著法。20.劣著:對(duì)局中,導(dǎo)致嚴(yán)重不利后果的一步錯(cuò)誤著法。21.敗著:也稱“失著〞“漏著〞。對(duì)局中造成局面惡化的一步嚴(yán)重錯(cuò)誤著法。22.等著:對(duì)局中具有等待性的一步著法,主要意圖是等待有利時(shí)機(jī)。23.廢著:也稱“空著〞。對(duì)局中不起作用的著法。實(shí)際上指浪費(fèi)時(shí)間毫無疑義的錯(cuò)著。24.搶先:對(duì)局中利用反活三或沖四的強(qiáng)制手段奪取主動(dòng)權(quán)的著法。25.打譜:按照棋譜演練著法,是提高棋藝水平的重要方法之一。26.復(fù)局:也叫“復(fù)著〞。對(duì)局結(jié)束又重演對(duì)局的過程。一般用以研究、比擬雙方的成敗得失和著法的優(yōu)劣。6系統(tǒng)平臺(tái)、計(jì)算模式及技術(shù)1)系統(tǒng)的硬件平臺(tái):一臺(tái)臺(tái)式計(jì)算機(jī)2)系統(tǒng)的軟件平臺(tái):Windowsxp/windows7IE瀏覽器等6.1計(jì)算模式的進(jìn)化及本系統(tǒng)選用的模式優(yōu)越性回憶計(jì)算機(jī)的開展史,計(jì)算模式有過三次質(zhì)的飛躍:6.1.1集中式管理——主機(jī)/終端模式通過硬件連線把簡(jiǎn)單的終端接到主機(jī)上;所有用戶的擊鍵和光標(biāo)位置傳入主機(jī),所有從主機(jī)返回的結(jié)果,顯示在終端屏幕的特定位置;分時(shí)共享模式,所有的程序和數(shù)據(jù)都存儲(chǔ)在大型的主機(jī)中〔數(shù)據(jù)庫(kù)、應(yīng)用程序、通信程序〕,資源集中控制;利用主機(jī)的能力運(yùn)行應(yīng)用程序,利用無智能的終端來對(duì)應(yīng)用進(jìn)行控制;6.1.2Client/Server模式在Client-Server模式,應(yīng)用被分為前端〔客戶端〕和后端〔效勞器端〕;客戶局部運(yùn)行在微機(jī)或工作站上,而效勞器局部可以運(yùn)行在從微機(jī)到大型機(jī)等各種計(jì)算機(jī)上??蛻魴C(jī)和效勞器分別工作在不同的邏輯實(shí)體中,并協(xié)同工作。效勞器主要是運(yùn)行客戶機(jī)不能完成或費(fèi)時(shí)的工作,比方大型數(shù)據(jù)庫(kù)的管理,而客戶機(jī)可以通過預(yù)先指定的語(yǔ)言向效勞器提出請(qǐng)求,要求效勞器去執(zhí)行某項(xiàng)操作,并將操作結(jié)果返送給客戶機(jī)。6.1.3Brower/Server模式基于瀏覽器、WWW效勞器和應(yīng)用效勞器的計(jì)算結(jié)構(gòu),稱為瀏覽器/效勞器〔Browser/Server〕的計(jì)算模式,簡(jiǎn)稱B/S模式,該計(jì)算模式在20世紀(jì)90年代中期逐漸形成和開展。B/S計(jì)算模式繼承和共融了傳統(tǒng)客戶機(jī)/效勞器模式中的網(wǎng)絡(luò)軟、硬件平臺(tái)和應(yīng)用,但它具有傳統(tǒng)C/S計(jì)算模式所不及的很多特點(diǎn),比方更加開放、與軟、硬件平臺(tái)無關(guān)、應(yīng)用開發(fā)速度快、生命周期長(zhǎng)、應(yīng)用擴(kuò)充和系統(tǒng)維護(hù)升級(jí)方便等。6.1.4系統(tǒng)采用B/S三層體系結(jié)構(gòu)模式的優(yōu)越性三層體系結(jié)構(gòu)圖如圖圖6-1所示:CGI,ASP,PHP等技術(shù)的出現(xiàn),使得開發(fā)動(dòng)態(tài)交互式的Web應(yīng)用得以實(shí)現(xiàn)。用戶通過瀏覽器向效勞器發(fā)送請(qǐng)求,Web效勞器接收客戶端發(fā)送來的請(qǐng)求,對(duì)請(qǐng)圖6-1三層體系結(jié)構(gòu)圖求進(jìn)行分析,如果請(qǐng)求是靜態(tài)頁(yè)面,那么就將所請(qǐng)求的頁(yè)面發(fā)送到客戶端;如果請(qǐng)求的是動(dòng)態(tài)頁(yè)面,那么就執(zhí)行此動(dòng)態(tài)頁(yè)面,并將執(zhí)行結(jié)果發(fā)送給客戶端。動(dòng)態(tài)頁(yè)面中的腳本程序可以和數(shù)據(jù)庫(kù)效勞器進(jìn)行交互。Web效勞器可以根據(jù)用戶的請(qǐng)求動(dòng)態(tài)更新頁(yè)面上的信息,Web信息提供者可以通過改變數(shù)據(jù)庫(kù)中的數(shù)據(jù)向用戶提供最新信息,而不需要逐個(gè)更改頁(yè)面。用戶可以通過這些動(dòng)態(tài)頁(yè)面向數(shù)據(jù)庫(kù)中輸入信息,從而增強(qiáng)了用戶和效勞器之間的交互性。

與傳統(tǒng)的C/S體系結(jié)構(gòu)相比,三層體系結(jié)構(gòu)存在以下優(yōu)點(diǎn):

(1)客戶端零維護(hù)

在三層體系結(jié)構(gòu)中,幾乎所有的業(yè)務(wù)處理都是在中間件WebServer上完成的,客戶端只需要安裝支持Java的瀏覽器即可,不用做任何其它安裝和配置工作,所以也就不存在客戶端維護(hù)的問題,真正實(shí)現(xiàn)了“客戶端零維護(hù)〞。處理業(yè)務(wù)時(shí),操作員可以直接通過Web瀏覽器訪問WebServer進(jìn)行業(yè)務(wù)處理工作。

2〕可擴(kuò)展性好

三層體系結(jié)構(gòu)的可擴(kuò)展性好表達(dá)在以下四個(gè)方面:

第一,工作節(jié)點(diǎn)的可擴(kuò)展性好。由于三層體系結(jié)構(gòu)的客戶端零維護(hù)的特點(diǎn),使增加一個(gè)工作節(jié)點(diǎn)的工作簡(jiǎn)單到了只需增加一臺(tái)裝有Web瀏覽器的PC機(jī)即可。

第二,應(yīng)用系統(tǒng)的可擴(kuò)展性好。好的應(yīng)用系統(tǒng)應(yīng)該能方便地實(shí)現(xiàn)一定程度上業(yè)務(wù)的變化和業(yè)務(wù)單元的增加。三層體系結(jié)構(gòu)采用面向?qū)ο蟮姆治龊驮O(shè)計(jì)模式,將業(yè)務(wù)模塊都封裝到了業(yè)務(wù)類和效勞類中,所以,如果一個(gè)業(yè)務(wù)流程變了,或需要增加一個(gè)新的業(yè)務(wù)模塊,只需替換或增加新的業(yè)務(wù)類和效勞類即可。

第三,業(yè)務(wù)邏輯與用戶界面及數(shù)據(jù)庫(kù)別離,使得當(dāng)用戶業(yè)務(wù)邏輯發(fā)生變化時(shí)只需更改中間層的控件/組件/JB/EJB即可。

第四,便于數(shù)據(jù)庫(kù)移植。由于客戶端不直接訪問數(shù)據(jù)庫(kù),而是通過一個(gè)中間層進(jìn)行訪問,所以,在改變數(shù)據(jù)庫(kù)、驅(qū)動(dòng)程序或存儲(chǔ)方式時(shí)無需改變客戶端配置,只要集中改變中間件上的持久化層的數(shù)據(jù)庫(kù)連接局部即可。

3〕平安性好

在三層體系結(jié)構(gòu)中,客戶端只能通過WebServer而不能直接訪問數(shù)據(jù)庫(kù),這大大提高了系統(tǒng)的平安性。如果對(duì)系統(tǒng)提出更高的平安性要求的話,還可以通過防火墻進(jìn)行屏蔽。

4)資源重用性好

由于將業(yè)務(wù)邏輯集中到WebServer統(tǒng)一處理,三層體系結(jié)構(gòu)可以更好地利用共享資源。例如數(shù)據(jù)庫(kù)連接是一項(xiàng)很消耗系統(tǒng)資源、影響響應(yīng)時(shí)間的事件,在三層體系結(jié)構(gòu)中可以將數(shù)據(jù)庫(kù)連接放在緩沖池中統(tǒng)一管理,由不同應(yīng)用共享,并有效控制連接的數(shù)量。6.2JSP技術(shù)6.2.1JSP簡(jiǎn)介JSP〔JavaServerPages〕是一種基于Java的腳本技術(shù)。在JSP的眾多優(yōu)點(diǎn)之中,其中之一是它能將HTML編碼從Web頁(yè)面的業(yè)務(wù)邏輯中有效地別離出來。用JSP訪問可重用的組件,如Servlet、JavaBean和基于Java的Web應(yīng)用程序。JSP還支持在Web頁(yè)面中直接嵌入Java代碼??捎脙煞N方法訪問JSP文件:瀏覽器發(fā)送JSP文件請(qǐng)求、發(fā)送至Servlet的請(qǐng)求。

1.JSP文件訪問Bean或其它能將生成的動(dòng)態(tài)內(nèi)容發(fā)送到瀏覽器的組件。圖6-2說明了該JSP訪問模型。當(dāng)Web效勞器接收到一個(gè)JSP文件請(qǐng)求時(shí),效勞器將請(qǐng)求發(fā)送至WebSphere應(yīng)用效勞器。WebSphere應(yīng)用效勞器對(duì)JSP文件進(jìn)行語(yǔ)法分析并生成Java源文件〔被編譯和執(zhí)行為Servlet〕。Java源文件的生成和編譯僅在初次調(diào)用Servlet時(shí)發(fā)生,除非已經(jīng)更新了原始的JSP文件。在這種情況下,WebSphere應(yīng)用效勞器將檢測(cè)所做的更新,并在執(zhí)行它之前重新生成和編譯Servlet。

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

圖6-3:發(fā)送至Servlet的請(qǐng)求6.2.2JSP內(nèi)建對(duì)象定義:可以不加聲明就在JSP頁(yè)面腳本〔Java程序片和Java表達(dá)式〕中使用的成員變量JSP共有以下9種根本內(nèi)置組件〔可與ASP的6種內(nèi)部組件相對(duì)應(yīng)〕:1.request對(duì)象客戶端的請(qǐng)求信息被封裝在request對(duì)象中,通過它才能了解到客戶的需求,然后做出響應(yīng)。它是ServletRequest類的實(shí)例。2.response對(duì)象response對(duì)象包含了響應(yīng)客戶請(qǐng)求的有關(guān)信息,但在JSP中很少直接用到它。它是ServletResponse類的實(shí)例。3.session對(duì)象session對(duì)象指的是客戶端與效勞器的一次會(huì)話,從客戶端連到效勞器的一個(gè)WebApplication開始,直到客戶端與效勞器斷開連接為止。它是Session類的實(shí)例.4.out對(duì)象out對(duì)象是JspWriter類的實(shí)例,是向客戶端輸出內(nèi)容常用的對(duì)象5.page對(duì)象page對(duì)象就是指向當(dāng)前JSP頁(yè)面本身,有點(diǎn)象類中的this指針,它是java.lang.Object類的實(shí)例6.application對(duì)象application對(duì)象實(shí)現(xiàn)了用戶間數(shù)據(jù)的共享,可存放全局變量。它開始于效勞器的啟動(dòng),直到效勞器的關(guān)閉,在此期間,此對(duì)象將一直存在;這樣在用戶的前后連接或不同用戶之間的連接中,可以對(duì)此對(duì)象的同一屬性進(jìn)行操作;在任何地方對(duì)此對(duì)象屬性的操作,都將影響到其他用戶對(duì)此的訪問。效勞器的啟動(dòng)和關(guān)閉決定了application對(duì)象的生命。它是ServletContext類的實(shí)例。7.exception對(duì)象exception對(duì)象是一個(gè)例外對(duì)象,當(dāng)一個(gè)頁(yè)面在運(yùn)行過程中發(fā)生了例外,就產(chǎn)生這個(gè)對(duì)象。如果一個(gè)JSP頁(yè)面要應(yīng)用此對(duì)象,就必須把isErrorPage設(shè)為true,否那么無法編譯。他實(shí)際上是java.lang.Throwable的對(duì)象8.pageContext對(duì)象pageContext對(duì)象提供了對(duì)JSP頁(yè)面內(nèi)所有的對(duì)象及名字空間的訪問,也就是說他可以訪問到本頁(yè)所在的SESSION,也可以取本頁(yè)面所在的application的某一屬性值,他相當(dāng)于頁(yè)面中所有功能的集大成者,它的本類名也叫pageContext。9.config對(duì)象config對(duì)象是在一個(gè)Servlet初始化時(shí),JSP引擎向它傳遞信息用的,此信息包括Servlet初始化時(shí)所要用到的參數(shù)〔通過屬性名和屬性值構(gòu)成〕以及效勞器的有關(guān)信息〔通過傳遞一個(gè)ServletContext對(duì)象〕6.3MVC設(shè)計(jì)模式MVC模式的根本形式圖如圖6-4所示。圖6-4MVC模式的根本形式圖MVC(Model-View-Controller)模式并不是J2EE行業(yè)人士標(biāo)新立異的。MVC的核心就是要做到三級(jí)甚至多級(jí)的松散耦合,MVC模式將系統(tǒng)分為三個(gè)局部,分別是數(shù)據(jù)模型、視圖和控制器,并定義了這三個(gè)局部之間實(shí)現(xiàn)通信的一種模式,使每個(gè)局部不必卷入到其他局部的狀態(tài)表示和方法實(shí)現(xiàn)的細(xì)節(jié)中去。每個(gè)局部有自己的數(shù)據(jù)管理規(guī)那么,各個(gè)對(duì)象之間的通信只能使用自己定義的一個(gè)受限連接集合進(jìn)行。保持這種別離性通常是面向?qū)ο缶幊毯驮O(shè)計(jì)要追求的目標(biāo),讓各個(gè)對(duì)象只需專注于自己的事務(wù)。模型局部代表了商業(yè)數(shù)據(jù)的訪問及修改數(shù)據(jù)的操作。當(dāng)數(shù)據(jù)發(fā)生改變時(shí),要負(fù)責(zé)通知視圖局部,并且提供視圖查詢狀態(tài)的能力。另外,還向控制局部提供給用功能。視圖局部以自己的方式顯示模型的內(nèi)容。訪問模型的數(shù)據(jù),并且當(dāng)模型的數(shù)據(jù)發(fā)生變化時(shí)更新模型的顯示。視圖還把從用戶那里得到的信息傳給控制局部??刂凭植慷x了應(yīng)用的行為。分發(fā)用戶請(qǐng)求和選擇表現(xiàn)視圖,還負(fù)責(zé)解釋用戶輸入,進(jìn)而調(diào)用模型的功能。在Web應(yīng)用中,用戶輸入包括對(duì)Web級(jí)資源的、GET和POST請(qǐng)求??刂凭植扛鶕?jù)用戶交互和模型的狀態(tài)選擇要顯示的視圖。一個(gè)應(yīng)用程序一般為相關(guān)的功能選擇一個(gè)控制局部。6.4Servlet6.4.1Servlet簡(jiǎn)介servlet是在效勞器上運(yùn)行的小程序。這個(gè)詞是在Javaapplet的環(huán)境中創(chuàng)造的,Javaapplet是一種當(dāng)作單獨(dú)文件跟網(wǎng)頁(yè)一起發(fā)送的小程序,它通常用于在客戶端運(yùn)行,結(jié)果得到為用戶進(jìn)行運(yùn)算或者根據(jù)用戶互作用定位圖形等效勞。效勞器上需要一些程序,常常是根據(jù)用戶輸入訪問數(shù)據(jù)庫(kù)的程序。這些通常是使用公共網(wǎng)關(guān)接口〔CGI(CommonGatewayInterface)〕應(yīng)用程序完成的。然而,在效勞器上運(yùn)行Java,這種程序可使用Java編程語(yǔ)言實(shí)現(xiàn)。在通信量大的效勞器上,Javaservlet的優(yōu)點(diǎn)在于它們的執(zhí)行速度更快于CGI程序。各個(gè)用戶請(qǐng)求被激活成單個(gè)程序中的一個(gè)線程,而無需創(chuàng)立單獨(dú)的進(jìn)程,這意味著效勞器端處理請(qǐng)求的系統(tǒng)開銷將明顯降低。實(shí)現(xiàn)過程:最早支持Servlet技術(shù)的是JavaSoft的JavaWebServer。此后,一些其它的基于Java的WebServer開始支持標(biāo)準(zhǔn)的ServletAPI。Servlet的主要功能在于交互式地瀏覽和修改數(shù)據(jù),生成動(dòng)態(tài)Web內(nèi)容。這個(gè)過程為:1、客戶端發(fā)送請(qǐng)求至效勞器端;2、效勞器將請(qǐng)求信息發(fā)送至Servlet3、Servlet生成響應(yīng)內(nèi)容并將其傳給效勞器。響應(yīng)內(nèi)容動(dòng)態(tài)生成,通常取決于客戶端的請(qǐng)求4、效勞器將響應(yīng)返回給客戶端5、Servlet看起來像是通常的Java程序。Servlet導(dǎo)入特定的屬于JavaServletAPI的包。因?yàn)槭菍?duì)象字節(jié)碼,可動(dòng)態(tài)地從網(wǎng)絡(luò)加載,可以說Servlet對(duì)Server就如同Applet對(duì)Client一樣,但是,由于Servlet運(yùn)行于Server中,它們并不需要一個(gè)圖形用戶界面。從這個(gè)角度講,Servlet也被稱為FacelessObject。一個(gè)servlet就是Java編程語(yǔ)言中的一個(gè)類,它被用來擴(kuò)展效勞器的性能,效勞器上駐留著可以通過“請(qǐng)求-響應(yīng)〞編程模型來訪問的應(yīng)用程序。雖然servlet可以對(duì)任何類型的請(qǐng)求產(chǎn)生響應(yīng),但通常只用來擴(kuò)展Web效勞器的應(yīng)用程序。6.4.2Servlet優(yōu)勢(shì)JavaServlet與CGI(CommonGatewayInterface公共網(wǎng)關(guān)接口)的比擬:與傳統(tǒng)的CGI和許多其他類似CGI的技術(shù)相比,JavaServlet具有更高的效率,更容易使用,功能更強(qiáng)大,具有更好的可移植性,更節(jié)省投資。在未來的技術(shù)開展過程中,Servlet有可能徹底取代CGI。在傳統(tǒng)的CGI中,每個(gè)請(qǐng)求都要啟動(dòng)一個(gè)新的進(jìn)程,如果CGI程序本身的執(zhí)行時(shí)間較短,啟動(dòng)進(jìn)程所需要的開銷很可能反而超過實(shí)際執(zhí)行時(shí)間。而在Servlet中,每個(gè)請(qǐng)求由一個(gè)輕量級(jí)的Java線程處理(而不是重量級(jí)的操作系統(tǒng)進(jìn)程)。在傳統(tǒng)CGI中,如果有N個(gè)并發(fā)的對(duì)同一CGI程序的請(qǐng)求,那么該CGI程序的代碼在內(nèi)存中重復(fù)裝載了N次;而對(duì)于Servlet,處理請(qǐng)求的是N個(gè)線程,只需要一份Servlet類代碼。在性能優(yōu)化方面,Servlet也比CGI有著更多的選擇。*方便Servlet提供了大量的實(shí)用工具例程,例如自動(dòng)地解析和解碼HTML表單數(shù)據(jù)、讀取和設(shè)置頭、處理Cookie、跟蹤會(huì)話狀態(tài)等。*功能強(qiáng)大在Servlet中,許多使用傳統(tǒng)CGI程序很難完成的任務(wù)都可以輕松地完成。例如,Servlet能夠直接和Web效勞器交互,而普通的CGI程序不能。Servlet還能夠在各個(gè)程序之間共享數(shù)據(jù),使得數(shù)據(jù)庫(kù)連接池之類的功能很容易實(shí)現(xiàn)。*可移植性好Servlet用Java編寫,ServletAPI具有完善的標(biāo)準(zhǔn)。因此,為IPlanetEnterpriseServer寫的Servlet無需任何實(shí)質(zhì)上的改動(dòng)即可移植到Apache、MicrosoftIIS或者WebStar。幾乎所有的主流效勞器都直接或通過插件支持Servlet。*節(jié)省投資不僅有許多廉價(jià)甚至免費(fèi)的Web效勞器可供個(gè)人或小規(guī)模網(wǎng)站使用,而且對(duì)于現(xiàn)有的效勞器,如果它不支持Servlet的話,要加上這局部功能也往往是免費(fèi)的(或只需要極少的投資)。6.5MYSQL數(shù)據(jù)庫(kù)6.5.1MYSQL概述MySQL是一個(gè)小型關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),開發(fā)者為瑞典MySQLAB公司。在2021年1月16號(hào)被Sun公司收購(gòu)。而2021年,SUN又被Oracle收購(gòu)。MySQL是一種關(guān)聯(lián)數(shù)據(jù)庫(kù)管理系統(tǒng),關(guān)聯(lián)數(shù)據(jù)庫(kù)將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個(gè)大倉(cāng)庫(kù)內(nèi)。這樣就增加了速度并提高了靈活性。MySQL的SQL“結(jié)構(gòu)化查詢語(yǔ)言〞。SQL是用于訪問數(shù)據(jù)庫(kù)的最常用標(biāo)準(zhǔn)化語(yǔ)言。MySQL軟件采用了GPL〔GNU通用公共許可證〕。由于其體積小、速度快、總體擁有本錢低,尤其是開放源碼這一特點(diǎn),許多中小型網(wǎng)站為了降低網(wǎng)站總體擁有本錢而選擇了MySQL作為網(wǎng)站數(shù)據(jù)庫(kù)。6.5.2MYSQL優(yōu)勢(shì)可靠性和性能:MySQLAB向公眾提供所有數(shù)據(jù)庫(kù)效勞器軟件的早期版本,利用開發(fā)源碼進(jìn)行為期幾個(gè)月的測(cè)試,之后才發(fā)布作為生產(chǎn)之用。

易于使用和部署:MySQL的結(jié)構(gòu)體系易于定制,而且速度極快。其獨(dú)特的多存儲(chǔ)引擎結(jié)構(gòu)為企業(yè)客戶提供了廣泛的靈活性,賦予數(shù)據(jù)庫(kù)管理系統(tǒng)以卓越的緊致性和穩(wěn)定性,并且易于部署,同時(shí)具有無與匹敵的速度。

平臺(tái)自由:源代碼隨時(shí)可訪問,MySQL策略確保了自由性,以防鎖定于某個(gè)公司或平臺(tái)內(nèi)。

跨平臺(tái)支持:MySQL可用于20多種不同的平臺(tái),包括主要的Linux系統(tǒng)、MacOSX、Unix和MicrosoftWindows。

開發(fā)隊(duì)伍龐大:MySQL是世界上最為流行的開放源碼數(shù)據(jù)庫(kù),因此很容易獲得高素質(zhì)和有經(jīng)驗(yàn)的開發(fā)團(tuán)隊(duì)。

強(qiáng)大、簡(jiǎn)單MySQL——MySQL結(jié)構(gòu)體系簡(jiǎn)單易用,而且運(yùn)行速度極快,能夠處理企業(yè)數(shù)據(jù)庫(kù)絕大多數(shù)的應(yīng)用需求。MySQLAB有兩種許可證。無論選擇哪一種,您都將會(huì)享受到MySQL數(shù)據(jù)庫(kù)所帶來的巨大優(yōu)勢(shì),它能夠顯著降低您的總本錢。

從許可證而言,本公司提供兩種不同的產(chǎn)品,在使用和發(fā)行上都有所區(qū)別,盡管技術(shù)上他們具有完全相同的源代碼。

許可證選項(xiàng)包括:

商業(yè)許可證——允許您向客戶提供商業(yè)軟件許可證,或僅在企業(yè)范圍內(nèi)發(fā)布基于MySQL的應(yīng)用程序。如果企業(yè)不希望發(fā)布應(yīng)用程序的源代碼,即不希望將其作為開放源碼/免費(fèi)軟件,或者不愿遵守GNUGPL,需要選擇該種許可證方案。

開發(fā)源碼許可證——對(duì)于那些進(jìn)行開放源碼應(yīng)用程序的開發(fā)人員而言,可以將其軟件在一個(gè)開放源碼/免費(fèi)許可證方案下進(jìn)行發(fā)布,其他人員可以對(duì)其進(jìn)行使用、修改或免費(fèi)發(fā)布。只要您是在重新發(fā)布的應(yīng)用程序中使用MySQL,該種許可證就允許您免費(fèi)使用軟件,在合理?xiàng)l件下,您應(yīng)用程序的完全源代碼必須是可用的,并且允許自由重新發(fā)布。

6.6TomCat效勞器工具概述Tomcat很受廣闊程序員的喜歡,因?yàn)樗\(yùn)行時(shí)占用的系統(tǒng)資源小,擴(kuò)展性好,支持負(fù)載平衡與郵件效勞等開發(fā)應(yīng)用系統(tǒng)常用的功能;而且它還在不斷的改良和完善中,任何一個(gè)感興趣的程序員都可以更改它或在其中參加新的功能。Tomcat是一個(gè)小型的輕量級(jí)應(yīng)用效勞器,在中小型系統(tǒng)和并發(fā)訪問用戶不是很多的場(chǎng)合下被普遍使用,是開發(fā)和調(diào)試JSP程序的首選。對(duì)于一個(gè)初學(xué)者來說,可以這樣認(rèn)為,當(dāng)在一臺(tái)機(jī)器上配置好Apache效勞器,可利用它響應(yīng)對(duì)HTML頁(yè)面的訪問請(qǐng)求。實(shí)際上Tomcat局部是Apache效勞器的擴(kuò)展,但它是獨(dú)立運(yùn)行的,所以當(dāng)你運(yùn)行tomcat時(shí),它實(shí)際上作為一個(gè)與Apache獨(dú)立的進(jìn)程單獨(dú)運(yùn)行的。當(dāng)配置正確時(shí),Apache為HTML頁(yè)面效勞,而Tomcat實(shí)際上運(yùn)行JSP頁(yè)面和Servlet。另外,Tomcat和IIS、Apache等Web效勞器一樣,具有處理HTML頁(yè)面的功能,另外它還是一個(gè)Servlet和JSP容器,獨(dú)立的Servlet容器是Tomcat的默認(rèn)模式。不過,Tomcat處理靜態(tài)HTML的能力不如Apache效勞器。[3]6.7環(huán)境的安裝Windows下直接運(yùn)行jdk1.6.exe文件,安裝到一個(gè)目錄,如C:/jdk1.6,安裝完成后就是環(huán)境變量的設(shè)置。桌面上選擇“我的電腦〞(右鍵)->高級(jí)->環(huán)境變量->在“系統(tǒng)變量〞>“新建〞->在變量名中輸入:JAVA_HOME,變量值中輸入:C:/jdk1.6。同樣再新建一個(gè)變量名CLASSPATH,變量值中輸入:C:\jdk1.6\lib;還需要在Path變量值后面添加一個(gè)值:C:\jdk1.6\bin。至此JAVA環(huán)境安裝成功。我們可以在命令行中敲入命令java如果顯示java幫助,那么證明環(huán)境設(shè)置成功。Tomcat環(huán)境搭建安裝TOMCAT,直接使用默認(rèn)安裝就可以了,假設(shè)我們將其安裝在C:\Tomcat6.0,安裝完畢后,開始設(shè)置環(huán)境變量,新建環(huán)境變量CATALINA_HOME,值為C:\Tomcat6.0,新建CATALINA_BASE,值為C:\Tomcat6.0。翻開Tomcat6.0文件中的bin文件,雙擊其中的運(yùn)行程序startup.bat,顯示serverstart,效勞器正常啟動(dòng),此時(shí)在瀏覽器上敲入本地測(cè)試地址:://localhost:8080如果出現(xiàn)Tomcat頁(yè)面那么證明Tomcat安裝成功,而且正常啟動(dòng)。7系統(tǒng)實(shí)現(xiàn)7.1用戶登陸流程1.獲取用戶輸入的數(shù)據(jù)。2.將用戶輸入的數(shù)據(jù)與數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行比擬3.根據(jù)比擬的結(jié)果做出相應(yīng)的反響下面是用戶登錄的流程圖和用戶登錄界面圖7-1。源代碼見附件1圖7-1用戶登陸流程圖7-1用戶登陸流程7.2用戶進(jìn)入游戲〔初始化數(shù)據(jù)庫(kù)棋盤〕流程在用戶登錄游戲過后,可以看見界面上有按鈕playgame,點(diǎn)擊按鈕可以進(jìn)入游戲界面,在這個(gè)過程中程序初始化了棋盤,既在數(shù)據(jù)庫(kù)中初始化了棋盤上的所有棋子具體的流程如圖7-2。源代碼見附件2獲取當(dāng)前時(shí)間獲取當(dāng)前時(shí)間當(dāng)前棋子位置棋子狀態(tài)置-1棋子狀態(tài)置0不在棋盤上在棋盤上圖7-2初始化棋盤流程圖7-2初始化棋盤流程7.3用戶玩游戲流程在用戶進(jìn)入游戲界面時(shí),本款游戲已經(jīng)開始,用戶先下子,根據(jù)棋盤上方的提示進(jìn)行就可以了,只要鼠標(biāo)點(diǎn)擊方框即可下子,本游戲是事件驅(qū)動(dòng)。具體的流程如圖7-3。源代碼見附件3圖7-3用戶玩游戲流程事件圖7-3用戶玩游戲流程事件用戶下子用戶勝出游戲結(jié)束電腦下子電腦勝出否是否是7.4添加新用戶由于系統(tǒng)設(shè)計(jì)的比擬簡(jiǎn)單,所以用戶信息比擬簡(jiǎn)約。其具體的流程圖如圖7-4,界面如圖。詳細(xì)源代碼見附件4注冊(cè)界面注冊(cè)界面兩次密碼相同用戶信息用戶數(shù)據(jù)表否是圖7-4用戶注冊(cè)流程8JAVA五子棋對(duì)弈程序設(shè)計(jì)的技術(shù)關(guān)鍵8.1javascript中AJAX技術(shù)AJAX指異步JavaScript及XML〔AsynchronousJavaScriptAndXML〕。國(guó)\o"查看圖片"

內(nèi)翻譯常為“阿賈克斯〞和阿賈克斯足球隊(duì)同音。Web應(yīng)用的交互如Flickr,Backpack和Google在這方面已經(jīng)有質(zhì)的飛躍。這個(gè)術(shù)語(yǔ)源自描述從基于Web的應(yīng)用到基于數(shù)據(jù)的應(yīng)用的轉(zhuǎn)換。在基于數(shù)據(jù)的應(yīng)用中,用戶需求的數(shù)據(jù)如聯(lián)系人列表,可以從獨(dú)立于實(shí)際網(wǎng)頁(yè)的效勞端取得并且可以被動(dòng)態(tài)地寫入網(wǎng)頁(yè)中,給緩慢的Web應(yīng)用體驗(yàn)著色使之像桌面應(yīng)用一樣。Ajax的核心是JavaScript對(duì)象XmlRequest。該對(duì)象在InternetExplorer5中首次引入,它是一種支持異步請(qǐng)求的技術(shù)。簡(jiǎn)而言之,XmlRequest使您可以使用JavaScript向效勞器提出請(qǐng)求并處理響應(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="請(qǐng)等待電腦下子,謝謝!"; creat(); xml.onreadystatechange=callback; xml.open("GET","showServlet?X="+m+"&Y="+n+"&di="+<%=request.getParameter("di")%>,true); xml.send(null); }else{ alert("此處不可下子,已有棋子");}}}functioncreat(){if(window.XMLRequest){ xml=newXMLRequest(); if(xml.overrideMineType){ xml.overrideMineType("text/xml"); } }elseif(window.ActiveXObject){ varactiveName=["MSXML2.XML","Microsoft.XML"]; for(vari=0;i<activeName.Length;i++){ try{ xml=newActivXObject(activeName[i]); break; }catch(e){} } } }functioncallback(){ //alert(); //alert(xml

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論