2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論