日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

java編寫簡易貪吃蛇游戲

瀏覽:20日期:2022-09-01 13:32:12

本文實例為大家分享了java編寫的貪吃蛇源碼,供大家參考,具體內容如下

程序共包含以下兩個文件:

文件:ShellWin.java

import java.awt.Color;import java.awt.Dimension;import java.awt.FlowLayout;import java.awt.Graphics;import java.awt.event.*;import javax.swing.Box;import javax.swing.JButton;import javax.swing.JOptionPane;import javax.swing.JPanel;@SuppressWarnings('serial')public class ShellWin extends JPanel implements Runnable{ //實現了鍵盤與鼠標兩個接口 int direction; int length; int score=0; boolean control=false; int[] xs=new int[400]; //蛇的個數,xy,坐標控制 int[] ys=new int[400]; int douX;int douY; Thread thread; public ShellWin() { setPreferredSize(new Dimension(600, 600)); setLocation(100, 100); setBackground(Color.GREEN); thread=new Thread(this); //為這個類添加一個線程 create_snake(); create_bean(); } public void paintComponent(Graphics g) //繪制 { super.paintComponent(g); //Jpanel內的方法,起到清屏的作用 g.drawString('分數:'+score, 50, 50); g.drawRect(0,0, 600, 600); show_snake(g); show_bean(g); } //能不能吃豆,能不能死 void die() { JOptionPane.showMessageDialog(null, 'game over', '游戲結束', JOptionPane.ERROR_MESSAGE); } void eat() { length++; this.score+=100; create_bean(); } boolean out_bounds() { if(xs[0]==-10||xs[0]==600||ys[0]==-10||ys[0]==600) //出界即死 { return true; } return false; } void change_direction(int new_direction) //控制方向 { if(direction%2!=new_direction%2||direction==0) // 2 4 3 1 上下左右 { direction=new_direction; } } boolean eat_self() { for (int i = 1; i < length; i++) { if(xs[0]==xs[i]&&ys[0]==ys[i]) { return true; } } return false; } boolean can_eat() { if(xs[0]==douX&&ys[0]==douY) { return true; } return false; } void create_snake() { direction=0;length=5; for (int i = 0; i < length; i++) { xs[i]=400; ys[i]=400+10*i; } } void create_bean() { douX=10*(int)(Math.random()*60); douY=10*(int)(Math.random()*60); for (int i = 0; i < length; i++) { if(xs[i]==douX&&ys[i]==douY) { create_bean(); return; } } } void show_bean(Graphics g) //仍然得要寫入到paintComponent方法內 { g.setColor(Color.RED); g.fillOval(douX, douY, 10, 10); } void crawl() { if(direction!=0) for (int i = length-1; i >0; i--) { // 2 4 3 1 上下左右 xs[i]=xs[i-1]; //后一個替代前一個 4=3; ys[i]=ys[i-1]; } switch (direction) { case 1: xs[0]=xs[0]+10; break; case 2: ys[0]=ys[0]-10; break; case 3: xs[0]=xs[0]-10; break; case 4: ys[0]=ys[0]+10; break; default: break; } } void show_snake(Graphics g) { for (int i = 0; i < length; i++) { g.setColor(Color.BLUE); if(i==0){ g.drawOval(xs[i], ys[i], 10, 10); continue; } g.drawRect(xs[i], ys[i], 10, 10); //蛇的長度與大小 } } @Override public void run() { while(control) { try {if(can_eat()) { eat(); } if(out_bounds()) { die(); return; } if(eat_self()) { die(); return; } crawl(); Thread.sleep(200); repaint(); } catch (InterruptedException e) { e.printStackTrace(); } } }class panel extends JPanel implements ActionListener,KeyListener{ JButton startGame=new JButton('開始'); JButton stopGame=new JButton('停止'); Box box1; //盒式布局 panel(){ setLayout(new FlowLayout()); box1=Box.createHorizontalBox(); box1.add(startGame); box1.add(Box.createHorizontalStrut(2)); box1.add(stopGame); setSize(800,800); setBackground(Color.black); addKeyListener(this); //為ShellWin 對象注冊一個偵聽器 startGame.addActionListener(this); //為開始按鈕添加偵聽器,this指代的是Actionistener這個類所創建的對象 stopGame.addActionListener(this); //為結束按鈕添加偵聽器,this指代的是Actionistener這個類所創建的對象 } @Override public void actionPerformed(ActionEvent e) { if(e.getSource()==startGame) { this.requestFocus(); //將光標添加到該控件中 control=true; thread.start(); //線程開始 //*********************************** this.repaint(100,100, 600, 600); } if(e.getSource()==stopGame) { this.requestFocus(); //將光標添加到該控件中 control=false; //線程結束 } } @Override public void keyPressed(KeyEvent e) { switch (e.getKeyCode()) { case KeyEvent.VK_UP: change_direction(2); break; case KeyEvent.VK_DOWN: if(direction!=0) change_direction(4); break; case KeyEvent.VK_LEFT: change_direction(3); break; case KeyEvent.VK_RIGHT: change_direction(1); break; default: break; } } @Override public void keyReleased(KeyEvent e) { // TODO Auto-generated method stub } @Override public void keyTyped(KeyEvent e) { // TODO Auto-generated method stub } }}

文件:ShellMain.java

import javax.swing.Box;import javax.swing.JFrame;@SuppressWarnings('serial')public class ShellMain extends JFrame { ShellWin win=new ShellWin(); ShellWin.panel pan=win.new panel(); Box box,box2; ShellMain(){ box2=Box.createHorizontalBox(); box2.add(win); box=Box.createVerticalBox(); box.add(pan.box1); box.add(Box.createVerticalStrut(8)); box.add(box2); pan.add(box); setTitle('貪吃蛇'); setSize(800,800); setVisible(true); setLayout(null); add(pan); setLocation(0,0); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public static void main(String[] args) { new ShellMain(); }}

更多精彩游戲,請參考專題《java經典小游戲》

更多有趣的經典小游戲實現專題,分享給大家:

C++經典小游戲匯總

python經典小游戲匯總

python俄羅斯方塊游戲集合

JavaScript經典游戲 玩不停

javascript經典小游戲匯總

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Java
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
久久香蕉国产| 久久精品国产福利| 美女毛片一区二区三区四区最新中文字幕亚洲| 久久精品国语| 久久久久99| 色婷婷精品视频| 亚洲天堂1区| 99精品在线| 亚洲一区二区三区四区五区午夜| 欧美亚洲国产精品久久| 999国产精品视频| 狠狠操综合网| 男人的天堂亚洲一区| 日本一区二区中文字幕| 日韩高清三区| 久久这里只有精品一区二区| 亚洲精品美女91| 国产九九精品| 国产自产自拍视频在线观看| 欧美天堂视频| 中国女人久久久| 亚洲精品亚洲人成在线观看| 欧美精品中文字幕亚洲专区| 国产一区二区亚洲| 999在线观看精品免费不卡网站| 蜜臀av性久久久久蜜臀aⅴ流畅| 国产日韩高清一区二区三区在线| 成人台湾亚洲精品一区二区| 久久裸体视频| 69堂免费精品视频在线播放| 国产不卡人人| 九色精品91| 精品国产网站| 激情久久五月| 欧美日韩午夜| 激情久久中文字幕| 国产伦精品一区二区三区在线播放| 国产一区二区三区日韩精品| 国产亚洲精品自拍| 国产99在线| 免费成人av在线播放| 精品久久福利| 久久国产人妖系列| 国产亚洲精品v| 亚洲福利一区| 伊人网在线播放| 国产一区二区精品| 欧美日韩在线二区| 国产精品羞羞答答在线观看| 久久大逼视频| 亚洲大片在线| 欧美sm一区| аⅴ资源天堂资源库在线| 久久国际精品| 日本精品另类| 蜜桃视频在线观看一区| 国产字幕视频一区二区| 国产一区二区三区国产精品| 国产精品调教| 久久不见久久见国语| 青草综合视频| 蜜芽一区二区三区| 亚洲自拍另类| 亚洲人亚洲人色久| 日韩精品亚洲专区| 欧美视频精品全部免费观看| 欧美亚洲国产日韩| 青青草国产成人99久久| 国产亚洲精品精品国产亚洲综合| 亚洲精品一区二区在线播放∴| 日韩精品一级中文字幕精品视频免费观看 | 日韩高清电影免费| 日韩福利视频一区| 国产精品一区二区美女视频免费看| 91精品日本| 美女视频免费精品| 日韩欧美午夜| 在线亚洲国产精品网站| 日本aⅴ精品一区二区三区| 国产精品久一| av高清一区| 久色成人在线| 国产欧美日韩免费观看| 精品视频91| 精品久久免费| 亚洲欧美日本日韩| 国产精品色婷婷在线观看| 色在线中文字幕| 国产精品人人爽人人做我的可爱| 亚洲va久久| 欧美日韩国产观看视频| 久久男人av资源站| 精品国产一区二| 亚洲国产一区二区三区在线播放| 亚洲午夜久久久久久尤物| 日本伊人久久| 色婷婷精品视频| 国产美女亚洲精品7777| 免费成人性网站| 久久亚洲不卡| 日韩区欧美区| 午夜久久一区| 久久人人精品| 三上悠亚国产精品一区二区三区 | 久久午夜精品| 深夜视频一区二区| 国产日韩三级| 亚洲一二av| 日韩一区二区中文| 色综合视频一区二区三区日韩 | 欧美激情视频一区二区三区在线播放| 色婷婷久久久| 精品三区视频| 老鸭窝一区二区久久精品| 首页国产欧美久久| 精品捆绑调教一区二区三区| 精品视频高潮| 美女毛片一区二区三区四区最新中文字幕亚洲| 亚洲色诱最新| 亚洲精品123区| 91精品亚洲| 国产在线观看www| 久久精品国产99国产精品| 久久精品72免费观看| 青草av.久久免费一区| 亚洲精品视频一二三区| 免费日韩av片| 尹人成人综合网| 日韩视频免费| 日韩视频二区| 丝袜美腿高跟呻吟高潮一区| 日韩午夜精品| 国产精品女主播一区二区三区| 免费精品国产| 在线精品视频在线观看高清| 精品日韩视频| 久久婷婷一区| 亚洲一级二级| 综合欧美精品| 日本a口亚洲| 国产精品久久久久9999高清| 国产精品丝袜在线播放| 国产精品成人国产| 精品亚洲免a| zzzwww在线看片免费| 婷婷激情综合| 色综合视频一区二区三区日韩 | 久久久久久婷| 欧美.日韩.国产.一区.二区| 综合激情网...| 久久av国产紧身裤| 日韩欧美自拍| 性色一区二区| 久久久精品区| 1024精品久久久久久久久| 91欧美极品| 成人欧美一区二区三区的电影| 久久国产成人午夜av影院宅| 蜜臀av在线播放一区二区三区| 国产精品亚洲产品| 久久精品青草| 亚洲免费专区| 桃色一区二区| 国产精品一区免费在线| 极品裸体白嫩激情啪啪国产精品| 日韩激情一区二区| 日韩欧美三级| 亚洲2区在线| 欧美不卡视频| 精品久久美女| 日韩三级一区| 欧美日韩国产免费观看| 精品国产不卡| 日韩va亚洲va欧美va久久| 欧洲在线一区| 久久精品一区二区国产| 国产精品毛片| 日本在线精品| 国产精品亚洲成在人线| 综合激情网站| 国产模特精品视频久久久久| 中文另类视频| 国产videos久久| 国产精品宾馆| 欧美日一区二区三区在线观看国产免| 九一成人免费视频| 日韩免费高清| 成人午夜亚洲| 麻豆成人91精品二区三区| 日韩欧美激情电影| 丝袜亚洲另类欧美| 成人免费电影网址| 成人影视亚洲图片在线| 国产精品网址| 国产精品一区高清| 日韩精品欧美精品| 亚洲一区二区三区中文字幕在线观看| 亚洲欧美日韩精品一区二区 | 久久99精品久久久野外观看| 蜜桃视频在线观看一区|