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

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

java編寫簡易貪吃蛇游戲

瀏覽:21日期: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久久久久久中文字幕一区| 国产日韩精品视频一区二区三区| 亚欧成人精品| 国产精品久久久久9999高清| 亚洲精品日本| 爽爽淫人综合网网站| 亚洲精品一二三区区别| 天堂资源在线亚洲| av资源亚洲| 欧美成人午夜| 亚洲人成亚洲精品| 国产精品**亚洲精品| 91日韩欧美| 在线精品一区二区| 免费欧美一区| 久久av网址| 日本在线成人| 国产99久久| 欧美一区精品| 国产综合视频| 欧美日韩三区| 色8久久久久| 中文字幕av一区二区三区四区| 久久中文字幕av| 久久午夜影院| 亚洲美洲欧洲综合国产一区| 亚洲日本久久| 国产精品115| 亚洲综合电影一区二区三区| 国产欧美日韩亚洲一区二区三区| a天堂资源在线| 日韩精品1区| 九九久久国产| 国产综合亚洲精品一区二| 高清av不卡| 国精品一区二区| 中文国产一区| 一区二区三区视频免费观看| 日韩一区二区免费看| 精品精品国产三级a∨在线| 一区二区亚洲视频| 奇米色欧美一区二区三区| 久久久免费人体| 日韩精品国产精品| 日av在线不卡| 色综合狠狠操| 亚洲乱码视频| 欧美精品福利| 黄色网一区二区| 日本强好片久久久久久aaa| 欧美 日韩 国产一区二区在线视频| 精品一区二区男人吃奶 | 蜜桃视频欧美| 性色av一区二区怡红| 国产亚洲精品精品国产亚洲综合| 中文字幕视频精品一区二区三区| 蜜臀精品久久久久久蜜臀| 青青伊人久久| 国产精品免费99久久久| 婷婷综合六月| 国产自产自拍视频在线观看| 国产激情精品一区二区三区| 狠狠久久伊人中文字幕| 日韩欧美精品| 久久精品在线| 婷婷综合六月| 精品国模一区二区三区| 久久亚洲黄色| www.com.cn成人| 首页国产精品| 国产极品嫩模在线观看91精品| а√在线中文在线新版| 香蕉精品视频在线观看| 亚洲久久一区| 欧美精品不卡| 99热精品在线观看| 国产精成人品2018| 欧美日韩免费观看一区=区三区 | 国产欧美日韩在线观看视频| 在线看片国产福利你懂的| 亚洲丝袜啪啪| 91tv亚洲精品香蕉国产一区| 欧美日韩中出| 在线精品视频一区| 激情欧美丁香| 丝袜美腿一区二区三区| 亚州精品视频| 欧美在线首页| 欧美在线黄色| 日韩欧美一区二区三区免费观看| 热三久草你在线| 日韩在线中文| 日韩精品中文字幕吗一区二区| 国产精品久久久久久久久久齐齐| 99精品一区| 国产精品第十页| 久久中文亚洲字幕| 视频在线观看91| 欧美特黄a级高清免费大片a级| 欧美sss在线视频| 免费观看久久av| 麻豆国产精品777777在线| 国产日产高清欧美一区二区三区 | 91久久午夜| 欧美国产中文高清| 少妇精品久久久一区二区| 尹人成人综合网| 久久国产欧美| 国产精品xx| 精品亚洲a∨| 欧美国产日韩电影| 国产精品免费精品自在线观看| 日韩视频一二区| 亚洲黄色影院| 久久九九99| 欧产日产国产精品视频| 色爱综合网欧美| 黄色欧美在线| 精品欧美激情在线观看| 日韩一区二区三免费高清在线观看| 精品国内亚洲2022精品成人| 欧美国产亚洲精品| 91精品国产一区二区在线观看| 日韩精品免费一区二区在线观看 | 日韩中文视频| 欧美另类综合| 色婷婷久久久| 视频一区中文字幕| 亚洲精品国产偷自在线观看| 香蕉久久久久久久av网站| 国产精品日本欧美一区二区三区| 中文字幕人成乱码在线观看 | 麻豆传媒一区二区三区| 三级在线看中文字幕完整版| 国产欧美精品久久| 麻豆91精品视频| 国产精品久久久久久久久久久久久久久| 红桃视频国产精品| 在线亚洲自拍| 日韩久久99| 精品国产黄a∨片高清在线| 高清一区二区三区av| 群体交乱之放荡娇妻一区二区| 国产亚洲高清在线观看| 一区二区三区四区日韩| 91九色精品| 久久狠狠亚洲综合| 丝袜国产日韩另类美女| 日本欧美大码aⅴ在线播放| 亚洲黄色在线| 亚洲最新av| 日韩高清中文字幕一区| 精品国产免费人成网站| 日韩深夜视频| 精品国产三区在线| 中文字幕亚洲影视| 亚洲欧美久久久| 国产精品美女午夜爽爽| 欧美日韩精品一区二区三区视频 | 在线国产精品一区| 香蕉久久夜色精品国产| 欧美激情三区| 欧美在线亚洲综合一区| 精品视频一二| 亚洲精品韩国| 视频一区在线视频| 日韩欧美一区二区三区在线视频 | 激情综合自拍| 免费看日韩精品| 青青草伊人久久| 91精品二区| 日本久久一区| 亚洲影视一区二区三区| 亚洲精品系列| 中文字幕系列一区| 免费精品视频| 美女一区网站| 欧美综合国产| 你懂的网址国产 欧美| 在线手机中文字幕| 国产精品美女久久久久久不卡| 亚洲最新无码中文字幕久久 | 国产毛片一区| 久久一区精品| 韩日一区二区三区| 蜜桃久久久久久| 久久久国产精品一区二区中文|