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

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、<p>  Java 課程設(shè)計報告</p><p><b> ?。ㄒ唬呵把裕?lt;/b></p><p>  隨著計算機(jī)的快速發(fā)展,計算機(jī)的應(yīng)用范圍越來越廣。其內(nèi)容范圍跨越了教育科研、文化事業(yè)、金融、商業(yè)、新聞出版、體育等各個領(lǐng)域,也應(yīng)用到了娛樂方面。讓人們在業(yè)余時間來放松心情。</p><p><b> ?。ǘ簝?nèi)容:&l

2、t;/b></p><p>  1:實(shí)驗(yàn)課題:連連看小游戲的開發(fā)設(shè)計</p><p>  2:實(shí)驗(yàn)任務(wù):完成游戲的運(yùn)行</p><p>  3:功能需求和分析:</p><p>  本程序?qū)⑸婕耙豢顔螜C(jī)小型連連看游戲,該程序具備以下的功能:</p><p> ?。?) 該游戲界面為方格類型,由縱6橫7的直線平行垂

3、直交叉組成,分別是6行5列方塊拼接,共有30格小方塊。方塊上隨機(jī)分布一些數(shù)字,數(shù)字的要求是至少兩兩相同,位置隨機(jī)打亂。</p><p> ?。?) 游戲規(guī)則是將相同數(shù)字的方塊連接,但要滿足只能至少單邊無阻礙呈直線趨勢連接,否則視為無效,若連接一對成功就消失于界面,繼續(xù)游戲,直到游戲結(jié)束。</p><p>  (3)幫助:游戲過程中,遇到困難難以尋找下一符合要求的一對數(shù)字,可按左下按鈕重置重

4、新排列 方可繼續(xù)游戲。</p><p> ?。?)退出游戲: 可點(diǎn)擊左下方 “退出游戲”按鈕,結(jié)束游戲。</p><p> ?。?) 該游戲純屬個人小型休閑游戲。</p><p><b> ?。ㄈ捍a設(shè)計</b></p><p>  連連看java源代碼</p><p>  import ja

5、vax.swing.*;</p><p>  import java.awt.*;</p><p>  import java.awt.event.*;</p><p>  public class lianliankan implements ActionListener</p><p><b>  {</b><

6、/p><p>  JFrame mainFrame; //主面板</p><p>  Container thisContainer;</p><p>  JPanel centerPanel,southPanel,northPanel; //子面板</p><p>  JButton diamondsButton[][] = new JButt

7、on[6][5];//游戲按鈕數(shù)組</p><p>  JButton exitButton,resetButton,newlyButton; //退出,重列,重新開始按鈕</p><p>  JLabel fractionLable=new JLabel("0"); //分?jǐn)?shù)標(biāo)簽</p><p>  JButton firstButton,se

8、condButton; //分別記錄兩次被選中的按鈕</p><p>  int grid[][] = new int[8][7];//儲存游戲按鈕位置</p><p>  static boolean pressInformation=false; //判斷是否有按鈕被選中</p><p>  int x0=0,y0=0,x=0,y=0,fristMsg=0,se

9、condMsg=0,validateLV; //游戲按鈕的位置坐標(biāo)</p><p>  int i,j,k,n;//消除方法控制</p><p>  public void init(){</p><p>  mainFrame=new JFrame("JKJ連連看");</p><p>  thisContainer =

10、 mainFrame.getContentPane();</p><p>  thisContainer.setLayout(new BorderLayout());</p><p>  centerPanel=new JPanel();</p><p>  southPanel=new JPanel();</p><p>  northPa

11、nel=new JPanel();</p><p>  thisContainer.add(centerPanel,"Center");</p><p>  thisContainer.add(southPanel,"South");</p><p>  thisContainer.add(northPanel,"N

12、orth");</p><p>  centerPanel.setLayout(new GridLayout(6,5));</p><p>  for(int cols = 0;cols < 6;cols++){</p><p>  for(int rows = 0;rows < 5;rows++ ){</p><p>

13、  diamondsButton[cols][rows]=new JButton(String.valueOf(grid[cols+1][rows+1]));</p><p>  diamondsButton[cols][rows].addActionListener(this);</p><p>  centerPanel.add(diamondsButton[cols][rows]);

14、</p><p><b>  }</b></p><p><b>  }</b></p><p>  exitButton=new JButton("退出");</p><p>  exitButton.addActionListener(this);</p>&l

