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

正文內(nèi)容

java五子棋對(duì)弈程序的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)論文-資料下載頁(yè)

2025-06-28 08:09本頁(yè)面
  

【正文】 體的流程圖如圖74,界面如圖。詳細(xì)源代碼見(jiàn)附件4注冊(cè)界面兩次密碼相同用戶(hù)信息用戶(hù)數(shù)據(jù)表否是圖74 用戶(hù)注冊(cè)流程8 JAVA五子棋對(duì)弈程序設(shè)計(jì)的技術(shù)關(guān)鍵 javascript中 AJAX技術(shù)AJAX 指異步 JavaScript 及 XML(Asynchronous JavaScript And XML)。國(guó)內(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)用中,用戶(hù)需求的數(shù)據(jù)如聯(lián)系人列表,可以從獨(dú)立于實(shí)際網(wǎng)頁(yè)的服務(wù)端取得并且可以被動(dòng)態(tài)地寫(xiě)入網(wǎng)頁(yè)中,給緩慢的Web 應(yīng)用體驗(yàn)著色使之像桌面應(yīng)用一樣。   Ajax的核心是JavaScript對(duì)象XmlHttpRequest。該對(duì)象在 Internet Explorer 5中首次引入,它是一種支持異步請(qǐng)求的技術(shù)。簡(jiǎn)而言之,XmlHttpRequest使您可以使用JavaScript向服務(wù)器提出請(qǐng)求并處理響應(yīng),而不 阻塞用戶(hù)。本系統(tǒng)的ajax代碼如下:var xml。var isPs =1。function $(id){ return (id)。}function string(m,n){ return (m+,+n)。}function check(m,n){ var v = m+,+n。 if(isPs!=1){}else{ isPs =0。 if($(m+,+n).className==c0){ $(v).className=c2。 $(title).innerHTML=請(qǐng)等待電腦下子,謝謝!。 creatHttp()。 =callback。 (GET,showServlet?X=+m+amp。Y=+n+amp。di=+%=(di)%,true)。 (null)。 }else{ alert(此處不可下子,已有棋子)。 } } }function creatHttp(){ if(){ xml=new XMLHttpRequest()。 if(){ (text/xml)。 } }else if(){ var activeName = [,]。 for(var i = 0。i 。 i++){ try{ xml = new ActivXObject(activeName[i])。 break。 }catch(e){} } } }function callback(){ //alert()。 //alert(+ +)。 if(==4 amp。amp。 == 200){ var value = 。 if(value==1){ $(title).innerHTML=恭喜!你贏(yíng)了。 }else if(value==1){ $(title).innerHTML=恭喜!電腦贏(yíng)了。 }else{ $(value).className=c1。 isPs=1。 $(title).innerHTML=現(xiàn)在該你下子。 } }}/script 電腦下棋算法設(shè)計(jì)本款游戲最核心的地方就是算法,因?yàn)檫@是整個(gè)程序最難的模塊。算法的中心思想是:利用分?jǐn)?shù)代表每個(gè)位置的重要程度,越重要的位置的分?jǐn)?shù)值會(huì)越高,當(dāng)電腦下棋時(shí)會(huì)先將電腦和玩家棋型的分?jǐn)?shù)分別計(jì)算一遍,然后選擇二者中分?jǐn)?shù)最高的點(diǎn)下子。如果玩家的分?jǐn)?shù)高,那么代表電腦應(yīng)該防守,如果電腦的分?jǐn)?shù)高,那么代表電腦應(yīng)該進(jìn)攻。 具體的分?jǐn)?shù)值賦值如下:分?jǐn)?shù)電腦玩家活二6050半活二4035死二1010半死二1010活三950700半活三900650死三100100半死三100100活四60003500半活四50003000死四4000800半死四3600750活五2000015000半活五100003300死五2000015000半死五100003300解釋一下其中的活,半活,死,半死:活:代表幾個(gè)子是相連的,中間沒(méi)有空格,兩端都至少有一個(gè)空格。半活:代表幾個(gè)子不是相連的,幾個(gè)子中間有一個(gè)空格,兩端都至少有一個(gè)空格。死:代表幾個(gè)子是相連的,中間沒(méi)有空格,但有一端緊挨著對(duì)方的棋子或有一端正好在棋盤(pán)的邊界。半死:代表幾個(gè)子不是相連的,幾個(gè)子中間有一個(gè)空格,而且一端緊挨著對(duì)方的棋子或有一端正好在棋盤(pán)的邊界。每個(gè)位置的分?jǐn)?shù)的計(jì)算方式是各個(gè)方向的分?jǐn)?shù)相加,最后找出電腦棋型和玩家棋型的分?jǐn)?shù)的最高的位置為電腦的下棋點(diǎn)下棋。具體的代碼如下:public void qixing(){ for(int i=0。i17。i++){ for(int j=0。j17。j++){ if(qipan[i+1][j+1]==0){//說(shuō)明此處沒(méi)有棋子 qixingPC[i][j] = heiheng(i,j,2)+heishu(i,j,2)+heizuoxie(i,j,2)+heiyouxie(i,j,2)。 qixingPlayer[i][j] = heiheng(i,j,1)+heishu(i,j,1)+heizuoxie(i,j,1)+heiyouxie(i,j,1)。 }else{ qixingPC[i][j] = 0。 qixingPlayer[i][j] = 0。 } } } } // 算出黑子橫方向的棋型數(shù)值 public int heiheng(int hang,int lie,int num){ int k = 0。//記錄空白處的個(gè)數(shù) int count = 1。//記錄可以形成幾連 int n = hang+1。//對(duì)應(yīng)棋盤(pán)的行 int m = lie+1。//對(duì)應(yīng)棋盤(pán)的列 boolean left = false。//判斷左邊是否有黑子 boolean liveLeft = false。//判斷左邊是活還是死 boolean liveRight = false。//判斷右邊是活還是死 while((qipan[n][m1]!=1)amp。amp。(qipan[n][m1]==num||qipan[n][m1]==0)){ if(qipan[n][m1]==0amp。amp。k1){//第一個(gè)空白 if(qipan[n][m2]!=num){ liveLeft = true。 break。 } k++。 m。 }else if(qipan[n][m1]==num){//黑子 left = true。 m。 }else{//第二個(gè)空白 liveLeft = true。 break。 } } if(!left){ k = 0。 m = lie+1。 } while((qipan[n][m+1]!=1)amp。amp。(qipan[n][m+1]==num||qipan[n][m+1]==0)){ int t = qipan[n][m+1]。 if(m==lie){ count++。 m++。 continue。 } if(t==0amp。amp。k1){//第一個(gè)空白 if(qipan[n][m+2]!=num){ liveRight = true。 break。 } k++。 m++。 }else if(t==0amp。amp。k0){//第二個(gè)空白 liveRight = true。 break。 }else{//黑子 m++。 count++。 } } return jieguo(liveLeft,liveRight,count,k,num)。 } // 算出黑子豎方向的棋型數(shù)值 public int heishu(int hang,int lie,int num){ int k = 0。//記錄空白處的個(gè)數(shù) int count = 1。//記錄可以形成幾連 int n = hang+1。//對(duì)應(yīng)棋盤(pán)的行 int m = lie+1。//對(duì)應(yīng)棋盤(pán)的列 boolean top = false。//判斷上邊是否有黑子 boolean liveLeft = false。 boolean liveRight = false。 while((qipan[n1][m]!=1)amp。amp。(qipan[n1][m]==num||qipan[n1][m]==0)){ if(qipan[n1][m]==0amp。amp。k1){//第一個(gè)空白 if(qipan[n2][m]!=num){ liveLeft = true。 break。 } k++。 n。 }else if(qipan[n1][m]==num){//黑子 top = true。 n。 }else{//第二個(gè)空白 liveLeft = true。 break。 } } if(!top){ k = 0。 n = hang+1。 } while((qipan[n+1][m]!=1)amp。amp。(qipan[n+1][m]==num||qipan[n+1][m]==0)){ int t = qipan[n+1][m]。 if(n==hang){ count++。 n++。 continue。 } if(t==0amp。amp。k1){//第一個(gè)空白 if(qipan[n+2][m]!=num){ liveRight = true。 break。 } k++。 n++。 }else if(t==0amp。amp。k0){//第二個(gè)空白 liveRight = true。 break。 }else{//黑子 n++。 count++。 } } //return jieguo(k==0,count)。 return jieguo(liveLeft,liveRight,count,k,num)。 } // 算出黑子左斜方向的棋型數(shù)值 public int heizuoxie(int hang,int lie,int num){ int k = 0。//記錄空白處的個(gè)數(shù) int count = 1。//記錄可以形成幾連 int n = hang+1。//對(duì)應(yīng)棋盤(pán)的行 int m = lie+1。//對(duì)應(yīng)棋盤(pán)的列 boolean top = false。//判斷上邊是否有黑子 boolean liveLeft = false。 boolean liveRight = false。 while((qipan[n+1][m1]!=1)amp。amp。(qipan[n+1][m1]==num||qipan[n+1][m1]==0)){ if(qipan[n+1][m1]==0amp。amp。k1){//第一個(gè)空白 if(qipan[n+2][m2]!=num){ liveLeft = true。 break。 } k++。 n++。 m。 }else if(qipan[n+1][m1]==num){//黑子 top = true。 n++。 m。 }else{//第二個(gè)空白 liveLeft = true。 break。 } } if(!top){ k = 0。 n = hang+1。 m = lie+1。 } while((qipan[n1][m+1]!=1)amp。amp。(qipan[n1][m+1]==num||qipan[n1][m+1]==0)){ int t = qipan[n1][m+1]。 if(n==(hang+2)amp。amp。m==lie){ count++。 n。 m++。 continue。 } if(t==0amp。amp。k1){//第一個(gè)空白 if(qipan[n2][m+2]!=num){ liveRight = true。 break。 } k++。
點(diǎn)擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1