軟件技術(shù)綜合訓(xùn)練課程設(shè)計(jì)-貪吃蛇游戲設(shè)計(jì).docx_第1頁
軟件技術(shù)綜合訓(xùn)練課程設(shè)計(jì)-貪吃蛇游戲設(shè)計(jì).docx_第2頁
軟件技術(shù)綜合訓(xùn)練課程設(shè)計(jì)-貪吃蛇游戲設(shè)計(jì).docx_第3頁
軟件技術(shù)綜合訓(xùn)練課程設(shè)計(jì)-貪吃蛇游戲設(shè)計(jì).docx_第4頁
軟件技術(shù)綜合訓(xùn)練課程設(shè)計(jì)-貪吃蛇游戲設(shè)計(jì).docx_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

*實(shí)踐教學(xué)*軟件學(xué)院2016年春季學(xué)期軟件技術(shù)綜合訓(xùn)練課程設(shè)計(jì) 說明書題 目: 貪吃蛇游戲設(shè)計(jì) 專業(yè)班級(jí): 2015級(jí)軟件技術(shù)2班 姓 名: 學(xué) 號(hào): 指導(dǎo)教師: 成 績: i目錄摘 要21 序言31 .1 課題的目標(biāo)和意義32 需求分析42.1需求前提42.2開發(fā)環(huán)境42.3用例圖53 總體設(shè)計(jì)63.1程序概述63.2 總設(shè)計(jì)模塊的劃分64 詳細(xì)設(shè)計(jì)84.1設(shè)計(jì)思路84.2程序流程圖84.3類、方法、屬性說明105 程序調(diào)試與測(cè)試115.1程序異常處理136 數(shù)據(jù)結(jié)構(gòu)算法設(shè)計(jì):146.1圖型結(jié)構(gòu)基本算法實(shí)現(xiàn)147 設(shè)計(jì)體會(huì)與總結(jié)178 參考文獻(xiàn)189 程序代碼19摘 要Java最初被命名為Oak,目標(biāo)設(shè)定在家用電器等小型系統(tǒng)的編程語言,來解決諸如電視機(jī)、電話、鬧鐘、烤面包機(jī)等家用電器的控制和通訊問題。由于這些智能化家電的市場(chǎng)需求沒有預(yù)期的高,Sun放棄了該項(xiàng)計(jì)劃。就在Oak幾近失敗之時(shí),隨著互聯(lián)網(wǎng)的發(fā)展,Sun看到了Oak在計(jì)算機(jī)網(wǎng)絡(luò)上的廣闊應(yīng)用前景。于是改造了Oak,以“Java”的名稱正式發(fā)布。 Sun 公司對(duì) Java 編程語言的解釋是:Java 編程語言是個(gè)簡(jiǎn)單、面向?qū)ο?、分布式、解釋性、健壯、安全與系統(tǒng)無關(guān)、可移植、高性能、多線程和動(dòng)態(tài)的語言。貪吃蛇游戲設(shè)計(jì)與實(shí)現(xiàn),主要分為以下二個(gè)模塊:游戲主界面模塊和游戲控制模塊。在此只實(shí)現(xiàn)游戲的游戲主界面模塊、游戲控制模塊。并且只是實(shí)現(xiàn)移動(dòng)速度、暫停、重新開始等功能。關(guān)鍵詞:java、多線程、貪吃蛇。1 序言1 .1 課題的目標(biāo)和意義在市場(chǎng)JAVA程序設(shè)計(jì)是計(jì)算機(jī)相關(guān)專業(yè)的必修專業(yè)基礎(chǔ)課程,其實(shí)踐性、應(yīng)用性很強(qiáng)。實(shí)踐教學(xué)環(huán)節(jié)是必不可少的一個(gè)重要環(huán)節(jié)。本課程的程序設(shè)計(jì)專題實(shí)際是計(jì)算機(jī)相關(guān)專業(yè)學(xué)生學(xué)習(xí)完JAVA程序設(shè)計(jì)課程后,進(jìn)行的一次全面的綜合訓(xùn)練,JAVA程序設(shè)計(jì)的設(shè)計(jì)目的是加深對(duì)理論教學(xué)內(nèi)容的理解和掌握,使學(xué)生較系統(tǒng)地掌握程序設(shè)計(jì)及其在網(wǎng)絡(luò)開發(fā)中的廣泛應(yīng)用,基本方法及技巧,為學(xué)生綜合運(yùn)用所學(xué)知識(shí),利用軟件工程為基礎(chǔ)進(jìn)行軟件開發(fā)、并在實(shí)踐應(yīng)用方面打下一定基礎(chǔ)。2 需求分析2.1需求前提 經(jīng)過兩天在圖書館以及網(wǎng)絡(luò)上查閱的資料,然后提出這次課程設(shè)計(jì)的目標(biāo)貪吃蛇游戲的設(shè)計(jì)。然后接下來就是查閱更多的資料,制定接下來的詳細(xì)計(jì)劃,最終計(jì)劃用兩周的時(shí)間完成此次課程設(shè)計(jì)提出的案例。2.2開發(fā)環(huán)境硬件環(huán)境:CPU:Intel Pentium(R)4主頻:2.40GHz軟件環(huán)境:操作系統(tǒng):Windows XP編程環(huán)境: JDK 1.6開發(fā)工具:Eclipse jdk2.3用例圖單擊“F2”按鈕, 游戲開始,蛇開始隨機(jī)。鍵盤操作: 向上左移右移向下沒有吃到食物且蛇碰到邊界單擊確定游戲結(jié)束游戲中途欲中斷,稍后繼續(xù)游單F3暫停游戲 游戲開始再次單擊開始F3按鈕,游戲恢復(fù)3 總體設(shè)計(jì)3.1程序概述本程序是一個(gè)利用Java應(yīng)用軟件制作的貪食蛇小游戲。在游戲過程中,用戶通過點(diǎn)擊小鍵盤區(qū)的方向鍵來控制蛇的運(yùn)行方向;游戲運(yùn)行過程中,如果想暫停,只需要按F3鍵即可。重新開始游戲的按鍵為F2。當(dāng)蛇沒有吃到食物且碰到墻壁或自己的身體時(shí)游戲結(jié)束。本程序的另一個(gè)功能是在程序運(yùn)行窗口的左上角顯示,用戶在游戲過程中的移動(dòng)和長度。3.2 總設(shè)計(jì)模塊的劃分根據(jù)游戲需求中游戲所要實(shí)現(xiàn)的功能,整個(gè)游戲分為二個(gè)模塊進(jìn)行具體的設(shè)計(jì),如圖2所示。貪吃蛇游戲游戲主界面模塊游戲控制模塊圖2.設(shè)計(jì)總模塊 游戲控制模塊的主要框架如圖3所示。游戲控制模塊游戲的暫停功能游戲的重新開始游戲的退出圖3.控制模塊框架游戲暫??刂疲狐c(diǎn)擊“F3”按鈕,游戲暫停;再單擊,游戲繼續(xù)。游戲重新開始控制:點(diǎn)擊“F2”鍵后,點(diǎn)擊確定,即游戲重新開始。游戲退出控制:點(diǎn)擊“F4”鍵好,點(diǎn)擊確定,退出游戲界面。4 詳細(xì)設(shè)計(jì)4.1設(shè)計(jì)思路貪吃蛇游戲設(shè)計(jì)與實(shí)現(xiàn),主要分為以下二個(gè)模塊:游戲主界面模塊和游戲控制模塊。在此只實(shí)現(xiàn)游戲的游戲主界面模塊、游戲控制模塊。并且只是實(shí)現(xiàn)移動(dòng)速度、暫停、重新開始等功能。游戲主界面模塊:游戲的主界面是進(jìn)入游戲后,能夠給玩家第一感官的部分,主要包括游戲圖形區(qū)域界面、游戲的速度選擇更新界面、新生方塊的預(yù)覽、暫停游戲按鈕、重新開始游戲按鈕。從很大程度上決定了玩家對(duì)游戲的興趣問題,因此,游戲的主界面應(yīng)該力求美觀,爽心悅目。游戲控制模塊:這個(gè)模塊是游戲的中心環(huán)節(jié),主要完成控制游戲的開始、暫停、重新開始等功能。為了能夠給玩家一個(gè)很好的游戲環(huán)境,這部分應(yīng)該做到易懂、易操作。本設(shè)計(jì)所開發(fā)的是基于Java的一個(gè)貪吃蛇游戲軟件,主要實(shí)現(xiàn)游戲的速度控制、游戲的暫停、游戲的退出等功能,分為: 游戲主界面模塊、游戲控制模塊以二個(gè)模塊。4.2程序流程圖本次游戲設(shè)計(jì)的處理流程如圖1所示。單擊“F2”按鈕, 游戲開始,蛇開始隨機(jī)。鍵盤操作: 向上左移右移向下沒有吃到食物且蛇碰到邊界單擊確定游戲結(jié)束游戲中途欲中斷,稍后繼續(xù)游單F3暫停游戲進(jìn)入游戲畫面再次單擊開始F3按鈕,游戲恢復(fù)圖1.程序流程圖4.3類、方法、屬性說明(1)成員變量表1 主要成員變量(屬性)成員變量描述變量類型名稱文件菜單中子菜單“新建”JMenuItemmFile_New編輯菜單中子菜單“撤消”JMenuItemmEdit_Undo格式菜單中子菜單“顏色”JMenuformatMenu_Color幫助菜單中子菜單“幫助主題”MenuItemmHelp_HelpTopics(2)方法表2 主要方法方法名功能備注Notepad4()描述記事本無Text.setBackground(Color.black)設(shè)置編輯區(qū)默認(rèn)背景色無Text.setForeground(Color.black)設(shè)置編輯區(qū)默認(rèn)前景色無圖8 進(jìn)銷存管理系統(tǒng)E-R圖5 程序調(diào)試與測(cè)試本程序在運(yùn)行后,能夠正常的相應(yīng)按鍵事件。由于程序的主要部分已經(jīng)集成為一個(gè)對(duì)象SnakeModel,所以利用鍵盤就可以實(shí)現(xiàn)操作。蛇前行的過程中,可以任意向其左或右方向改變方向。點(diǎn)擊F3鍵后游戲就暫停了。點(diǎn)擊F2鍵游戲重新開始。點(diǎn)擊F4游戲退出。運(yùn)行結(jié)果如下圖4所示: 圖4 程序運(yùn)行圖 當(dāng)蛇沒有吃到食物且碰到邊界或碰撞到自己的身體時(shí),游戲結(jié)束。如果想重新開始即點(diǎn)擊“確定”后按F2鍵,運(yùn)行結(jié)果如下圖5所示:圖5 重新開始圖5.1程序異常處理在蛇的運(yùn)行線程過程中,當(dāng)蛇撞到墻或自己的身體時(shí),將拋出一個(gè)Exception類的異常對(duì)象,然后使用try-catch去捕捉這個(gè)異常,異常的處理如下:try Thread.sleep(timeInterval); catch(Exception e) break; 6 數(shù)據(jù)結(jié)構(gòu)算法設(shè)計(jì):6.1圖型結(jié)構(gòu)基本算法實(shí)現(xiàn)import java.util.LinkedList;/鏈?zhǔn)綏mport java.util.Queue;/隊(duì)列/圖的遍歷(鄰接矩陣)public class Graph /曲線圖,圖表-鄰接矩陣存儲(chǔ)圖private int number=9;/頂點(diǎn)數(shù)private boolean flag;/(布爾值,一種數(shù)據(jù)類型)-頂點(diǎn)private int edges1=0,1,0,0,0,1,1,0,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,0,0,0,1,0,0,1,0,1,0,1,1,1,0,0,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,0,0,0,1,1,0,1,0,0,0,1,1,1,0,0,0,0,0/記錄頂點(diǎn)數(shù)是否被訪問;private String vertexs=A,B,C,D,E,F,G,H,I;/頂點(diǎn) private int edges= 0,1,0,0,0,1,1,0,0, 1,0,1,0,0,0,1,0,1, 0,1,0,1,0,0,0,0,1, 0,0,1,0,1,0,1,1,1, 0,0,0,1,0,1,0,1,0, 1,0,0,0,1,0,1,0,0, 0,1,0,1,0,1,0,1,0, 0,0,0,1,1,0,1,0,0, 0,1,1,1,0,0,0,0,0 ; void DFSTraverse()/圖的深度遍歷操作(遞歸) flag=new booleannumber; for(int i=0;inumber;i+) if(flagi=false)/當(dāng)前頂點(diǎn)沒有被訪問 DFS(i); private void DFS(int i) /圖的深度優(yōu)先遞歸算法 flagi=true;/第i個(gè)頂點(diǎn)被訪問 System.out.print(vertexsi+ ); for(int j=0;jnumber;j+) if(flagj=false & edges1ij=1) DFS(j); void BFSTraverse()/圖的遍歷操作flag=new booleannumber;Queue queue=new LinkedList();for(int i=0;inumber;i+)if (flagi=false) flagi=true;System.out.print(vertexsi+ );queue.add(i);while (!queue.isEmpty() int j=queue.poll();for (int k=0;knumber;k+)if (edges1jk=1 & flagk=false)flagk=true;System.out.print(vertexsk+ );queue.add(k); public static void main(Stringargs)/測(cè)試Graph graph=new Graph();System.out.println(圖的深度遍歷(遞歸):);graph.DFSTraverse();System.out.println(n-);System.out.println(圖的廣度遍歷操作:);graph.BFSTraverse();算法分析: 廣度優(yōu)先搜索A,B,F,G,C,I,E,D,H. 深度優(yōu)先搜索A,B,C,D,E,F,G,H,I.從上述算法可以看出,首先用哈夫曼編碼構(gòu)造一顆哈夫曼樹,對(duì)哈夫曼樹表示的圖進(jìn)行的深度優(yōu)先搜索遍歷時(shí),需要掃描樹中的每個(gè)元素,每一個(gè)頂點(diǎn)最多調(diào)用一次,一個(gè)頂點(diǎn)一旦被訪問,就不在從該定點(diǎn)發(fā)出搜索,圖遍歷的過中實(shí)際就是查找每一個(gè)頂點(diǎn)的鄰接點(diǎn)的過程,所以其時(shí)間復(fù)雜度為O(n2);空間復(fù)雜度為O(n).進(jìn)行廣度優(yōu)先搜索,每一個(gè)頂點(diǎn)最多入隊(duì),出隊(duì)一次,廣度優(yōu)先搜索遍歷的過程就是尋找隊(duì)列中頂點(diǎn)的鄰接點(diǎn)過程,所以其時(shí)間復(fù)雜度為O(n2);空間復(fù)雜度為O(n).7 設(shè)計(jì)體會(huì)與總結(jié)通過一個(gè)學(xué)期的學(xué)習(xí)已經(jīng)結(jié)束,我從一個(gè)連軟件都不會(huì)用的愣頭青到現(xiàn)在已能完成課程設(shè)計(jì)。這次課程設(shè)計(jì),我深深地認(rèn)識(shí)到自己知識(shí)的單薄,多謝老師和同學(xué)的幫助,讓我能順利完成課程設(shè)計(jì)。雖然還有很多不足,但也學(xué)到了很多。尤其對(duì)軟件開發(fā)過程有了更清晰地了解,首先是問題的定義,需求分析,然后是概要設(shè)計(jì),詳細(xì)設(shè)計(jì)等,并對(duì)軟件測(cè)試的方法,手段有了較深的理解,同時(shí)對(duì)企業(yè)的流程有了一個(gè)系統(tǒng)的認(rèn)識(shí)。我也認(rèn)真學(xué)習(xí)了與系統(tǒng)相關(guān)的的知識(shí),極大地拓寬了我的知識(shí)面,真心感到收獲不小。在短短的時(shí)間里,我還學(xué)到了更多的理論知識(shí),擴(kuò)展了知識(shí)面,提高了自己的實(shí)際操作能力;而且學(xué)會(huì)了如何去學(xué)習(xí)新的知識(shí),學(xué)會(huì)了面對(duì)困難和挑戰(zhàn),學(xué)會(huì)了團(tuán)結(jié)合作,互助互利。為了使游戲能夠?qū)崿F(xiàn)自己預(yù)先的構(gòu)想,我通過上網(wǎng)和去圖書館找程序,比較好的流程圖及功能模塊,不斷閱讀修改代碼使程序達(dá)到預(yù)期所要實(shí)現(xiàn)的目標(biāo),完成課程設(shè)計(jì)后,可以感覺到自己對(duì)Java程序的又有了新的認(rèn)識(shí)??傊?,通過本次的課程設(shè)計(jì),使我平時(shí)學(xué)到的理論知識(shí)得到了很好地升華,理論與實(shí)際得到一次很好的結(jié)合,為我今后參加工作打下了堅(jiān)實(shí)的基礎(chǔ),使我受益匪淺。8 參考文獻(xiàn)1 孫衛(wèi)琴精通Struts:基于MVC的JavaWeb的設(shè)計(jì)與開發(fā)M北京:電子工業(yè)出版社,20042楊章偉. 精通SQL語言與數(shù)據(jù)庫管理M. 人民郵電出版社, 20083范曉平UML建模實(shí)例詳解M北京:清華大學(xué)出版社,20054林智揚(yáng),范明翔. 深入淺出Java Swing程序設(shè)計(jì)M.中國鐵道出版社社,2005年3月5王珊, 薩師煊. 數(shù)據(jù)庫系統(tǒng)概論(第四版) M. 高等教育出版社, 20076楊章偉. 精通SQL語言與數(shù)據(jù)庫管理M. 人民郵電出版社, 20087李海鳳,李宏力,孫華峰電子商務(wù)網(wǎng)站實(shí)訓(xùn)教程M.中國鐵道出版社,20068周警偉.MVC在Web系統(tǒng)中的模式與應(yīng)用J/OL.http:/ 9閻宏Java與模式M 北京:機(jī)械出版社,200510Bruce Eckel,Think in Java 2nd EditionMPrentice Hall11黃平主編.數(shù)據(jù)庫技術(shù). 北京:機(jī)械工業(yè)出版社,200212袁枚等編著.網(wǎng)絡(luò)數(shù)據(jù)庫應(yīng)用教程.北京:人民郵電出版社,2001.113張孝祥.javascript網(wǎng)頁開發(fā).北京:清華大學(xué)出版社,2004.1114薛華成.管理信息系統(tǒng).北京:清華大學(xué)出版社,2004.99 程序代碼import java.awt.*;import javax.swing.*;import java.util.*;import java.awt.event.*;public class She extends JFrame implements ActionListener, WindowListener /* * */private static final long serialVersionUID = 1L;JLabel bt1; JLabel bt2; MyPaint mp; JMenuItem kaishi; JMenuItem zanting; JMenuItem tuichu; JRadioButton chu; JRadioButton zhong; JRadioButton gao; JRadioButton chao; JMenuItem guanyu; Font f; public She() f = new Font(宋體, Font.PLAIN, 12); mp = new MyPaint(); mp.setShe(this); JMenuBar caidan = new JMenuBar(); JMenu shezhi = new JMenu(設(shè)置); shezhi.setFont(f); JMenu nandu = new JMenu(難度); nandu.setFont(f); JMenu bangzhu = new JMenu(幫助); bangzhu.setFont(f); caidan.add(shezhi); caidan.add(nandu); caidan.add(bangzhu); kaishi = new JMenuItem(開始游戲 F2); kaishi.setFont(f); kaishi.addActionListener(this); zanting = new JMenuItem(暫停/繼續(xù) F3); zanting.setFont(f); zanting.addActionListener(this); tuichu = new JMenuItem(退出 F4); tuichu.setFont(f); tuichu.addActionListener(this); chu = new JRadioButton(初級(jí),最快速度195, true); chu.setFont(f); chu.addActionListener(this); zhong = new JRadioButton(中級(jí),最快速度225); zhong.setFont(f); zhong.addActionListener(this); gao = new JRadioButton(高級(jí),最快速度255); gao.setFont(f); gao.addActionListener(this); chao = new JRadioButton(超級(jí),最快速度275); chao.setFont(f); chao.addActionListener(this); ButtonGroup bg = new ButtonGroup(); bg.add(chu); bg.add(zhong); bg.add(gao); bg.add(chao); nandu.add(chu); nandu.add(zhong); nandu.add(gao); nandu.add(chao); guanyu = new JMenuItem(關(guān)于); guanyu.setFont(f); guanyu.addActionListener(this); shezhi.add(kaishi); shezhi.add(zanting); shezhi.add(tuichu); bangzhu.add(guanyu); bt1 = new JLabel(長度:0); bt1.setFont(f); bt2 = new JLabel(移動(dòng):5); bt2.setFont(f); JPanel p = new JPanel(); p.setLayout(new GridLayout(1, 2); p.add(bt1); p.add(bt2); this.addWindowListener(this);/添加窗體監(jiān)聽器 this.setJMenuBar(caidan); this.add(p, BorderLayout.NORTH); this.add(mp); this.add(new JLabel(), BorderLayout.WEST); this.setSize(335, 385); this.setResizable(false); this.setLocation(300, 150); this.setTitle(MyPaint); this.setVisible(true); public void setDS(int a, int b) bt1.setText(長度: + a); bt2.setText(移動(dòng): + b); public void setChu() chu.setSelected(true); mp.setSD(300, 110); this.setDS(0, 305 - 300); chu.setEnabled(true); zhong.setEnabled(true); gao.setEnabled(true); chao.setEnabled(true); public void setNanDu() chu.setEnabled(false); zhong.setEnabled(false); gao.setEnabled(false); chao.setEnabled(false); public void actionPerformed(ActionEvent e) if (e.getSource() = zanting) mp.setZanTing(); else if (e.getSource() = kaishi) mp.setKaiShi(); else if (e.getSource() = tuichu) mp.setTuiChu(); else if (e.getSource() = guanyu) JLabel gy = new JLabel(小游戲 貪吃蛇 V1.0); gy.setFont(f); JOptionPane.showMessageDialog(this, gy); else if (e.getSource() = chu) mp.setSD(300, 110); this.setDS(0, 305 - 300); else if (e.getSource() = zhong) mp.setSD(250, 80); this.setDS(0, 305 - 250); else if (e.getSource() = gao) mp.setSD(200, 50); this.setDS(0, 305 - 200); else if (e.getSource() = chao) mp.setSD(150, 30); this.setDS(0, 305 - 150); public static void main(String args) new She(); /* * Method windowOpened * * * param e * */ public void windowOpened(WindowEvent e) / TODO: Add your code here public void windowClosing(WindowEvent e) System.exit(0); public void windowClosed(WindowEvent e) / TODO: Add your code here public void windowIconified(WindowEvent e) / TODO: Add your code here public void windowDeiconified(WindowEvent e) / TODO: Add your code here public void windowActivated(WindowEvent e) / TODO: Add your code here public void windowDeactivated(WindowEvent e) / TODO: Add your code here class MyPaint extends JPanel implements Runnable, KeyListener, FocusListener /* * */private static final long serialVersionUID = 1L;She s; Font f = new Font(宋體, Font.PLAIN, 12); int x = 150; int y = 0; Random r = new Random(); int sjx = r.nextInt(300)/10*10; int sjy = r.nextInt(300)/10*10; int fx = 2; int sw = 0; int sd = 300; int cs = 0; int d = 150; String zx = new String1000; boolean zanting = false; boolean zanting1 = false; boolean siwang = false; boolean shenti = false; public MyPaint() Thread t = new Thread(this); t.start(); this.addKeyListener(this); this.setFocusable(true); this.addFocusListener(this); public void setShe(She ss) s = ss; public void setZanTing() if (zanting) zanting = false; else zanting = true; public void setKaiShi() JLabel ks = new JLabel(是否重新開始?); ks.setFont(f); int a = JOptionPane.showConfirmDialog(s, ks); if (a = 0) x = 150; y = 0; sjx = r.nextInt(300)/10*10; sjy = r.nextInt(300)/10*10; fx = 2; sw = 0; sd = 300; cs = 0; zanting = false; siwang = false; shenti = false; s.setChu(); s.setDS(sw, 305 - sd); public void setTuiChu() JLabel tc = new JLabel(確定退出嗎?); tc.setFont(f); int a = JOptionPane.showConfirmDialog(s, tc); if (a = 0) s.dispose(); System.exit(0); public void setSD(int a, int b) sd = a; d = b; public void paint(Graphics g) zxcs = x + / + y; super.paint(g); g.setColor(Color.BLACK); g.drawRect(0, 0, 300, 300); g.setColor(Color.BLACK); g.fillRect(sjx, sjy, 10, 10); g.setColor(Color.BLUE); g.fillRect(x, y, 10, 10); g.setColor(Color.RED); for (int i = 1; i = sw; i+) int j = cs - i; if (j 0) j = cs-i+999+1; String s = zxj.split(/); if (x = Integer.parseInt(s0) & y = Integer.parseInt(s1) /蛇撞到自己身上了 siwang = true; shenti = true; if (sjx = Integer.parseInt(s0) & sjy = Integer.parseInt(s1) /食物在蛇身體上 g.setColor(Color.BLACK); g.fillRect(sjx, sjy,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論