freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

網(wǎng)絡(luò)五子棋的設(shè)計(jì)與實(shí)現(xiàn)word格式-在線瀏覽

2025-02-08 03:23本頁面
  

【正文】 須使用面向?qū)ο蟮某绦?設(shè)計(jì)語言。大多數(shù)軟件都可以運(yùn)行在網(wǎng)絡(luò)環(huán)境中。 改進(jìn)的解釋性:為彌補(bǔ)解釋語言速度較慢的不足, Java 采用預(yù)編譯的辦法,將原程序生成字節(jié)代碼,減輕運(yùn)行時(shí)的解釋工作。 安全: Java 語言在編譯時(shí)刪除了指針和內(nèi)存分配,在運(yùn)行時(shí)檢查字節(jié)代碼,拒絕執(zhí)行非法的內(nèi)存訪問,超越權(quán)限的訪問等。 平臺無關(guān): Java 通過采用虛擬機(jī)技術(shù)真正實(shí)現(xiàn)了與平臺無關(guān)。 多線程:允許一個(gè)應(yīng)用程序同時(shí)做多個(gè)任務(wù)。 高性能:經(jīng)過實(shí)際的綜合評測得出結(jié)論, Java 是高性能的。 JDK: 是 Java 開發(fā)工具包( J2SE Software Development Kit)的縮寫 ,用 Java語言編寫 applet 小程序和應(yīng)用程序的軟件開發(fā)環(huán)境, Java 開發(fā)者應(yīng)該安裝 JDK,并且通常 JDK 中已包含一個(gè) JRE 拷貝。它基本上就和 Java虛擬機(jī)是同一個(gè)概念,運(yùn)行 Java 程序的應(yīng)該安裝 JRE。 demo: sun提供的一些用于 java 開發(fā)的示范例子 ,如有關(guān) applets, jfc, plugin 等。 lib: java 類庫目錄 Windows 環(huán)境變量 應(yīng)設(shè)置的環(huán)境變量包括: JAVA_HOME, PATH, CLASSPATH。%PATH% 圖 23 Windows下環(huán)境變量的設(shè)置 Java 中線程概念: 1.線程的概念 一個(gè)關(guān)于計(jì)算機(jī)的簡化的視圖是:它有一個(gè)執(zhí)行計(jì)算的處理機(jī)、包含處理機(jī)所執(zhí)行的程序的 ROM(只讀存儲器,在 JAVA 中也叫堆棧 )、包含程序所要操作的數(shù)據(jù)的 RAM(隨機(jī)存儲器,在 JAVA 中也叫堆 )。一個(gè)關(guān)于最現(xiàn)代計(jì)算機(jī)比較完整的視圖允許計(jì)算機(jī)在同時(shí)執(zhí)行一個(gè)以上的作業(yè)。如果你要執(zhí)行一個(gè)以上的作業(yè),這類似有一臺以上的計(jì)算機(jī)。 類允許用戶創(chuàng)建并控制他們的線程。 進(jìn)程是正在執(zhí)行的程序。一個(gè)線程(執(zhí)行上下文)由三個(gè)主要部分組成: 一個(gè)虛擬 CPU CPU 執(zhí)行的代碼 代碼操作的數(shù)據(jù) 如圖所示 圖 24 線程的組成 代碼可以由多個(gè)線程共享,它不依賴數(shù)據(jù)。 類似地,數(shù)據(jù)可以由多個(gè)線程共享,而不依賴代碼。 在 Java 編程中,虛擬處理機(jī)封裝在 Thread類的一個(gè)實(shí)例里。 Java 線程分守護(hù)線程和用戶線程,由創(chuàng)建時(shí)設(shè)置。 搶占式調(diào)度模型 (優(yōu)先級優(yōu)先 )是指可能有多個(gè)線程是可運(yùn)行的,但只有一個(gè)線程在實(shí)際運(yùn)行。對于后面一種情形,低優(yōu)先級線程被高優(yōu)先級線程搶占了運(yùn)行的機(jī)會(huì)。這個(gè)線程可能在等待訪問某個(gè)資源,而且在這個(gè)資源可訪問之前,這個(gè)線程無法繼續(xù)運(yùn)行。當(dāng)一個(gè)被阻塞的線程變成可運(yùn)行時(shí),它會(huì)被放回相應(yīng)的可運(yùn)行池。 一個(gè) Thread 對象在它的生命周期中會(huì)處于各種不同的狀態(tài)。在一個(gè)只有一個(gè) CPU 的機(jī)器上,在一個(gè)時(shí)刻只能進(jìn)行一個(gè)動(dòng)作。) 因?yàn)?Java 線程是搶占式的,所以你必須確保你的代碼中的線程會(huì)不時(shí)地給其它線程運(yùn)行的機(jī)會(huì)。 Socket 機(jī)制: 基于 Java 的網(wǎng)絡(luò)技術(shù) TCP/IP 套接字 套接字是網(wǎng)絡(luò)軟件中的一個(gè)抽象概念,套接字允許單個(gè)計(jì)算機(jī)同時(shí)服務(wù)于很多不同客戶,并能夠 提供不同類型信息的服務(wù)。 在 java 中, TCP/IP Socket 連接是用 包中的類實(shí)現(xiàn)的,這些類實(shí)現(xiàn)了建立網(wǎng)絡(luò)連接和通過連接發(fā)送數(shù)據(jù)的復(fù)雜過程,我們只需使用其簡單接口就能實(shí)現(xiàn) 網(wǎng) 絡(luò) 通 信 ! 在 java 中 有 兩 類 套 接 字 , 一 種 是 服 務(wù) 器 端 套 接 字,另一種是客戶端套接字 。隊(duì)列長度告訴系統(tǒng)多少與之連接的客戶在系統(tǒng)拒絕連接之前可以掛起。 IAddress 在后面將學(xué)習(xí)。注意: accept()方法會(huì)讓服務(wù)器中的當(dāng)前線程暫停下來,直到有客戶端的正確連接發(fā)送過來。任何當(dāng)前被鎖定的線程將在 accept()方法中拋出IOException。 Socket 該類為建立連向服務(wù)器套接字及啟動(dòng)協(xié)議交換而設(shè)計(jì),當(dāng)進(jìn)程通過網(wǎng)絡(luò)進(jìn)行通信的時(shí)候, java 技術(shù)使用流模型來實(shí)現(xiàn)數(shù)據(jù)的通信。 如果通過 TCP/IP 協(xié)議建立連接,則服務(wù)器必須運(yùn)行一個(gè)單獨(dú)的進(jìn)程來等待連接,而某一客戶機(jī)必須試圖到達(dá)服務(wù)器,就好比某人打電話,必須保證另一方等待電話呼叫,這樣才能實(shí)現(xiàn)兩人之間的通信。 其被設(shè)計(jì)用來為開發(fā)小組提供所需的開發(fā)工具,以便在企業(yè)應(yīng)用程序開發(fā)過程中獲得最大的生產(chǎn)力,提供了下一代的解決方案,使得開發(fā)小組能夠做更多的工作:減少開發(fā)成本,交付一致的、高品質(zhì)的應(yīng)用,縮短產(chǎn)品上市的時(shí)間。 使用省時(shí)的工具加速 Java 的開發(fā) Jbuilder 的設(shè)計(jì)能夠幫助開發(fā)者與開發(fā)小組提高效率,縮短產(chǎn)品上市時(shí)間,提供清晰的投資回報(bào)。 這些創(chuàng)新性工具包括新型 Struts 設(shè)計(jì)工具與 Web 業(yè)務(wù)設(shè)計(jì)工具,能夠加速企業(yè) Java 應(yīng)用程序的上市時(shí)間。 使用集成的小組開發(fā)環(huán)境,實(shí)現(xiàn)小組生產(chǎn)力的最大化 JBuilder 使 用提高小組生產(chǎn)力與效率的增強(qiáng)技術(shù),可以使 Java 開發(fā)小組生成可靠的、企業(yè)級應(yīng)用,并且速度很快,從而提高了開發(fā)小組(包括分布于多個(gè)地方的大型小組)的生產(chǎn)力。 JBuilder 技術(shù)有助于開發(fā)小組理解并經(jīng)濟(jì)地復(fù)用現(xiàn)有的代碼部件,這意味著開發(fā)者能夠更加高效地利用時(shí)間,對具有類似功能的多個(gè)實(shí)例只需進(jìn)行一次編碼。 JBuilder 與多種業(yè)界領(lǐng)先的應(yīng)用服務(wù)器的緊密集成讓您能夠?qū)δ龀龅募夹g(shù)決定進(jìn)行控制,這些應(yīng)用服務(wù)器包括 Borland 企業(yè)服務(wù)器, BEA WebLogic Server , JBoss , IBM WebSphere , Oracle9i 應(yīng)用服務(wù)器, Sybase EAServer 與Sun ONE 應(yīng)用服務(wù)器。 另外, JBuilder 以強(qiáng)大的支持與服務(wù)基礎(chǔ)架構(gòu)為依托,這有助于確保您的成功。 JBuilder 技術(shù)傳承 Borland 幫助企業(yè)發(fā)揮已有 IT 投資更大作用的承諾,用于在企業(yè) Java 應(yīng)用程序的開發(fā)過程中,繼續(xù)利用現(xiàn)有的技術(shù)資源。 使用可靠的工具集成,專注于開發(fā) JBuilder 開發(fā)環(huán)境可讓開發(fā)者使用從設(shè)計(jì)、開發(fā)、調(diào)試與測試直到分發(fā)與管理的應(yīng)用程序開發(fā)生命周期的全部階段。與 Borland 的 Java 應(yīng)用生命周期解決方案的其他部件集成在一起,這意味著開發(fā)小組可以專注于生成更好的應(yīng)用程序,而不是想方設(shè)法讓各種工具協(xié)同工作。這對于把軟件開發(fā)變革成可管理及成功業(yè)務(wù)流程至為關(guān)鍵。 JBuilder 與 Borland StarTeam 自動(dòng)化配置并變更管理系統(tǒng)一起使用,可以在全部開發(fā)周期中提高對項(xiàng)目的掌握程度。 JBuilder 也與其他業(yè)界領(lǐng)先的版本控制系統(tǒng)與分發(fā)平臺集成在一起,提供了平臺的靈活性與選擇的自由。這些控制的組建應(yīng)該放在一起,一開始考慮把他們放在一個(gè)面板里面,處理這些信息只要對這一個(gè)面板進(jìn)行操作就可以了,但是如果這樣的話可以想像,當(dāng)你計(jì)算棋子所字范圍的時(shí)候還要考慮到消息面板所占的空間,還有那些控制面板的空間,而且放在一起是也不好擺放,他們的背景顏色,等一些屬性都是一樣的,那樣給人的感覺也不大美觀。從面向?qū)ο蟮慕嵌?來看,這也不符合,都放在一起,那些東西都在一個(gè)類里面,他們還可以劃分成其他的類,而這里用的是JAVA 對該游戲進(jìn)行開發(fā),所以每一個(gè)類都要單一,所以把界面分成三個(gè)部分:一個(gè)是棋盤類,也是主要的類,一個(gè)是消息面板的類,還有一個(gè)就是控制面板的類。而且對他們進(jìn)行操作也不影響其他組件。我們就想,肯定是每次當(dāng)點(diǎn)擊鼠標(biāo)的時(shí)候就在點(diǎn)擊鼠標(biāo)的地方畫一個(gè)棋子,所以我們還得定義一個(gè)棋子的類來對我們點(diǎn)擊鼠標(biāo)時(shí)把棋子繪制出來。我們就可以先定義好這些類了。尤其是單機(jī)游戲時(shí),怎樣讓你在棋盤上下棋之后就讓計(jì)算機(jī)自己下棋呢,如果能下棋,又怎樣讓計(jì)算機(jī)計(jì)算出在什么位置 下呢??這樣的話就是算法設(shè)計(jì)了 有了以上的準(zhǔn)備就可以把棋盤繪制出來了,然后就是下棋了,如果是單機(jī)游戲,每次在適當(dāng)位置點(diǎn)擊鼠標(biāo)的時(shí)候就在所點(diǎn)擊的位置上畫出你這個(gè)角色的顏色,在繪制出你下棋位置的棋之后你所希望看到的是計(jì)算機(jī)下棋了,也就是說在你下完棋之后就是計(jì)算機(jī)自動(dòng)的下了,計(jì)算機(jī)要自己選擇一個(gè)合適的位置來下棋,也就是說每次自己下完棋之后就要有一個(gè)控制變量來控制自能不能下棋,如自己下了棋而計(jì)算機(jī)還沒下棋的話那就得讓自己不能下棋就是說點(diǎn)擊鼠標(biāo)沒用(當(dāng)然這種情況是不可能的,因?yàn)橛?jì)算機(jī)計(jì)算的速度很快,所以一般人下完棋 后計(jì)算機(jī)就馬上繪制出了所須下的棋子,只是為了說明在網(wǎng)絡(luò)對弈時(shí)候該這樣控制)。這里由計(jì)算機(jī)下子的算法來確定,對弈的話就不象單機(jī)游戲一樣,要計(jì)算機(jī)來判斷人下子之后計(jì)算機(jī)下那一個(gè)地方了,對弈只要在雙方下子的時(shí)候判斷贏棋情況,當(dāng)然還要同步的控制兩個(gè)人下棋的順序,這樣的話就要用到線程了,各自都繼承或?qū)崿F(xiàn)線程類或接口,以便各自能隨時(shí)單獨(dú)控制接發(fā)消息。信息發(fā)送和接收依靠網(wǎng)絡(luò)流來傳遞。 .算法設(shè)計(jì) 這里算法的設(shè)計(jì)主要是講 單機(jī)的算法,包括確定計(jì)算機(jī)下棋的位置和判斷贏棋的情況 先考慮一下整個(gè)棋盤上五子連的情況,也就是說在整個(gè)棋盤上有多少種情況能構(gòu)成五子連,這里定義的是一個(gè) 15*15 的棋盤,如下圖 圖 31 棋盤上五子連情況 有四種方式的五子連,橫的、豎的、右斜、左斜,橫的情況有 15*11 種,豎的有15*11 種,右斜有 11*11 種,左斜有 11*11 種,總共是 572種,并且對每中情況按順序進(jìn)行標(biāo)號,如點(diǎn)( 1)可以屬于第 1 種,第 165 種(從第 0 種開始),第331 種,點(diǎn)( 2) 可以屬于地 1 種,第 2 種,第 157 種,第 332 種。也就是說如果這個(gè)點(diǎn)是這種情況的話就為 true 況的就為 false。在每下一個(gè)棋子的時(shí)候,先遍歷這個(gè)點(diǎn)屬于那些情況,再在每種情況上的 colorFive 對應(yīng)的位置加上 1,定義一個(gè)數(shù)組 haveChess[15][15],來存放每一個(gè)點(diǎn)上是否有棋,這個(gè)數(shù)組可以用來在你下棋的時(shí)候來判斷你所下的點(diǎn)的位置是否有棋,如果有你就不能在你所點(diǎn)擊的位置下棋。這樣的話就可以來判斷計(jì)算機(jī)能不能下棋了,也能判斷出贏棋的情況,那么計(jì)算機(jī)又應(yīng)該在那個(gè)地方下棋最合適呢? 在這里,定義兩個(gè)二維數(shù)組, scoreBlack[15][15] , scoreWhite[15][15]分別用來存放白棋和黑棋各個(gè)未下棋點(diǎn)的分?jǐn)?shù),以判斷計(jì)算機(jī)在那個(gè)點(diǎn)下棋最合適。 判斷贏棋情況就每次下子之前就在數(shù)組 colorFive里面找是否有棋子數(shù)等與5的,如果有就有贏棋的情況了,因?yàn)樵谙缕逯耙簿褪钦f在把這個(gè)棋子畫到棋盤上之前,它實(shí)際已經(jīng)下棋了,也就是說這個(gè)點(diǎn)的各個(gè)數(shù)據(jù)已經(jīng)改變了,所以就可以判斷。該圖說明了用例模型中的關(guān)系。用例圖由參與者( Actor)、用例( Use Case)、系統(tǒng)邊界、箭頭組成,用畫圖的方法來完成。因此參與者可以是人,可以是事物,也可以是時(shí)間或其他系統(tǒng)等等。比 如小明是圖書館的管理員,他參與圖書館管理系統(tǒng)的交互,這時(shí)他既可以作為管理員這個(gè)角色參與管理,也可以作為借書者向圖書館借書,在這里小明扮演了兩個(gè)角色,是兩個(gè)不同的參與者。 圖 33 角色 用例是對包括變量在內(nèi)的一組動(dòng)作序列的描述,系統(tǒng)執(zhí)行這些動(dòng)作,并產(chǎn)生傳遞特定參與者的價(jià)值的可觀察結(jié)果。我們可以這樣去理解,用例是參與者想要系統(tǒng)做的事 情。用例在畫圖中用橢圓來表示,橢圓下面附上用例的名稱。邊界內(nèi)表示系統(tǒng)的組成部分,邊界外表示系統(tǒng)外部。因?yàn)橄到y(tǒng)邊界的作用有時(shí)候不是很明顯,所以我個(gè)人理解,在畫圖時(shí)可省略。箭頭尾部用來表示啟動(dòng)交互的一方,箭頭頭部用來表示被啟動(dòng)的一方,其中用例總是要由參與者來啟動(dòng)。 對問題做出了分析之后,就可以根據(jù)分析的結(jié)果畫出用例圖了,因?yàn)橄缕宓慕巧侨耍越巧褪窍缕逭?,下棋者直接發(fā)生的動(dòng)作是點(diǎn)擊鼠標(biāo),在棋盤上繪制棋子,所以就有可以把整個(gè)下棋的過程分為兩個(gè)用例。用例圖如下。類圖不顯示暫時(shí)性信息。類圖可以組織在(并且屬于)包中,僅顯示特定包中的相關(guān)內(nèi)容。 類圖最基本的元素是類或者接口。有時(shí)后你也可以將類的實(shí)例放到類圖中。 你通常通過下面三種方式使用類圖: 1,為系統(tǒng)詞匯建模型 為系統(tǒng)的詞匯建模實(shí)際上 是從詞匯表中發(fā)現(xiàn)類,發(fā)現(xiàn)它的責(zé)任。例如:當(dāng)你為一個(gè)分布式的系統(tǒng)中的事務(wù)處理過程建模型時(shí),你不可能只通過一個(gè)類來明白事務(wù)是怎樣進(jìn)行的,事實(shí)上這個(gè)過程的執(zhí)行涉及到一系列的類的協(xié)同工作。 3,模型化一個(gè)邏輯數(shù)據(jù)庫模式 想象模式是概念上設(shè)計(jì)數(shù)據(jù)庫的藍(lán)圖。你可以用類圖為這些數(shù)據(jù)庫模式建立模型。第一個(gè)是類名;第二個(gè)是屬性(
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1