版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、課程設(shè)計(論文)任務(wù)書 軟件 學(xué)院軟件工程+電子商務(wù)專業(yè)2007-2 班 一、課程設(shè)計(論文)題目多用戶五子棋游戲 二、課程設(shè)計(論文)工作自 2009 年 6 月 15 日起至 2009 年 6月 19 日止。三、課程設(shè)計(論文) 地點: 創(chuàng)新大樓310 四、課程設(shè)計(論文)內(nèi)容要求:1本課程設(shè)計的目的 (1)通過課程設(shè)計把課堂上講的內(nèi)容融會貫通,學(xué)會設(shè)計程序、開發(fā)應(yīng)用軟件、開發(fā)系統(tǒng)軟件等各項工作。 (2)通過實習(xí)掌握語言的語法結(jié)構(gòu),理解類和對象的概念,準(zhǔn)確的使用各種數(shù)據(jù)類型,對面向?qū)ο笾械睦^承和多態(tài)的概念要理解、會使用,在程序中提高代碼的重用性,使設(shè)計的程序結(jié)構(gòu)清晰、易于維護(hù)。2課程設(shè)計的
2、任務(wù)及要求1)基本要求:實現(xiàn)一個簡單的多用戶五子棋的游戲程序,包括如下兩個界面(1)選擇對弈桌及角色(執(zhí)黑、執(zhí)白、觀看)。(2)在游戲界面,有開始,退出(游戲未結(jié)束、點退出自動判負(fù));發(fā)言及顯示區(qū);用戶列表區(qū);棋盤繪制區(qū)。2)創(chuàng)新要求: 在基本要求達(dá)到后,可進(jìn)行創(chuàng)新設(shè)計,如改善算法性能、友好的人機界面。3)課程設(shè)計論文編寫要求(1)要按照書稿的規(guī)格打印與寫課程設(shè)計論文 (2)論文包括目錄、設(shè)計思路、具體實現(xiàn)、運行調(diào)試與分析討論、設(shè)計體會與小結(jié)、參考文獻(xiàn)、附錄(源代碼)等 (3)課程設(shè)計論文裝訂按學(xué)校的統(tǒng)一要求完成4)答辯與評分標(biāo)準(zhǔn): (1)完成基本算法設(shè)計:20分; (2)完成設(shè)計過程 :40
3、分; (3)完成調(diào)試:20分;(4)回答問題:20分。5)參考文獻(xiàn):1吳其慶編著.Java程序設(shè)計實例教程.北京:冶金工業(yè)出版社2 柳西玲.許斌編著.Java語言應(yīng)用開發(fā)基礎(chǔ).北京:清華大學(xué)出版社3 (美)CayS.Horsttmann Gary Cornell JAVA核心技術(shù)卷i:基礎(chǔ)知識(原書第七版):機械工業(yè)出版社4丁振凡 Java 語言實用教程 :北京郵電大學(xué)出版社56)課程設(shè)計進(jìn)度安排內(nèi)容 天數(shù)地點構(gòu)思及收集資料 1圖書館編碼與調(diào)試 2.5實驗室撰寫論文 1.5圖書館、實驗室學(xué)生簽名: 2009年6 月 15 日課程設(shè)計(論文)評審意見(1)完成基本算法(20分):優(yōu)()、良()、
4、中()、一般()、差(); (2)完成調(diào)試(20分):優(yōu)()、良()、中()、一般()、差(); (3)創(chuàng)新設(shè)計(20分):優(yōu)()、良()、中()、一般()、差();(4)設(shè)計分析(20分):優(yōu)()、良()、中()、一般()、差();(5)回答問題(20分):優(yōu)()、良()、中()、一般()、差();(6)格式規(guī)范性及考勤是否降等級:是(ü)、否()評閱人: 職稱: 2009年 6月 21 日目錄緒論1一、題目內(nèi)容及要求2二 、設(shè)計思路 2三 、具體實現(xiàn) 5四 、測試結(jié)果 15五、 設(shè)計體會與小結(jié) 19六、參考文獻(xiàn) . .20附錄 . .20緒論Java是由美國的sun micros
5、ystems 公司發(fā)展出來的一套面向?qū)ο蟪绦蛘Z言,因為它的面向?qū)ο?,分散運算,跨平臺等等特性,又支持多線程。使得許多用過的人都愛不釋手。Java既是一種程序設(shè)計語言,也是一個完整的平臺。作為一種程序語言,它簡潔、面向?qū)ο蟆踩?、健壯,以及適用于Internet技術(shù);而作為一個平臺(JRE,Java Runtime Environment,Java運行環(huán)境或者說是Java虛擬機),對于符合Sun公司Java標(biāo)準(zhǔn)的應(yīng)用程序,都可以在Java平臺上正確運行,與程序運行的操作系統(tǒng)無關(guān)。Java發(fā)展到今天,已從編程語言發(fā)展成為全球第一大通用開發(fā)平臺。Java技術(shù)已被計算機行業(yè)主要公司所采納。1999年,
6、Sun公司推出了以Java2平臺為核心的J2EE、J2SE和J2ME三大平臺。隨著三大平臺的迅速推進(jìn),全球形成了一股巨大的Java應(yīng)用浪潮。這個五子棋游戲正是用這個平臺做的,在實踐中充分體現(xiàn)出了Java面向?qū)ο蠼o我們帶來的方便。多用戶聊天程序也讓我體會到了Java多線程的強大功能。一 題目內(nèi)容及要求要求實現(xiàn)一個簡單的多用戶五子棋胡游戲程序,包括如下兩個界面:(1)選擇對弈桌及角色(執(zhí)黑、執(zhí)白、觀看)。(2)在游戲界面,有開始,退出(游戲未結(jié)束、點退出自動判負(fù));發(fā)言及顯示區(qū);用戶列表區(qū);棋盤繪制區(qū)。二 設(shè)計思路2.1工作原理圖2.2功能的規(guī)劃1.建立一個棋盤類,繪制棋盤的樣式,在棋盤面板上添加
7、各種按鈕及相應(yīng)胡觸發(fā)事件。同時注意面板的設(shè)計,使面板設(shè)計的盡量胡的合理美觀。a.棋盤的繪制public void draw_qipan(Graphics G) /畫棋盤 15*15G.setColor(Color.lightGray); /設(shè)置畫刷顏色G.fill3DRect(10,10,300,300,true); /繪制填充矩形,灰白色G.setColor(Color.black); /設(shè)置畫刷顏色for(int i=1;i<16;i+)/繪制縱橫線G.drawLine(20,20*i,300,20*i);G.drawLine(20*i,20,20*i,300); b.添加按鈕與按鈕
8、胡規(guī)劃Button b1=new Button("開始");Button b2=new Button("重置游戲");Label lblWin=new Label(" ");Checkbox ckbHB=new Checkbox3;Button exist = new Button("退出"); public void init()ckbHB0=new Checkbox("執(zhí)白",ckgHB,false);ckbHB1=new Checkbox("執(zhí)黑",ckgHB,fals
9、e);ckbHB2=new Checkbox("觀看",ckgHB, false);C.鼠標(biāo)棋子胡相應(yīng)觸發(fā)事件public void mouseClicked(MouseEvent e) Graphics g=getGraphics();/在當(dāng)前面板繪制圖像int x1,y1;x1=e.getX();/獲取點擊點橫坐標(biāo)y1=e.getY();/獲取點擊點縱坐標(biāo)if (e.getX()<20 | e.getX()>300 | e.getY()<20 | e.getY()>300) /點擊點在棋盤外return;if (x1%20>10) /點擊點
10、位于X相距20像素的兩點間x1+=10;if(y1%20>10) /點擊點位于y相距20像素的兩點間y1+=10;x1=x1/20*20; /確定棋子可放置的交叉點X位置y1=y1/20*20; /確定棋子可放置的交叉點y位置set_Qizi(x1,y1); /調(diào)用函數(shù)set_Qizi,放置棋子m*=(-1); /某方開始放置棋子,譬如m為正則黑方下棋 d.按鈕的觸發(fā)事件 public void actionPerformed(ActionEvent e) Graphics g=getGraphics();/在當(dāng)前面板繪制圖像if (e.getSource()=b1) Game_star
11、t();/調(diào)用函數(shù),開始游戲elseGame_re();/調(diào)用函數(shù),重新開始if(e.getSource()=exist)Game_re();/調(diào)用函數(shù),重新開始lblWin.setText(Get_qizi_color(color_Qizi)+"輸了!");/調(diào)用函數(shù)Get_qizi_color(color_Qizi),其返回值為“黑子”或“白字”intGame_Start=0; /歸0操作,表明游戲尚未開始 2.編寫一個功能判斷落子的位置及畫出相應(yīng)的黑白棋子public void set_Qizi(int x,int y) /落子if (intGame_Start=0)
12、 /判斷游戲是否已開始return;if (intGame_Bodyx/20y/20!=0) /該交叉點已被占用return;Graphics g=getGraphics();/在當(dāng)前面板繪制圖像if (color_Qizi=1) /判斷棋子的黑白g.setColor(Color.black); /若棋子為黑,即color_Qizi=1,設(shè)置黑色畫筆color_Qizi=0; /下一步由白子,故賦值為0elseg.setColor(Color.white); /棋子為白子,設(shè)置畫筆為白color_Qizi=1; /下一步為黑子,故賦值為1g.fillOval(x-10,y-10,20,20);
13、 /繪制填充橢圓intGame_Bodyx/20y/20=color_Qizi+1; /棋盤交叉點已占用,即不為零3.判斷勝負(fù)if (Game_win_1(x/20,y/20) /判斷輸贏1lblWin.setText(Get_qizi_color(color_Qizi)+"贏了!");intGame_Start=0;if (Game_win_2(x/20,y/20) /判斷輸贏2lblWin.setText(Get_qizi_color(color_Qizi)+"贏了!");intGame_Start=0;if (Game_win_3(x/20,y/2
14、0) /判斷輸贏3lblWin.setText(Get_qizi_color(color_Qizi)+"贏了!");intGame_Start=0;if (Game_win_4(x/20,y/20) /判斷輸贏4lblWin.setText(Get_qizi_color(color_Qizi)+"贏了!");intGame_Start=0; 4添加用戶聊天功能NetchatClient chat=new NetchatClient();chat.frame();chat.setVisible(true);三 具體實現(xiàn)3.1創(chuàng)建棋盤類Public clas
15、s WcyChess extends Applet implements ActionListener,MouseListener,MouseMotionListener,ItemListenerint color_Qizi=0;/旗子的顏色標(biāo)識 0:白子 1:黑子int intGame_Start=0;/游戲開始標(biāo)志 0未開始 1游戲中int intGame_Body=new int1616; /設(shè)置棋盤棋子狀態(tài)int m=-1;Button b1=new Button("開始");Button b2=new Button("重置游戲");Label
16、lblWin=new Label(" ");Checkbox ckbHB=new Checkbox3;Button exist = new Button("退出"); CheckboxGroup ckgHB=new CheckboxGroup();NetchatClient chat=new NetchatClient();/對話框類實體public void init()setLayout(null); /暫不設(shè)置布局addMouseListener(this); /為當(dāng)前類設(shè)置鼠標(biāo)監(jiān)聽器add(b1);b1.setBounds(330,50,80,3
17、0);b1.addActionListener(this);add(b2);b2.setBounds(330,90,80,30);b2.addActionListener(this);ckbHB0=new Checkbox("執(zhí)白",ckgHB,false);ckbHB0.setBounds(320,20,60,30);ckbHB1=new Checkbox("執(zhí)黑",ckgHB,false);ckbHB1.setBounds(380,20,60,30);ckbHB2=new Checkbox("觀看",ckgHB, false);a
18、dd(ckbHB0);add(ckbHB1);add(ckbHB2);ckbHB0.addItemListener(this);ckbHB1.addItemListener(this);add(lblWin);lblWin.setBounds(330,180,80,30);lblWin.setBackground(Color.red);lblWin.setText("勝利者!");/沒有顯示?ckbHB2.setBounds(440, 20,60, 30);add(exist);exist.setBounds(330,130,80,30);exist.addActionLi
19、stener(this);/add(chat);chat.setBounds(20, 500, 300, 300);chat.frame();chat.setVisible(true);Game_start_csh();setSize(500,600); setVisible(true);public void itemStateChanged(ItemEvent e) if (ckbHB0.getState() /選擇黑子還是白子color_Qizi=0;elsecolor_Qizi=1;public void mousePressed(MouseEvent e)public void mo
20、useClicked(MouseEvent e) Graphics g=getGraphics();int x1,y1;x1=e.getX();y1=e.getY();if (e.getX()<20 | e.getX()>300 | e.getY()<20 | e.getY()>300) return;if (x1%20>10) x1+=10;if(y1%20>10) y1+=10;x1=x1/20*20;y1=y1/20*20;set_Qizi(x1,y1);m*=(-1);public void actionPerformed(ActionEvent e
21、) Graphics g=getGraphics();if (e.getSource()=b1) Game_start();elseGame_re();if(e.getSource()=exist)Game_re();lblWin.setText(Get_qizi_color(color_Qizi)+"輸了!");intGame_Start=0;public void mouseEntered(MouseEvent e)public void mouseExited(MouseEvent e)public void mouseReleased(MouseEvent e)pu
22、blic void mouseDragged(MouseEvent e)public void mouseMoved(MouseEvent e)public void paint(Graphics g) draw_qipan(g);3.2判斷輸贏功能實現(xiàn)if (Game_win_1(x/20,y/20) /判斷輸贏1lblWin.setText(Get_qizi_color(color_Qizi)+"贏了!");intGame_Start=0;if (Game_win_2(x/20,y/20) /判斷輸贏2lblWin.setText(Get_qizi_color(colo
23、r_Qizi)+"贏了!");intGame_Start=0;if (Game_win_3(x/20,y/20) /判斷輸贏3lblWin.setText(Get_qizi_color(color_Qizi)+"贏了!");intGame_Start=0;if (Game_win_4(x/20,y/20) /判斷輸贏4lblWin.setText(Get_qizi_color(color_Qizi)+"贏了!");intGame_Start=0;/判斷輸贏程序?qū)崿F(xiàn)在詳細(xì)過程public boolean Game_win_1(int x
24、,int y) /橫向判斷輸贏int x1,y1,t=1;x1=x;y1=y;for (int i=1;i<5 ;i+ ) if (x1>15) break;if (intGame_Bodyx1+iy1=intGame_Bodyxy) t+=1;elsebreak;for (int i=1;i<5 ;i+ )if (x1<1)break;if(intGame_Bodyx1-iy1=intGame_Bodyxy)t+=1;elsebreak;if (t>4)return true;elsereturn false;public boolean Game_win_2(
25、int x,int y) /縱向判斷輸贏int x1,y1,t=1;x1=x;y1=y;for (int i=1;i<5 ;i+ )if (x1>15)break;if (intGame_Bodyx1y1+i=intGame_Bodyxy)t+=1;elsebreak;for (int i=1;i<5 ;i+ )if (x1<1)break;if(intGame_Bodyx1y1-i=intGame_Bodyxy)t+=1;elsebreak;if (t>4)return true;elsereturn false;public boolean Game_win_
26、3(int x,int y) /左斜判斷輸贏int x1,y1,t=1;x1=x;y1=y;for (int i=1;i<5 ;i+ )if (x1>15)break;if (intGame_Bodyx1+iy1-i=intGame_Bodyxy)t+=1;elsebreak;for (int i=1;i<5 ;i+ )if (x1<1)break;if(intGame_Bodyx1-iy1+i=intGame_Bodyxy)t+=1;elsebreak;if (t>4)return true;elsereturn false;public boolean Gam
27、e_win_4(int x,int y) /左斜判斷輸贏 int x1,y1,t=1;x1=x;y1=y;for (int i=1;i<5 ;i+ ) if (x1>15)break;if (intGame_Bodyx1+iy1+i=intGame_Bodyxy)t+=1;elsebreak;for (int i=1;i<5 ;i+ ) if (x1<1) break;if(intGame_Bodyx1-iy1-i=intGame_Bodyxy) t+=1;elsebreak;if (t>4) return true;elsereturn false; 3.3實現(xiàn)
28、聊天功能類package NetchatClient;import java.awt.*;import java.awt.event.*;import .*;import java.io.*;import javax.swing.*;public class NetchatClient extends Frame Frame x=new Frame("liaotianchengxu"); TextField tf=new TextField(); TextArea ta=new TextArea(); Socket s=null; DataOutputStream dos=
29、null; public static void main(String args) new NetchatClient().frame(); public void frame() System.out.println("frame()"); setLocation(20, 400); setSize(300,300); add(tf,BorderLayout.SOUTH); add(ta,BorderLayout.NORTH); pack(); setVisible(true); connect(); this.addWindowListener(new WindowA
30、dapter() public void windowClosing(WindowEvent arg0) cconnect(); System.exit(0); ); addWindowListener (new WindowAdapter()/窗口適配器 public void windowClosing(WindowEvent e) System.exit(0);/程序退出 ); tf.addActionListener(new nclistener(); public void connect() System.out.println("connnect().");
31、try s=new Socket("127.0.0.1",8888);/設(shè)置客戶 端的IP和端口 dos=new DataOutputStream(s.getOutputStream(); catch (UnknownHostException e) e.printStackTrace(); catch (IOException e) e.printStackTrace(); public void cconnect() try dos.close(); s.close(); catch (IOException e) e.printStackTrace(); public
32、 class nclistener implements ActionListener public void actionPerformed(ActionEvent e) String st=tf.getText(); ta.setText(st); tf.setText(""); try dos.writeUTF(st); dos.flush(); catch (IOException e1) e1.printStackTrace(); 四 測試結(jié)果4.1 進(jìn)入游戲的界面分析:游戲開始的界面有三個選擇項,用戶可以選擇相應(yīng)的角色,選擇完畢后點擊開始進(jìn)入游戲。用戶也可以在下
33、面的聊天框中進(jìn)行聊天。4.2選擇角色,點擊開始,開始下棋分析:首先達(dá)到五個棋子連在一塊的贏了,并在紅色區(qū)域顯示誰贏了!4.3下完后點擊重新開始分析:下完一盤后游戲停止,點擊重新開始,界面回到初始界面,選擇角色繼續(xù)游戲.4.4游戲過程中退出,自動判輸 分析:在下棋的過程當(dāng)中誰中途退出,即點擊退出,系統(tǒng)自動判斷誰輸4.5改進(jìn)想法這個系統(tǒng)基本上實現(xiàn)了要求但是在有些方面還不夠完善。1.觀看角色點擊后不會出發(fā)什么事件,雖然觀看者并不需要做什么但是點擊之后并沒有發(fā)生任何反應(yīng)總感覺缺點什么。想加個什么功能,但是又不知道加什么才不至于畫蛇添足。2.問題比較大的可能是聊天功能了,本來聊天面板應(yīng)該和棋盤面板在同一
34、個面板上面,但是聊天功能的程序是寫在了另一個類里,并且那個類是繼承了Frame類的,是一個Application程序,而棋盤是一個Applet程序,所以當(dāng)我添加這個類到Applet面板上并不能顯示 ,所以我就打包那個NetchatClient 類,在棋盤類中加載這個類,并調(diào)用該類的方法才實現(xiàn)了聊天功能。3.聊天功能本身也還不夠完善,因為每次發(fā)送聊天的內(nèi)容后都會覆蓋掉原來的內(nèi)容,這使得用戶不能很直觀的看到聊天的內(nèi)容。但是在修改的過程中出現(xiàn)了許多的問題,所以也就將就者先用了。五 設(shè)計體會與小結(jié) 這個課設(shè)題對我來說有一定的挑戰(zhàn)性,因為我自己也不知道自己到底學(xué)到了一個什么樣的境界。但可以肯定,這個課設(shè)
35、題的要求絕對在我的能力范圍以上。之所以選擇這個題目是想逼著自己去查更多的資料,學(xué)到更多的東西。結(jié)果也確實是這樣的,我在這次課設(shè)中學(xué)到了不少東西,也理解了許多原來不理解的東西。盡管這個系統(tǒng)做的并不是那么的完善。對于Java中的引用,初始化類等,開始我并不是非常的理解,知道就這么做就能實現(xiàn)相應(yīng)的功能了,并沒有很深刻的去理解它為什么要這么做。但是真正的要用Java去做一個東西不理解它是不行的,而且其間這課設(shè)涉及到了Java 中的絕大多數(shù)的知識點,如Java圖形用戶界面設(shè)計、Java的異常處理機制、Java中的多線程程序設(shè)計、Java輸入輸出流,要應(yīng)用這些東西更要求我去好好理解Java的這些規(guī)則。好在
36、有一定的C+基礎(chǔ)Java 與C+語法類似,并把C+中一些較低級和較難以理解的功能都去掉了,如多繼承、指針等,同時Java增強了部分功能。所以理解起來也比較容易。但是理解了Java的規(guī)則要把這個課設(shè)做好也不是那么容易,最難的部分是如何實現(xiàn)各個功能的劃分和類的通訊問題。我在這方面就遇到了不少的問題??偨Y(jié)這次課設(shè),我還是收獲不少。雖然界面也不是很美觀,有點功能間的連接做的也不是特別的好,但是我能認(rèn)識到自己的不足,并且在跟同學(xué)的交流中也學(xué)到了一些他們的設(shè)計思路,也知道今后要加強哪些方面的知識。六 參考文獻(xiàn)1. 吳其慶編著.Java程序設(shè)計實例教程.北京:冶金工業(yè)出版社2. 柳西玲.許斌編著.Java語
37、言應(yīng)用開發(fā)基礎(chǔ).北京:清華大學(xué)出版社 3. (美)CayS.Horsttmann Gary Cornell JAVA核心技術(shù)卷i:基礎(chǔ)知識(原書第七版): 機械工業(yè)出版社4丁振凡 Java 語言實用教程 :北京郵電大學(xué)出版社5.附錄 (源代碼)1.WcyChess.java/* 實現(xiàn)一個簡單的多用戶五子棋的游戲程序,包括如下兩個界面(1)選擇對弈桌及角色(執(zhí)黑、執(zhí)白、觀看)。(2)在游戲界面,有開始,退出(游戲未結(jié)束、點退出自動判負(fù));發(fā)言及顯示區(qū);用戶列表區(qū);棋盤繪制區(qū)。 */import .*;import java.io.*;import java.applet.*;import jav
38、a.awt.*;import java.awt.event.*;import java.applet.Applet;import java.awt.Color;import NetchatClient.*;public class WcyChess extends Applet implements ActionListener,MouseListener,MouseMotionListener,ItemListenerint color_Qizi=0;/旗子的顏色標(biāo)識 0:白子 1:黑子int intGame_Start=0;/游戲開始標(biāo)志 0未開始 1游戲中int intGame_Body
39、=new int1616; /設(shè)置棋盤棋子狀態(tài)int m=-1;Button b1=new Button("開始");Button b2=new Button("重置游戲");Label lblWin=new Label(" ");Checkbox ckbHB=new Checkbox3;Button exist = new Button("退出"); CheckboxGroup ckgHB=new CheckboxGroup();NetchatClient chat=new NetchatClient();pub
40、lic void init()setLayout(null);addMouseListener(this);add(b1);b1.setBounds(330,50,80,30);b1.addActionListener(this);add(b2);b2.setBounds(330,90,80,30);b2.addActionListener(this);ckbHB0=new Checkbox("執(zhí)白",ckgHB,false);ckbHB0.setBounds(320,20,60,30);ckbHB1=new Checkbox("執(zhí)黑",ckgHB,fa
41、lse);ckbHB1.setBounds(380,20,60,30);ckbHB2=new Checkbox("觀看",ckgHB, false);add(kebob0);add(ckbHB1);add(ckbHB2);ckbHB0.addItemListener(this);ckbHB1.addItemListener(this);add(lblWin);lblWin.setBounds(330,180,80,30);lblWin.setBackground(Color.red);lblWin.setText("勝利者!");/沒有顯示?ckbHB2
42、.setBounds(440, 20,60, 30);add(exist);exist.setBounds(330,130,80,30);exist.addActionListener(this);/add(chat);chat.setBounds(20, 500, 300, 300);chat.frame();chat.setVisible(true);Game_start_csh();setSize(500,600); setVisible(true);public void itemStateChanged(ItemEvent e)if (ckbHB0.getState() /選擇黑子還
43、是白子color_Qizi=0;elsecolor_Qizi=1;public void mousePressed(MouseEvent e)public void mouseClicked(MouseEvent e)Graphics g=getGraphics();int x1,y1;x1=e.getX();y1=e.getY();if (e.getX()<20 | e.getX()>300 | e.getY()<20 | e.getY()>300)return;if (x1%20>10)x1+=10;if(y1%20>10)y1+=10;x1=x1/20
44、*20;y1=y1/20*20;set_Qizi(x1,y1);m*=(-1);public void actionPerformed(ActionEvent e)Graphics g=getGraphics();if (e.getSource()=b1)Game_start();elseGame_re();if(e.getSource()=exist)Game_re();/color_Qizi=m;lblWin.setText(Get_qizi_color(color_Qizi)+"輸了!");intGame_Start=0;public void mouseEntere
45、d(MouseEvent e)public void mouseExited(MouseEvent e)public void mouseReleased(MouseEvent e)public void mouseDragged(MouseEvent e)public void mouseMoved(MouseEvent e)public void paint(Graphics g)draw_qipan(g);public void set_Qizi(int x,int y) /落子if (intGame_Start=0) /判斷游戲未開始return;if (intGame_Bodyx/2
46、0y/20!=0)return;Graphics g=getGraphics();if (color_Qizi=1)/判斷黑子還是白子g.setColor(Color.black);color_Qizi=0;elseg.setColor(Color.white);color_Qizi=1;g.fillOval(x-10,y-10,20,20);intGame_Bodyx/20y/20=color_Qizi+1;if (Game_win_1(x/20,y/20) /判斷輸贏1lblWin.setText(Get_qizi_color(color_Qizi)+"贏了!");in
47、tGame_Start=0;if (Game_win_2(x/20,y/20) /判斷輸贏2lblWin.setText(Get_qizi_color(color_Qizi)+"贏了!");intGame_Start=0;if (Game_win_3(x/20,y/20) /判斷輸贏3lblWin.setText(Get_qizi_color(color_Qizi)+"贏了!");intGame_Start=0;if (Game_win_4(x/20,y/20) /判斷輸贏4lblWin.setText(Get_qizi_color(color_Qizi)+"贏了!");intGame_Start=0;public String Get_qizi_color(int x)if (x=0)return "黑子"elsereturn &
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024蘇州智能家居系統(tǒng)裝修服務(wù)合同2篇
- 2025年度LED照明燈具生產(chǎn)與銷售合作協(xié)議3篇
- 2024甲乙雙方關(guān)于高端裝備制造與技術(shù)轉(zhuǎn)讓的協(xié)議
- 2024配電室設(shè)備安裝工程施工合同樣本
- 2024股權(quán)轉(zhuǎn)讓合同協(xié)議
- 2025年度上市公司股東持股鎖定期合同約定3篇
- 獨奏訓(xùn)練-吉他知到智慧樹章節(jié)測試課后答案2024年秋四川音樂學(xué)院
- 2025年度廠房買賣附帶環(huán)境風(fēng)險評估與治理合同3篇
- 行政訴訟律師聘用合同范本
- 大學(xué)城網(wǎng)絡(luò)升級改造合同
- (八省聯(lián)考)2025年高考綜合改革適應(yīng)性演練 物理試卷合集(含答案逐題解析)
- (正式版)JBT 9229-2024 剪叉式升降工作平臺
- 2023版押品考試題庫必考點含答案
- 榴園小學(xué)寒假留守兒童工作總結(jié)(共3頁)
- 初中物理-電功率大題專項
- 時光科技主軸S系列伺服控制器說明書
- 社會組織績效考核管理辦法
- 蘇州智能數(shù)控機床項目投資計劃書(模板)
- 貼在學(xué)校食堂門口的對聯(lián)_在圖書館門前貼的對聯(lián)
- 計數(shù)培養(yǎng)基適用性檢查記錄表
- 大瀝鎮(zhèn)志愿服務(wù)隊備案成立步驟
評論
0/150
提交評論