15、t;p>  resetButton=new JButton("重列");</p><p>  resetButton.addActionListener(this);</p><p>  newlyButton=new JButton("再來一局");</p><p>  newlyButton.addActionLis

16、tener(this);</p><p>  southPanel.add(exitButton);</p><p>  southPanel.add(resetButton);</p><p>  southPanel.add(newlyButton);</p><p>  fractionLable.setText(String.valu

17、eOf(Integer.parseInt(fractionLable.getText())));</p><p>  northPanel.add(fractionLable);</p><p>  mainFrame.setBounds(280,100,500,450);</p><p>  mainFrame.setVisible(true);</p>

18、;<p><b>  }</b></p><p>  public void randomBuild() {</p><p>  int randoms,cols,rows;</p><p>  for(int twins=1;twins<=15;twins++) {</p><p>  random

19、s=(int)(Math.random()*25+1);</p><p>  for(int alike=1;alike<=2;alike++) {</p><p>  cols=(int)(Math.random()*6+1);</p><p>  rows=(int)(Math.random()*5+1);</p><p>  wh

20、ile(grid[cols][rows]!=0) {</p><p>  cols=(int)(Math.random()*6+1);</p><p>  rows=(int)(Math.random()*5+1);</p><p><b>  }</b></p><p>  this.grid[cols][rows]=

21、randoms;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  public void fraction(){</p><p>  fractionLable.

22、setText(String.valueOf(Integer.parseInt(fractionLable.getText())+100));</p><p><b>  }</b></p><p>  public void reload() {</p><p>  int save[] = new int[30];</p>&

23、lt;p>  int n=0,cols,rows;</p><p>  int grid[][]= new int[8][7];</p><p>  for(int i=0;i<=6;i++) {</p><p>  for(int j=0;j<=5;j++) {</p><p>  if(this.grid[i][j]!=

24、0) {</p><p>  save[n]=this.grid[i][j];</p><p><b>  n++;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }<

25、/b></p><p><b>  n=n-1;</b></p><p>  this.grid=grid;</p><p>  while(n>=0) {</p><p>  cols=(int)(Math.random()*6+1);</p><p>  rows=(int)(Ma

26、th.random()*5+1);</p><p>  while(grid[cols][rows]!=0) {</p><p>  cols=(int)(Math.random()*6+1);</p><p>  rows=(int)(Math.random()*5+1);</p><p><b>  }</b><

27、;/p><p>  this.grid[cols][rows]=save[n];</p><p><b>  n--;</b></p><p><b>  }</b></p><p>  mainFrame.setVisible(false);</p><p>  pressIn

28、formation=false; //這里一定要將按鈕點(diǎn)擊信息歸為初始</p><p><b>  init();</b></p><p>  for(int i = 0;i < 6;i++){</p><p>  for(int j = 0;j < 5;j++ ){</p><p>  if(grid[i+

29、1][j+1]==0)</p><p>  diamondsButton[i][j].setVisible(false);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p&

30、gt;  public void estimateEven(int placeX,int placeY,JButton bz) {</p><p>  if(pressInformation==false) {</p><p><b>  x=placeX;</b></p><p><b>  y=placeY;</b>&

31、lt;/p><p>  secondMsg=grid[x][y];</p><p>  secondButton=bz;</p><p>  pressInformation=true;</p><p><b>  }</b></p><p><b>  else {</b>&l

32、t;/p><p><b>  x0=x;</b></p><p><b>  y0=y;</b></p><p>  fristMsg=secondMsg;</p><p>  firstButton=secondButton;</p><p><b>  x=plac

33、eX;</b></p><p><b>  y=placeY;</b></p><p>  secondMsg=grid[x][y];</p><p>  secondButton=bz;</p><p>  if(fristMsg==secondMsg && secondButton!=fi

34、rstButton){</p><p><b>  xiao();</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  public v

35、oid xiao() { //相同的情況下能不能消去。仔細(xì)分析,不一條條注釋</p><p>  if((x0==x &&(y0==y+1||y0==y-1)) || ((x0==x+1||x0==x-1)&&(y0==y))){ //判斷是否相鄰</p><p><b>  remove();</b></p><p

36、><b>  }</b></p><p><b>  else{</b></p><p>  for (j=0;j<7;j++ ) {</p><p>  if (grid[x0][j]==0){ //判斷第一個按鈕同行哪個按鈕為空</p><p>  if (y>j) { //如

37、果第二個按鈕的Y坐標(biāo)大于空按鈕的Y坐標(biāo)說明第一按鈕在第二按鈕左邊</p><p>  for (i=y-1;i>=j;i-- ){ //判斷第二按鈕左側(cè)直到第一按鈕中間有沒有按鈕</p><p>  if (grid[x][i]!=0) {</p><p><b>  k=0;</b></p><p><b&

38、gt;  break;</b></p><p><b>  }</b></p><p>  else{ k=1; } //K=1說明通過了第一次驗(yàn)證</p><p><b>  }</b></p><p>  if (k==1) {</p><p>  lineP

39、assOne();</p><p><b>  }</b></p><p><b>  }</b></p><p>  if (y<j){ //如果第二個按鈕的Y坐標(biāo)小于空按鈕的Y坐標(biāo)說明第一按鈕在第二按鈕右邊</p><p>  for (i=y+1;i<=j ;i++ ){ //判斷

40、第二按鈕左側(cè)直到第一按鈕中間有沒有按鈕</p><p>  if (grid[x][i]!=0){</p><p><b>  k=0;</b></p><p><b>  break;</b></p><p><b>  }</b></p><p> 

41、 else { k=1; }</p><p><b>  }</b></p><p>  if (k==1){</p><p>  linePassOne();</p><p><b>  }</b></p><p><b>  }</b></p&

42、gt;<p>  if (y==j ) {</p><p>  linePassOne();</p><p><b>  }</b></p><p><b>  }</b></p><p>  if (k==2) {</p><p>  if (x0==x) {

43、</p><p><b>  remove();</b></p><p><b>  }</b></p><p>  if (x0<x) {</p><p>  for (n=x0;n<=x-1;n++ ) {</p><p>  if (grid[n][j]!=

44、0) {</p><p><b>  k=0;</b></p><p><b>  break;</b></p><p><b>  }</b></p><p>  if(grid[n][j]==0 && n==x-1) {</p><p&g

45、t;<b>  remove();</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  if (x0>x) {</p><p> 

46、 for (n=x0;n>=x+1 ;n-- ) {</p><p>  if (grid[n][j]!=0) {</p><p><b>  k=0;</b></p><p><b>  break;</b></p><p><b>  }</b></p>

47、<p>  if(grid[n][j]==0 && n==x+1) {</p><p><b>  remove();</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }&

48、lt;/b></p><p><b>  }</b></p><p><b>  }</b></p><p>  for (i=0;i<8;i++ ) { //列</p><p>  if (grid[i][y0]==0) {</p><p>  if (x>

49、;i) {</p><p>  for (j=x-1;j>=i ;j-- ) {</p><p>  if (grid[j][y]!=0) {</p><p><b>  k=0;</b></p><p><b>  break;</b></p><p><b&g

50、t;  }</b></p><p>  else { k=1; }</p><p><b>  }</b></p><p>  if (k==1) {</p><p>  rowPassOne();</p><p><b>  }</b></p>&

51、lt;p><b>  }</b></p><p>  if (x<i) {</p><p>  for (j=x+1;j<=i;j++ ) {</p><p>  if (grid[j][y]!=0) {</p><p><b>  k=0;</b></p><

52、p><b>  break;</b></p><p><b>  }</b></p><p>  else { k=1; }</p><p><b>  }</b></p><p>  if (k==1) {</p><p>  rowPassOn

53、e();</p><p><b>  }</b></p><p><b>  }</b></p><p>  if (x==i) {</p><p>  rowPassOne();</p><p><b>  }</b></p><p

54、><b>  }</b></p><p>  if (k==2){</p><p>  if (y0==y) {</p><p><b>  remove();</b></p><p><b>  }</b></p><p>  if (y0<

55、;y) {</p><p>  for (n=y0;n<=y-1 ;n++ ) {</p><p>  if (grid[i][n]!=0) {</p><p><b>  k=0;</b></p><p><b>  break;</b></p><p><b&

56、gt;  }</b></p><p>  if(grid[i][n]==0 && n==y-1) {</p><p><b>  remove();</b></p><p><b>  }</b></p><p><b>  }</b></p&

57、gt;<p><b>  }</b></p><p>  if (y0>y) {</p><p>  for (n=y0;n>=y+1 ;n--) {</p><p>  if (grid[i][n]!=0) {</p><p><b>  k=0;</b></p&g

58、t;<p><b>  break;</b></p><p><b>  }</b></p><p>  if(grid[i][n]==0 && n==y+1) {</p><p><b>  remove();</b></p><p><b

59、>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b> 

60、 }</b></p><p><b>  }</b></p><p>  public void linePassOne(){</p><p>  if (y0>j){ //第一按鈕同行空按鈕在左邊</p><p>  for (i=y0-1;i>=j ;i-- ){ //判斷第一按鈕同左側(cè)空按鈕

61、之間有沒按鈕</p><p>  if (grid[x0][i]!=0) {</p><p><b>  k=0;</b></p><p><b>  break;</b></p><p><b>  }</b></p><p>  else { k=2

62、; } //K=2說明通過了第二次驗(yàn)證</p><p><b>  }</b></p><p><b>  }</b></p><p>  if (y0<j){ //第一按鈕同行空按鈕在與第二按鈕之間</p><p>  for (i=y0+1;i<=j ;i++){</p>

63、<p>  if (grid[x0][i]!=0) {</p><p><b>  k=0;</b></p><p><b>  break;</b></p><p><b>  }</b></p><p>  else{ k=2; }</p>&l

64、t;p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  public void rowPassOne(){</p><p>  if (x0>i) {</p><p>

65、;  for (j=x0-1;j>=i ;j-- ) {</p><p>  if (grid[j][y0]!=0) {</p><p><b>  k=0;</b></p><p><b>  break;</b></p><p><b>  }</b></p&g

66、t;<p>  else { k=2; }</p><p><b>  }</b></p><p><b>  }</b></p><p>  if (x0<i) {</p><p>  for (j=x0+1;j<=i ;j++ ) {</p><p&

67、gt;  if (grid[j][y0]!=0) {</p><p><b>  k=0;</b></p><p><b>  break;</b></p><p><b>  }</b></p><p>  else { k=2; }</p><p>

68、<b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  public void remove(){</p><p>  firstButton.setVisible(false);</p><

69、;p>  secondButton.setVisible(false);</p><p>  fraction();</p><p>  pressInformation=false;</p><p><b>  k=0;</b></p><p>  grid[x0][y0]=0;</p><p

70、>  grid[x][y]=0;</p><p><b>  }</b></p><p>  public void actionPerformed(ActionEvent e) {</p><p>  if(e.getSource()==newlyButton){</p><p>  int grid[][] =

71、 new int[8][7];</p><p>  this.grid = grid;</p><p>  randomBuild();</p><p>  mainFrame.setVisible(false);</p><p>  pressInformation=false;</p><p><b> 

72、 init();</b></p><p><b>  }</b></p><p>  if(e.getSource()==exitButton)</p><p>  System.exit(0);</p><p>  if(e.getSource()==resetButton)</p><

73、p><b>  reload();</b></p><p>  for(int cols = 0;cols < 6;cols++){</p><p>  for(int rows = 0;rows < 5;rows++ ){</p><p>  if(e.getSource()==diamondsButton[cols][ro

74、ws])</p><p>  estimateEven(cols+1,rows+1,diamondsButton[cols][rows]);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p>

75、;<p>  public static void main(String[] args) {</p><p>  lianliankan llk = new lianliankan();</p><p>  llk.randomBuild();</p><p>  llk.init();</p><p><b>  

76、}</b></p><p><b>  }</b></p><p><b>  (四):總結(jié)</b></p><p>  通過這次畢業(yè)設(shè)計,我從中學(xué)到了許多新的知識,而且通過這次畢業(yè)設(shè)計,培養(yǎng)了我綜合多門學(xué)科中的知識、迅速規(guī)劃并開發(fā)出目標(biāo)系統(tǒng)的能力,以及編程能力也有了很大的提高。另外也有許多心得體會,所謂系統(tǒng)開

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論