版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 實 習 報 告</b></p><p> 課程名稱 信息系統(tǒng)認知實習 </p><p> 實習題目 java五子棋 </p><p> 專 業(yè) </p><p> 班 級
2、 </p><p> 學 號 </p><p> 學生姓名 </p><p> 實習成績 </p><p> 指導教師 </p>
3、<p> 2010年 1 月</p><p><b> 前言</b></p><p> 摘要五子棋作為一個棋類競技運動,在民間十分流行,為了熟悉五子棋規(guī)則及技巧,以及研究簡單的人工智能,決定用Java開發(fā)五子棋游戲。主要完成了人機對戰(zhàn)和玩家之間聯網對戰(zhàn)2個功能。網絡連接部分為Socket編程應用,客戶端和服務器端的交互用Class Messag
4、e定義,有很好的可擴展性,客戶端負責界面維護和收集用戶輸入的信息,及錯誤處理。服務器維護在線用戶的基本信息和任意兩個對戰(zhàn)用戶的棋盤信息,動態(tài)維護用戶列表。在人機對弈中通過深度搜索和估值模塊,來提高電腦棋手的智能。分析估值模塊中的影響精準性的幾個要素,以及提出若干提高精準性的辦法,以及對它們搜索的節(jié)點數進行比較,在這些算法的基礎上分析一些提高電腦AI方案,如遞歸算法、電腦學習等。算法的研究有助于理解程序結構,增強邏輯思維能力,在其他人工智
5、能方面也有很大的參考作用。 </p><p> 1引言1.1課題背景五子棋是起源于中國古代的傳統(tǒng)黑白棋種之一。現代五子棋日文稱之為連珠,英譯為Renju,英文稱之為Gobang或FIR(Five in a Row 的縮寫),亦有連五子、五子連、串珠、五目、五目碰、五格等多種稱謂。五子棋起源于古代中國,發(fā)展于日本,風靡于歐洲。對于它與圍棋的關系有兩種說法,一說早于圍棋,早在 “ 堯造圍棋 ” 之
6、前,民間就已有五子棋游戲;一說源于圍棋,是圍棋發(fā)展的一個分支。在中國的文化里,倍受人們的青睞。本世紀初五子棋傳入歐洲并迅速風靡全歐。通過一系列的變化,使五子棋這一簡單的游戲復雜化、規(guī)范化,而最終成為今天的職業(yè)連珠五子棋,同時也成為一種國際比賽棋。Java語言是當今最為流行的程序設計語言之一 作為一門非常優(yōu)秀和極為健壯的編程語言,它同時具有的面向對象,與平臺無關,分布式應用,安全,穩(wěn)定和多線程等優(yōu)良的特征,使用Java語言,不僅可以開發(fā)
7、出功能強大的大型應用程序,而且Java語言本身突出的跨平臺的特性也使得它特別適合于Internet上的應用開發(fā),可以這樣說,Java的出現使得所開發(fā)的應用程序“一次編寫,處處可用”的實現成為了可能。1.2</p><p><b> 第一章 技術介紹 </b></p><p> Java技術介紹、編程環(huán)境介紹</p><p><b&g
8、t; JAVA技術介紹:</b></p><p> Java技術是一門編程語言,也是一個平臺,它基于Java虛擬機技術,借助這個東西建立了跨平臺的優(yōu)勢。(題外話:Java熱門的原因之一就是一個跨平臺的概念,和跨平臺類似跨瀏覽器的好處也是如此,這也是現在AJAX技術流行的原因之一。另外現在熱炒的RIA富客戶端的概念下的技術除了AJAX外還有Adobe的Flash/Flex,微軟的Silver Lig
9、ht,SUN的JavaFX等,個人更看好FLash/Flex,原因是Flash插件在瀏覽器端占用率很高)</p><p> Java技術的重要性就不講了,從最近流行的一個統(tǒng)計數據上來說,目前世界上編程語言Java 、C 、VB、C++依次排名前4位,這排名本身不說明什么,至少也是工業(yè)界對編程語言使用上一個側面的反映吧。</p><p> Java編程語言與眾不同之處在于:Java程序既
10、是編譯型的(轉換為一種稱為Java字節(jié)碼的中間語言),又是解釋型的(JVM 對字節(jié)碼進行解析和運行)。編譯只進行一次,而解釋在每次運行程序時都會進行。編譯后的字節(jié)碼采用一種針對JVM 優(yōu)化過的機器碼形式;解釋器是JVM 的實現。這段是摘自網上的,編譯原理學的不是很好,對這門語言的背后運行機制理解到這樣了。</p><p> Java平臺是一種純軟件平臺,它有三個版本Java SE、JavaEE、Java ME。
11、</p><p> Java SE(Java Platform,Standard Edition)這個版本以前叫做J2SE,后來版本號從1.4直接跳到5.0,其實也就是1.5,所以就叫成Java SE 5.0。目前Java開發(fā)人員使用較多的版本是5.0,當然還有Java SE 6.0這個更新的版本。它允許開發(fā)和部署在桌面、服務器、嵌入式環(huán)境和實時環(huán)境中使用的Java 應用程序。Java SE還包含了支持Java
12、 Web服務開發(fā)的類,并為Java EE這個版本提供基礎。</p><p> 雖說桌面應用程序,Java一直不被看好,但也稍微提一下,負責桌面GUI開發(fā)的類庫我知道的有:JDK自帶的主要是AWT/SWING這個Java原生類庫;也可以使用IBM的SWT/JFace這個第三方類庫。開發(fā)工具我了解的有:NetBeans(最近已經是6.0final版了,做GUI有使用VB的感覺),Eclipse(SWT/JFace這
13、個項目其實就是做Eclipse項目時擴展出來的,所以對SWT/JFace支持的也不錯)。</p><p> Java EE(Java Platform,Enterprise Edition)這個版本以前叫做J2EE,也就是大家可能聽得比較多的,也是Java比較流行的領域,Java的企業(yè)級版本。Java EE下有很多流行的開發(fā)框架,像Struts、Spring、Hibernate這種流行的所謂SSH組合等。<
14、;/p><p> 根據項目大小、應用領域,技術平臺的選擇面還是很多的,除了Java EE,還有.Net,LAMP組合(Linux、Apatch、MySql、PHP組合),相對來說比較新Ruby在Ruby on Rails的框架應用,后兩者可能在相對來說比較輕量級的Web領域運用成功案例比較多,更重量的企業(yè)級潛力還有待挖掘。</p><p> Java ME(Java Platform,Mi
15、cro Edition)這個版本以前叫做J2ME。應用領域像各種移動設備和嵌入式設備,比如:手機、PDA、電視機頂盒和打印機。</p><p> Java ME不是太熟悉,不過移動設備和嵌入式設備的開發(fā)個人覺得算是比較有意思的領域,最近比較矚目的業(yè)界新聞有一個就是Google發(fā)布開源智能手機操作系統(tǒng)開發(fā)平臺Android,也就是前一陣子炒得很火的GPhone(原來Google出的不是手機,而是一個手機操作系統(tǒng)開
16、發(fā)平臺)。這個平臺貌似會對Java ME有些沖擊,按照網上的消息,Android包括:1、高度定制的Linux操作系統(tǒng)內核及智能手機硬件驅動支持;2、經過Google修改過的Java虛擬機Dalvik,這里的性能比SUN的Hotspot高,支持大部分Java核心類庫;3、大量智能手機開發(fā)核心類庫;4、大量現成的智能手機應用軟件;5、基于Eclipse的開發(fā)環(huán)境。也是按照網上的說法,Java EE提供了統(tǒng)一的編程平臺,但不能調用操作系統(tǒng)的
17、資源;而Android下直達操作系統(tǒng),上直達應用軟件,如:瀏覽器、日歷、地圖等。</p><p> Java開發(fā)工具很多,個人使用的IDE有Eclipse和NetBeans。Eclispe比較流行,各種插件也多,當然用起來也不錯;NetBeans現在也是越做越好了,介紹這兩個IDE主要是開源的,當然還有其它工具如JBuilder、IntelliJ、JCreator。這些IDE各有優(yōu)勢劣勢,根據你開發(fā)的項目來選擇
18、了。</p><p> JAVA 編程環(huán)境:</p><p> 一.下載與安裝開發(fā)工具箱(JDK) 1.java(TM) SE Development Kits,即JDK 網址:http://java.sun.com/javase/downloads/index.jsp 2.設置環(huán)境變量 右擊 我的電腦->屬性->高級->環(huán)境變量 Path:系統(tǒng)在任何路徑下
19、都可以識別Java命令需要設置的變量 Path: ;C:\Progran Files\java\jdk1.6.0_01\bin classpath:為java加載類(包括class,lib)的路徑,只有類在classpath中, Java命令才能識別 classpath: .;Prog
20、ran Files\java\jdk1.6.0_01\lib\dt.jar ;Progran Files\java\jdk1.6.0_01\lib\tools.jar JAVA_HOME:java的安裝路徑 JAVA_HOME: Progran Files\java\jdk1.6.0_0
21、1 二.下載Java開發(fā)工具 1.下載Eclips</p><p><b> 第二章</b></p><p><b> 程序的概括設計</b></p><p><b> 畫出流程圖</b></p><p> 1. 鍵盤上事先設定8個按鍵,分作兩組,每組四個,分別代表
22、兩個人用來控制棋子的上下左右鍵。</p><p> 2. 繪制棋盤,15條橫線,15條豎線,在直線交點處下棋子(實心圓形)。</p><p> 3. 黑子先行,黑白交替下子,在棋盤上設定一個與棋盤格大小邊長相等的正方形,初始狀態(tài),正方形的中心位于期盼的中心點。當一方欲走棋的時候,應用四個按鍵來控制所要下棋的位置,每按一次按鍵,正方形都要向相應方向移動一個格,并且讓喇叭發(fā)出某種聲音,將
23、要移出邊界時,發(fā)出另一種警告聲音并不讓其移出邊界。當按下回車鍵時,應在正方形所在位置放下一個棋子,然后此組按鍵不能操作,換另一個人下棋,用另一組按鍵,規(guī)則同前。</p><p> 4. 當任何一方有五個棋子沿著橫,豎,斜連在一起時,系統(tǒng)自動判斷贏棋,并顯示黑方或白方勝利。棋局結束后,任何一方均不能繼續(xù)操作。</p><p><b> 第三章 詳細設計</b><
24、;/p><p><b> //導入包</b></p><p> import java.applet.*; </p><p> import java.awt.*; </p><p> import java.awt.event.*; </p><p> //構造applet程序</p
25、><p> public class 五子棋 extends Applet implements ActionListener,MouseListener </p><p><b> { </b></p><p> String str="五子棋游戲!"; </p><p> Dimension
26、currentPos=new Dimension(); //實例化 像素</p><p> int zuobiao[][]=new int[19][15]; //聲明一個19*15的棋盤</p><p> int x=20,y=20; </p><p> boolean unfirstpaint=false; </p>&
27、lt;p> boolean one=false; </p><p> //====================================================================== </p><p> public void init() //初始化(生存周期第一步)</p><p&g
28、t;<b> { </b></p><p> addMouseListener(this); //對鼠標添加監(jiān)聽</p><p> for(int i=0;i<=18;i++) //使整個棋盤設置為0 </p><p><b> { </b></p>
29、<p> for(int j=0;j<=14;j++) </p><p> zuobiao[i][j]=0; </p><p><b> } </b></p><p><b> } </b></p><p> //============================
30、========================================== </p><p> public void paint(Graphics g) //畫圖(生存周期第二步)</p><p><b> { </b></p><p> int x0=30,y0=50,dx=30,dy=30,N=18,M=14
31、; //x0,y0初始坐標,dx,dy每格間距</p><p> int x1,y1,x2,y2; </p><p> g.setColor(Color.green); //</p><p><b> y1=y0; </b></p><p> y2=y0+M*dy; </p>&l
32、t;p> for(int i=0;i<=N;i++) //用綠色畫棋盤中縱向的線</p><p><b> { </b></p><p> x1=x0+i*dx; </p><p> g.drawLine(x1,y1,x1,y2); </p><p><b> } &
33、lt;/b></p><p> g.setColor(Color.red); //設置成紅色</p><p><b> x1=x0; </b></p><p> x2=x0+N*dx; </p><p> for(int j=0;j<=M;j++) //用紅色畫棋盤
34、中橫向的線</p><p><b> { </b></p><p> y1=y0+j*dy; </p><p> g.drawLine(x1,y1,x2,y1); </p><p><b> } </b></p><p> g.setColor(Color.red)
35、; //設置成紅色</p><p> g.setFont(new Font("TimesRoman",Font.BOLD,25)); //設置字體</p><p> g.drawString(str,120,30); //在指定位置(120,30)寫入“五子棋游戲!”</p><p> g.setColor(
36、Color.red); //設置成紅色</p><p> g.fillOval(600,60,20,20) //用紅色填充橢圓;</p><p> g.drawString(" : 甲方",610,80); //在橢圓中寫入字</p><p> g.setColor(Color.blue);
37、 //設置成藍色</p><p> g.fillOval(600,100,20,20); //用藍色填充橢圓;</p><p> g.drawString(" : 乙方",610,120); //在橢圓中寫入字</p><p> //======================================
38、================================</p><p> //這里代碼不全,currentPos沒有賦值,不好推測</p><p> if(unfirstpaint) //判斷是否為第一次畫棋子,如果不是第一次,執(zhí)行</p><p><b> { </b></p>&
39、lt;p> for(int i=0;i<=18;i++)//畫棋子 </p><p><b> { </b></p><p> for(int j=0;j<=14;j++) </p><p><b> { </b></p><p> if(currentPos.width
40、<=(45+i*30)&¤tPos.width>=(15+i*30)) </p><p> //你的源文件不是這樣寫的,我覺得應該是這么寫</p><p><b> x=i; </b></p><p> if(currentPos.height<=(65+j*30)¤tPos.height&g
41、t;=(35+j*30))</p><p><b> y=j; </b></p><p><b> } </b></p><p><b> } </b></p><p><b> } </b></p><p> //===
42、================================================================== </p><p> if(x!=20&&y!=20) </p><p> if(zuobiao[x][y]==0) </p><p><b> { </b></p>
43、;<p><b> if(one) </b></p><p> zuobiao[x][y]=1; //等于1說明是紅色棋子</p><p><b> else </b></p><p> zuobiao[x][y]=2; //等于2說明是藍色棋子</p><p><b&g
44、t; } </b></p><p> //畫點圖===================================================================== </p><p> for(int i=0;i<=18;i++) </p><p> for(int j=0;j<=14;j++) &
45、lt;/p><p><b> { </b></p><p> if(zuobiao[i][j]==1) //如果為1,畫紅棋子</p><p><b> { </b></p><p> g.setColor(Color.red); </p><p> g.fil
46、lOval(20+i*30,40+j*30,20,20); </p><p><b> } </b></p><p> if(zuobiao[i][j]==2) //如果為2,畫藍棋子</p><p><b> { </b></p><p> g.setColor(Color.blu
47、e); </p><p> g.fillOval(20+i*30,40+j*30,20,20); </p><p> } </p><p><b> } 結論</b></p><p> 通過上述代碼運行可以運行處五子棋程序。</p><p><b>
48、附錄</b></p><p><b> 全部程序代碼</b></p><p> package zh;</p><p> import java.awt.*;</p><p> import java.awt.event.*;</p><p> import java.app
49、let.Applet;</p><p> import java.awt.Color;</p><p> public class GoBang extends Applet implements ActionListener, MouseListener,</p><p> MouseMotionListener, ItemListener {</p&
50、gt;<p> int color = 0;// 旗子的顏色標識 0:白子 1:黑子</p><p> boolean isStart = false;// 游戲開始標志</p><p> int bodyArray[][] = new int[16][16]; // 設置棋盤棋子狀態(tài) 0 無子 1 白子 2 黑子</p><p> Butto
51、n b1 = new Button("游戲開始");</p><p> Button b2 = new Button("重置游戲");</p><p> Label lblWin = new Label(" ");</p><p> Checkbox ckbHB[] = new Checkbox[2]
52、;</p><p> CheckboxGroup ckgHB = new CheckboxGroup();</p><p> public void init() {</p><p> setLayout(null);</p><p> addMouseListener(this);</p><p><b
53、> add(b1);</b></p><p> b1.setBounds(330, 50, 80, 30);</p><p> b1.addActionListener(this);</p><p><b> add(b2);</b></p><p> b2.setBounds(330, 90
54、, 80, 30);</p><p> b2.addActionListener(this);</p><p> ckbHB[0] = new Checkbox("白子先", ckgHB, false);</p><p> ckbHB[0].setBounds(320, 20, 60, 30);</p><p>
55、ckbHB[1] = new Checkbox("黑子先", ckgHB, false);</p><p> ckbHB[1].setBounds(380, 20, 60, 30);</p><p> add(ckbHB[0]);</p><p> add(ckbHB[1]);</p><p> ckbHB[0].
56、addItemListener(this);</p><p> ckbHB[1].addItemListener(this);</p><p> add(lblWin);</p><p> lblWin.setBounds(330, 130, 80, 30);</p><p> gameInit();</p><p
57、> this.resize(new Dimension(450,350));</p><p><b> }</b></p><p> public void itemStateChanged(ItemEvent e) {</p><p> if (ckbHB[0].getState()) // 選擇黑子先還是白子先</p&g
58、t;<p><b> {</b></p><p> color = 0;</p><p><b> } else {</b></p><p><b> color= 1;</b></p><p><b> }</b></p&g
59、t;<p><b> }</b></p><p> public void actionPerformed(ActionEvent e) {</p><p> if (e.getSource() == b1) {</p><p> gameStart();</p><p><b> }
60、else {</b></p><p> reStart();</p><p><b> }</b></p><p><b> }</b></p><p> public void mousePressed(MouseEvent e) {</p><p>&
61、lt;b> }</b></p><p> public void mouseClicked(MouseEvent e) {</p><p> int x1, y1;</p><p> x1 = e.getX();</p><p> y1 = e.getY();</p><p> if (e
62、.getX() < 20 || e.getX() > 300 || e.getY() < 20 || e.getY() > 300) {</p><p><b> return;</b></p><p><b> }</b></p><p> if (x1 % 20 > 10) {<
63、;/p><p><b> x1 += 20;</b></p><p><b> }</b></p><p> if (y1 % 20 > 10) {</p><p><b> y1 += 20;</b></p><p><b> }
64、</b></p><p> x1 = x1 / 20 * 20;</p><p> y1 = y1 / 20 * 20;</p><p> setDown(x1, y1);</p><p><b> }</b></p><p> public void mouseEntere
65、d(MouseEvent e) {</p><p><b> }</b></p><p> public void mouseExited(MouseEvent e) {</p><p><b> }</b></p><p> public void mouseReleased(MouseE
66、vent e) {</p><p><b> }</b></p><p> public void mouseDragged(MouseEvent e) {</p><p><b> }</b></p><p> public void mouseMoved(MouseEvent e) {&
67、lt;/p><p><b> }</b></p><p> public void paint(Graphics g) {</p><p> g.setColor(Color.lightGray);</p><p> g.fill3DRect(10, 10, 300, 300, true);</p>&
68、lt;p> g.setColor(Color.black);</p><p> for (int i = 1; i < 16; i++) {</p><p> g.drawLine(20, 20 * i, 300, 20 * i);</p><p> g.drawLine(20 * i, 20, 20 * i, 300);</p>
69、<p><b> }</b></p><p><b> }</b></p><p> public void setDown(int x, int y) // 落子</p><p><b> {</b></p><p> if (!isStart) // 判
70、斷游戲未開始</p><p><b> {</b></p><p><b> return;</b></p><p><b> }</b></p><p> if (bodyArray[x / 20][y / 20] != 0) {</p><p&g
71、t;<b> return;</b></p><p><b> }</b></p><p> Graphics g = getGraphics();</p><p> if (color == 1)// 判斷黑子還是白子</p><p><b> {</b></
72、p><p> g.setColor(Color.black);</p><p> color = 0;</p><p><b> } else {</b></p><p> g.setColor(Color.white);</p><p> color = 1;</p><
73、;p><b> }</b></p><p> g.fillOval(x - 10, y - 10, 20, 20);</p><p> bodyArray[x / 20][y / 20] = color + 1;</p><p> if (gameWin1(x / 20, y / 20)) // 判斷輸贏</p>&
74、lt;p><b> {</b></p><p> lblWin.setText(startColor(color) + "贏了!");</p><p> isStart = false;</p><p><b> }</b></p><p> if (gameWi
75、n2(x / 20, y / 20)) // 判斷輸贏</p><p><b> {</b></p><p> lblWin.setText(startColor(color) + "贏了!");</p><p> isStart = false;</p><p><b> }<
76、;/b></p><p> if (gameWin3(x / 20, y / 20)) // 判斷輸贏</p><p><b> {</b></p><p> lblWin.setText(startColor(color) + "贏了!");</p><p> isStart = fa
77、lse;</p><p><b> }</b></p><p> if (gameWin4(x / 20, y / 20)) // 判斷輸贏</p><p><b> {</b></p><p> lblWin.setText(startColor(color) + "贏了!&qu
78、ot;);</p><p> isStart = false;</p><p><b> }</b></p><p><b> }</b></p><p> public String startColor(int x) {</p><p> if (x == 0)
79、 {</p><p> return "黑子";</p><p><b> } else {</b></p><p> return "白子";</p><p><b> }</b></p><p><b> }&l
80、t;/b></p><p> public void gameStart() // 游戲開始</p><p><b> {</b></p><p> isStart = true;</p><p> enableGame(false);</p><p> b2.setEnabled
81、(true);</p><p><b> }</b></p><p> public void gameInit() // 游戲開始初始化</p><p><b> {</b></p><p> isStart = false;</p><p> enableGam
82、e(true);</p><p> b2.setEnabled(false);</p><p> ckbHB[0].setState(true);</p><p> for (int i = 0; i < 16; i++) {</p><p> for (int j = 0; j < 16; j++) {</p>
83、;<p> bodyArray[i][j] = 0;</p><p><b> }</b></p><p><b> }</b></p><p> lblWin.setText("");</p><p><b> }</b></
84、p><p> public void reStart() // 游戲重新開始</p><p><b> {</b></p><p> repaint();</p><p> gameInit();</p><p><b> }</b></p><p&
85、gt; public void enableGame(boolean e) // 設置組件狀態(tài)</p><p><b> {</b></p><p> b1.setEnabled(e);</p><p> b2.setEnabled(e);</p><p> ckbHB[0].setEnabled(e);<
86、;/p><p> ckbHB[1].setEnabled(e);</p><p><b> }</b></p><p> public boolean gameWin1(int x, int y) // 判斷輸贏 橫</p><p><b> {</b></p><p>
87、 int x1, y1, t = 1;</p><p><b> x1 = x;</b></p><p><b> y1 = y;</b></p><p> for (int i = 1; i < 5; i++) {</p><p> if (x1 > 15) {</p&
88、gt;<p><b> break;</b></p><p><b> }</b></p><p> if (bodyArray[x1 + i][y1] == bodyArray[x][y]) {</p><p><b> t += 1;</b></p><p
89、><b> } else {</b></p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p><p> for (int i = 1; i < 5; i++)
90、 {</p><p> if (x1 < 1) {</p><p><b> break;</b></p><p><b> }</b></p><p> if (bodyArray[x1 - i][y1] == bodyArray[x][y]) {</p><p&
91、gt;<b> t += 1;</b></p><p><b> } else {</b></p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b></
92、p><p> if (t > 4) {</p><p> return true;</p><p><b> } else {</b></p><p> return false;</p><p><b> }</b></p><p>&l
93、t;b> }</b></p><p> public boolean gameWin2(int x, int y) // 判斷輸贏 豎</p><p><b> {</b></p><p> int x1, y1, t = 1;</p><p><b> x1 = x;</b&
94、gt;</p><p><b> y1 = y;</b></p><p> for (int i = 1; i < 5; i++) {</p><p> if (x1 > 15) {</p><p><b> break;</b></p><p><
95、b> }</b></p><p> if (bodyArray[x1][y1 + i] == bodyArray[x][y]) {</p><p><b> t += 1;</b></p><p><b> } else {</b></p><p><b> b
96、reak;</b></p><p><b> }</b></p><p><b> }</b></p><p> for (int i = 1; i < 5; i++) {</p><p> if (x1 < 1) {</p><p><
97、b> break;</b></p><p><b> }</b></p><p> if (bodyArray[x1][y1 - i] == bodyArray[x][y]) {</p><p><b> t += 1;</b></p><p><b> } e
98、lse {</b></p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p><p> if (t > 4) {</p><p> return tru
99、e;</p><p><b> } else {</b></p><p> return false;</p><p><b> }</b></p><p><b> }</b></p><p> public boolean gameWin3
100、(int x, int y) // 判斷輸贏 左斜</p><p><b> {</b></p><p> int x1, y1, t = 1;</p><p><b> x1 = x;</b></p><p><b> y1 = y;</b></p>&
101、lt;p> for (int i = 1; i < 5; i++) {</p><p> if (x1 > 15) {</p><p><b> break;</b></p><p><b> }</b></p><p> if (bodyArray[x1 + i][y1
102、 - i] == bodyArray[x][y]) {</p><p><b> t += 1;</b></p><p><b> } else {</b></p><p><b> break;</b></p><p><b> }</b><
103、;/p><p><b> }</b></p><p> for (int i = 1; i < 5; i++) {</p><p> if (x1 < 1) {</p><p><b> break;</b></p><p><b> }</
104、b></p><p> if (bodyArray[x1 - i][y1 + i] == bodyArray[x][y]) {</p><p><b> t += 1;</b></p><p><b> } else {</b></p><p><b> break;<
105、/b></p><p><b> }</b></p><p><b> }</b></p><p> if (t > 4) {</p><p> return true;</p><p><b> } else {</b></
106、p><p> return false;</p><p><b> }</b></p><p><b> }</b></p><p> public boolean gameWin4(int x, int y) // 判斷輸贏 左斜</p><p><b>
107、{</b></p><p> int x1, y1, t = 1;</p><p><b> x1 = x;</b></p><p><b> y1 = y;</b></p><p> for (int i = 1; i < 5; i++) {</p><
108、;p> if (x1 > 15) {</p><p><b> break;</b></p><p><b> }</b></p><p> if (bodyArray[x1 + i][y1 + i] == bodyArray[x][y]) {</p><p><b>
109、 t += 1;</b></p><p><b> } else {</b></p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p><p
110、> for (int i = 1; i < 5; i++) {</p><p> if (x1 < 1) {</p><p><b> break;</b></p><p><b> }</b></p><p> if (bodyArray[x1 - i][y1 - i]
111、 == bodyArray[x][y]) {</p><p><b> t += 1;</b></p><p><b> } else {</b></p><p><b> break;</b></p><p><b> }</b></p&g
112、t;<p><b> }</b></p><p> if (t > 4) {</p><p> return true;</p><p><b> } else {</b></p><p> return false;</p><p><b
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- java五子棋實習報告
- java課程設計五子棋(附源代碼)
- java課程設計報告-五子棋
- java五子棋畢業(yè)設計--java五子棋對弈程序的設計與實現
- java五子棋課程設計
- 五子棋java語言課程設計報告
- java課程設計報告---單機版五子棋
- java課程設計--五子棋
- 五子棋java課程設計
- 五子棋java課程設計
- 基于java五子棋游戲開發(fā)
- 網絡五子棋五子棋設計與實現.doc
- java課程設計報告---java 五子棋游戲設計
- 基于java的五子棋游戲設計
- java課程設計--五子棋游戲
- java課程設計--對戰(zhàn)五子棋
- 基于java的五子棋游戲的設計(源代碼+論文)
- java五子棋游戲畢業(yè)論文
- qt網絡五子棋五子棋設計與實現
- java五子棋畢業(yè)設計論文
評論
0/150
提交評論