版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> Java程序設(shè)計(jì)基礎(chǔ)</p><p><b> 實(shí)習(xí)報(bào)告</b></p><p> 課程名稱 Java程序設(shè)計(jì)基礎(chǔ) </p><p> 實(shí)習(xí)題目 java五子棋 </p><p> 專 業(yè) </p><p> 班
2、 級 </p><p> 學(xué) 號 </p><p> 學(xué)生姓名 </p><p> 指導(dǎo)教師 </p><p><b> Java實(shí)習(xí)報(bào)告</b></p><p> 一、JAVA技術(shù)介紹:&l
3、t;/p><p> Java技術(shù)是一門編程語言,也是一個(gè)平臺,它基于Java虛擬機(jī)技術(shù),借助這個(gè)東西建立了跨平臺的優(yōu)勢。</p><p> Java編程語言與眾不同之處在于:Java程序既是編譯型的(轉(zhuǎn)換為一種稱為Java字節(jié)碼的中間語言),又是解釋型的(JVM 對字節(jié)碼進(jìn)行解析和運(yùn)行)。編譯只進(jìn)行一次,而解釋在每次運(yùn)行程序時(shí)都會進(jìn)行。編譯后的字節(jié)碼采用一種針對JVM 優(yōu)化過的機(jī)器碼形式;
4、解釋器是JVM 的實(shí)現(xiàn)。</p><p><b> 二、摘要</b></p><p> 五子棋作為一個(gè)棋類競技運(yùn)動,在民間十分流行,本課題主要完成了五子棋人機(jī)對戰(zhàn)和玩家之間聯(lián)網(wǎng)對戰(zhàn)2個(gè)功能。網(wǎng)絡(luò)連接部分為Socket編程應(yīng)用,客戶端和服務(wù)器端的交互用Class Message定義,有很好的可擴(kuò)展性,客戶端負(fù)責(zé)界面維護(hù)和收集用戶輸入的信息,及錯(cuò)誤處理。服務(wù)器維護(hù)在線
5、用戶的基本信息和任意兩個(gè)對戰(zhàn)用戶的棋盤信息,動態(tài)維護(hù)用戶列表。在人機(jī)對弈中通過深度搜索和估值模塊,來提高電腦棋手的智能。分析估值模塊中的影響精準(zhǔn)性的幾個(gè)要素,以及提出若干提高精準(zhǔn)性的辦法,以及對它們搜索的節(jié)點(diǎn)數(shù)進(jìn)行比較,在這些算法的基礎(chǔ)上分析一些提高電腦AI方案,如遞歸算法、電腦學(xué)習(xí)等。算法的研究有助于理解程序結(jié)構(gòu),增強(qiáng)邏輯思維能力,在其他人工智能方面也有很大的參考作用。</p><p><b> 三
6、、課題分析與設(shè)計(jì)</b></p><p> 鍵盤上事先設(shè)定8個(gè)按鍵,分作兩組,每組四個(gè),分別代表兩個(gè)人用來控制棋子的上下左右鍵。</p><p> 繪制棋盤,15條橫線,15條豎線,在直線交點(diǎn)處下棋子(實(shí)心圓形)。</p><p> 黑子先行,黑白交替下子,在棋盤上設(shè)定一個(gè)與棋盤格大小邊長相等的正方形,初始狀態(tài),正方形的中心位于期盼的中心點(diǎn)。當(dāng)一方
7、欲走棋的時(shí)候,應(yīng)用四個(gè)按鍵來控制所要下棋的位置,每按一次按鍵,正方形都要向相應(yīng)方向移動一個(gè)格,并且讓喇叭發(fā)出某種聲音,將要移出邊界時(shí),發(fā)出另一種警告聲音并不讓其移出邊界。當(dāng)按下回車鍵時(shí),應(yīng)在正方形所在位置放下一個(gè)棋子,然后此組按鍵不能操作,換另一個(gè)人下棋,用另一組按鍵,規(guī)則同前。</p><p> 當(dāng)任何一方有五個(gè)棋子沿著橫,豎,斜連在一起時(shí),系統(tǒng)自動判斷贏棋,并顯示黑方或白方勝利。棋局結(jié)束后,任何一方均不能繼
8、續(xù)操作。</p><p><b> 四、流程圖</b></p><p><b> 五、效果圖</b></p><p><b> 五、詳細(xì)代碼設(shè)計(jì)</b></p><p><b> //導(dǎo)入包</b></p><p> im
9、port java.applet.*; </p><p> import java.awt.*; </p><p> import java.awt.event.*; </p><p> //構(gòu)造applet程序</p><p> public class 五子棋 extends Applet implements ActionLis
10、tener,MouseListener </p><p><b> { </b></p><p> String str="五子棋游戲!"; </p><p> Dimension currentPos=new Dimension(); </p><p><b> //實(shí)例化 像素
11、</b></p><p> int zuobiao[][]=new int[19][15]; </p><p> //聲明一個(gè)19*15的棋盤</p><p> int x=20,y=20; </p><p> boolean unfirstpaint=false; </p><p&
12、gt; boolean one=false; </p><p> //====================================================================== </p><p> public void init() //初始化(生存周期第一步)</p><p><b&g
13、t; { </b></p><p> addMouseListener(this); //對鼠標(biāo)添加監(jiān)聽</p><p> for(int i=0;i<=18;i++) //使整個(gè)棋盤設(shè)置為0 </p><p><b> { </b></p><p> for(i
14、nt j=0;j<=14;j++) </p><p> zuobiao[i][j]=0; </p><p><b> } </b></p><p><b> } </b></p><p> //=============================================
15、========================= </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; </p>&l
16、t;p> //x0,y0初始坐標(biāo),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>&
17、lt;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> } &l
18、t;/b></p><p> g.setColor(Color.red); //設(shè)置成紅色</p><p><b> x1=x0; </b></p><p> x2=x0+N*dx; </p><p> for(int j=0;j<=M;j++) //用紅色畫棋盤中
19、橫向的線</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);
20、 //設(shè)置成紅色</p><p> g.setFont(new Font("TimesRoman",Font.BOLD,25)); </p><p><b> //設(shè)置字體</b></p><p> g.drawString(str,120,30); </p><p>
21、 //在指定位置(120,30)寫入“五子棋游戲!”</p><p> g.setColor(Color.red); //設(shè)置成紅色</p><p> g.fillOval(600,60,20,20) //用紅色填充橢圓;</p><p> g.drawString(" : 甲方",610,80)
22、; //在橢圓中寫入字</p><p> g.setColor(Color.blue); //設(shè)置成藍(lán)色</p><p> g.fillOval(600,100,20,20); //用藍(lán)色填充橢圓;</p><p> g.drawString(" : 乙方",610,120); //在橢圓中寫入字&l
23、t;/p><p> if(unfirstpaint) </p><p> //判斷是否為第一次畫棋子,如果不是第一次,執(zhí)行</p><p><b> { </b></p><p> for(int i=0;i<=18;i++)//畫棋子 </p><p>
24、<b> { </b></p><p> for(int j=0;j<=14;j++) </p><p><b> { </b></p><p> if(currentPos.width<=(45+i*30)&¤tPos.width>=(15+i*30)) </p>
25、<p><b> x=i; </b></p><p> if(currentPos.height<=(65+j*30)¤tPos.height>=(35+j*30))</p><p><b> y=j; </b></p><p><b> } </b><
26、/p><p><b> } </b></p><p><b> } </b></p><p> //===================================================================== </p><p> if(x!=20&&
27、y!=20) </p><p> if(zuobiao[x][y]==0) </p><p><b> { </b></p><p><b> if(one) </b></p><p> zuobiao[x][y]=1; //等于1說明是紅色棋子</p><
28、;p><b> else </b></p><p> zuobiao[x][y]=2; //等于2說明是藍(lán)色棋子</p><p><b> } </b></p><p> //畫點(diǎn)圖===========================================================
29、========== </p><p> for(int i=0;i<=18;i++) </p><p> for(int j=0;j<=14;j++) </p><p><b> { </b></p><p> if(zuobiao[i][j]==1) //如果為1,畫紅棋子</p
30、><p><b> { </b></p><p> g.setColor(Color.red); </p><p> g.fillOval(20+i*30,40+j*30,20,20); </p><p><b> } </b></p><p> if(zuobiao[
31、i][j]==2) //如果為2,畫藍(lán)棋子</p><p><b> { </b></p><p> g.setColor(Color.blue); </p><p> g.fillOval(20+i*30,40+j*30,20,20); </p><p> } </p&g
32、t;<p><b> 五、總結(jié)體會</b></p><p> 課程設(shè)計(jì)是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識,發(fā)現(xiàn),提出,分析和解決實(shí)際問題,鍛煉實(shí)踐能力的重要環(huán)節(jié),是對學(xué)生實(shí)際工作能力的具體訓(xùn)練和考察過程.</p><p> 回顧起課程設(shè)計(jì),至今我仍感慨頗多,的確,在這一星期的日子里,可以說得是苦多于甜,但是可以學(xué)到很多很多的東西,同時(shí)不僅可以鞏固了以前所學(xué)
33、過的知識,而且學(xué)到了很多在書本上所沒有學(xué)到過的知識。通過這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識與實(shí)踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會服務(wù),從而提高自己的實(shí)際動手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過程中遇到問題,可以說得是困難重重,這畢竟第一次做的,難免會遇到過各種各樣的問題,同時(shí)在設(shè)計(jì)的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學(xué)過的知識理解得不夠深刻,掌握得不夠牢固。通過課程
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 五子棋(java版)實(shí)習(xí)報(bào)告及原代碼
- java課程設(shè)計(jì)報(bào)告-五子棋
- java五子棋畢業(yè)設(shè)計(jì)--java五子棋對弈程序的設(shè)計(jì)與實(shí)現(xiàn)
- java五子棋課程設(shè)計(jì)
- 五子棋java語言課程設(shè)計(jì)報(bào)告
- java課程設(shè)計(jì)--五子棋
- 五子棋java課程設(shè)計(jì)
- 五子棋java課程設(shè)計(jì)
- 基于java五子棋游戲開發(fā)
- 網(wǎng)絡(luò)五子棋五子棋設(shè)計(jì)與實(shí)現(xiàn).doc
- java課程設(shè)計(jì)報(bào)告---java 五子棋游戲設(shè)計(jì)
- 基于java的五子棋游戲設(shè)計(jì)
- java課程設(shè)計(jì)--五子棋游戲
- java課程設(shè)計(jì)--對戰(zhàn)五子棋
- java五子棋游戲畢業(yè)論文
- qt網(wǎng)絡(luò)五子棋五子棋設(shè)計(jì)與實(shí)現(xiàn)
- java五子棋畢業(yè)設(shè)計(jì)論文
- 五子棋游戲設(shè)計(jì)報(bào)告
- 五子棋項(xiàng)目
- java課程設(shè)計(jì)-五子棋游戲
評論
0/150
提交評論