java小游戏源代码急求JAVA猜数字小游戏源代码

java小游戏源代码  时间:2021-06-30  阅读:()

急需用eclipse写的小游戏代码 比如贪吃蛇,五子棋,猜数字,俄罗斯方块等的小游戏代码

新建一个project,新建一个类 把代码贴进去,找到运行(run)这个按钮,按了就能运行,找不到的话快捷键是Ctrl + F11 import java.awt.Color; import java.awt.Component; import java.awt.Graphics; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.util.ArrayList; import javax.swing.BorderFactory; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JPanel; public class SnakeGame { public static void main(String[] args) { SnakeFrame frame = new SnakeFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } } // ----------记录状态的线程 class StatusRunnable implements Runnable { public StatusRunnable(Snake snake, JLabel statusLabel, JLabel scoreLabel) { this.statusLabel = statusLabel; this.scoreLabel = scoreLabel; this.snake = snake; } public void run() { String sta = ""; String spe = ""; while (true) { switch (snake.status) { case Snake.RUNNING: sta = "Running"; break; case Snake.PAUSED: sta = "Paused"; break; case Snake.GAMEOVER: sta = "GameOver"; break; } statusLabel.setText(sta); scoreLabel.setText("" + snake.score); try { Thread.sleep(100); } catch (Exception e) { } } } private JLabel scoreLabel; private JLabel statusLabel; private Snake snake; } // ----------蛇运动以及记录分数的线程 class SnakeRunnable implements Runnable { public SnakeRunnable(Snake snake, ponent) { this.snake = snake; ponent =ponent; } public void run() { while (true) { try { snake.move(); ponent.repaint(); Thread.sleep(snake.speed); } catch (Exception e) { } } } private Snake snake; private ponent; } class Snake { boolean isRun;// ---------是否运动中 ArrayList<Node> body;// -----蛇体 Node food;// --------食物 int derection;// --------方向 int score; int status; int speed; public static final int SLOW = 500; public static final int MID = 300; public static final int FAST = 100; public static final int RUNNING = 1; public static final int PAUSED = 2; public static final int GAMEOVER = 3; public static final int LEFT = 1; public static final int UP = 2; public static final int RIGHT = 3; public static final int DOWN = 4; public Snake() { speed = Snake.SLOW; score = 0; isRun = false; status = Snake.PAUSED; derection = Snake.RIGHT; body = new ArrayList<Node>(); body.add(new Node(60, 20)); body.add(new Node(40, 20)); body.add(new Node(20, 20)); makeFood(); } // ------------判断食物是否被蛇吃掉 // -------如果食物在蛇运行方向的正前方,并且与蛇头接触,则被吃掉 private boolean isEaten() { Node head = body.get(0); if (derection == Snake.RIGHT && (head.x + Node.W) == food.x && head.y == food.y) return true; if (derection == Snake.LEFT && (head.x - Node.W) == food.x && head.y == food.y) return true; if (derection == Snake.UP && head.x == food.x && (head.y - Node.H) == food.y) return true; if (derection == Snake.DOWN && head.x == food.x && (head.y + Node.H) == food.y) return true; else return false; } // ----------是否碰撞 private boolean isCollsion() { Node node = body.get(0); // ------------碰壁 if (derection == Snake.RIGHT && node.x == 280) return true; if (derection == Snake.UP && node.y == 0) return true; if (derection == Snake.LEFT && node.x == 0) return true; if (derection == Snake.DOWN && node.y == 380) return true; // --------------蛇头碰到蛇身 Node temp = null; int i = 0; for (i = 3; i < body.size(); i++) { temp = body.get(i); if (temp.x == node.x && temp.y == node.y) break; } if (i < body.size()) return true; else return false; } // -------在随机的地方产生食物 public void makeFood() { Node node = new Node(0, 0); boolean isInBody = true; int x = 0, y = 0; int X = 0, Y = 0; int i = 0; while (isInBody) { x = (int) (Math.random() * 15); y = (int) (Math.random() * 20); X = x * Node.W; Y = y * Node.H; for (i = 0; i < body.size(); i++) { if (X == body.get(i).x && Y == body.get(i).y) break; } if (i < body.size()) isInBody = true; else isInBody = false; } food = new Node(X, Y); } // ---------改变运行方向 public void changeDerection(int newDer) { if (derection % 2 != newDer % 2)// -------如果与原来方向相同或相反,则无法改变 derection = newDer; } public void move() { if (isEaten()) {// -----如果食物被吃掉 body.add(0, food);// --------把食物当成蛇头成为新的蛇体 score += 10; makeFood();// --------产生食物 } else if (isCollsion())// ---------如果碰壁或自身 { isRun = false; status = Snake.GAMEOVER;// -----结束 } else if (isRun) {// ----正常运行(不吃食物,不碰壁,不碰自身) Node node = body.get(0); int X = node.x; int Y = node.y; // ------------蛇头按运行方向前进一个单位 switch (derection) { case 1: X -= Node.W; break; case 2: Y -= Node.H; break; case 3: X += Node.W; break; case 4: Y += Node.H; break; } body.add(0, new Node(X, Y)); // ---------------去掉蛇尾 body.remove(body.size() - 1); } } } // ---------组成蛇身的单位,食物 class Node { public static final int W = 20; public static final int H = 20; int x; int y; public Node(int x, int y) { this.x = x; this.y = y; } } // ------画板 class SnakePanel extends JPanel { Snake snake; public SnakePanel(Snake snake) { this.snake = snake; } public void paintComponent(Graphics g) { super.paintComponent(g); Node node = null; for (int i = 0; i < snake.body.size(); i++) {// ---红蓝间隔画蛇身 if (i % 2 == 0) g.setColor(Color.blue); else g.setColor(Color.yellow); node = snake.body.get(i); g.fillRect(node.x, node.y, node.H, node.W);// *******************试用********************* } node = snake.food; g.setColor(Color.red); g.fillRect(node.x, node.y, node.H, node.W); } } class SnakeFrame extends JFrame { private JLabel statusLabel; private JLabel speedLabel; private JLabel scoreLabel; private JPanel snakePanel; private Snake snake; private JMenuBar bar; JMenu gameMenu; JMenu helpMenu; JMenu speedMenu; JMenuItem newItem; JMenuItem pauseItem; JMenuItem beginItem; JMenuItem helpItem; JMenuItem aboutItem; JMenuItem slowItem; JMenuItem midItem; JMenuItem fastItem; public SnakeFrame() { init(); ActionListener l = new ActionListener() { public void actionPerformed(ActionEvent e) { if (e.getSource() == pauseItem) snake.isRun = false; if (e.getSource() == beginItem) snake.isRun = true; if (e.getSource() == newItem) { newGame(); } // ------------菜单控制运行速度 if (e.getSource() == slowItem) { snake.speed = Snake.SLOW; speedLabel.setText("Slow"); } if (e.getSource() == midItem) { snake.speed = Snake.MID; speedLabel.setText("Mid"); } if (e.getSource() == fastItem) { snake.speed = Snake.FAST; speedLabel.setText("Fast"); } } }; pauseItem.addActionListener(l); beginItem.addActionListener(l); newItem.addActionListener(l); aboutItem.addActionListener(l); slowItem.addActionListener(l); midItem.addActionListener(l); fastItem.addActionListener(l); addKeyListener(new KeyListener() { public void keyPressed(KeyEvent e) { switch (e.getKeyCode()) { // ------------方向键改变蛇运行方向 case KeyEvent.VK_DOWN:// snake.changeDerection(Snake.DOWN); break; case KeyEvent.VK_UP:// snake.changeDerection(Snake.UP); break; case KeyEvent.VK_LEFT:// snake.changeDerection(Snake.LEFT); break; case KeyEvent.VK_RIGHT:// snake.changeDerection(Snake.RIGHT); break; // 空格键,游戏暂停或继续 case KeyEvent.VK_SPACE:// if (snake.isRun == true) { snake.isRun = false; snake.status = Snake.PAUSED; break; } if (snake.isRun == false) { snake.isRun = true; snake.status = Snake.RUNNING; break; } } } public void keyReleased(KeyEvent k) { } public void keyTyped(KeyEvent k) { } }); } private void init() { speedLabel = new JLabel(); snake = new Snake(); setSize(380, 460); setLayout(null); this.setResizable(false); bar = new JMenuBar(); gameMenu = new JMenu("Game"); newItem = new JMenuItem("New Game"); gameMenu.add(newItem); pauseItem = new JMenuItem("Pause"); gameMenu.add(pauseItem); beginItem = new JMenuItem("Continue"); gameMenu.add(beginItem); helpMenu = new JMenu("Help"); aboutItem = new JMenuItem("About"); helpMenu.add(aboutItem); speedMenu = new JMenu("Speed"); slowItem = new JMenuItem("Slow"); fastItem = new JMenuItem("Fast"); midItem = new JMenuItem("Middle"); speedMenu.add(slowItem); speedMenu.add(midItem); speedMenu.add(fastItem); bar.add(gameMenu); bar.add(helpMenu); bar.add(speedMenu); setJMenuBar(bar); statusLabel = new JLabel(); scoreLabel = new JLabel(); snakePanel = new JPanel(); snakePanel.setBounds(0, 0, 300, 400); snakePanel.setBorder(BorderFactory.createLineBorder(Color.darkGray)); add(snakePanel); statusLabel.setBounds(300, 25, 60, 20); add(statusLabel); scoreLabel.setBounds(300, 20, 60, 20); add(scoreLabel); JLabel temp = new JLabel("状态"); temp.setBounds(310, 5, 60, 20); add(temp); temp = new JLabel("分数"); temp.setBounds(310, 105, 60, 20); add(temp); temp = new JLabel("速度"); temp.setBounds(310, 55, 60, 20); add(temp); speedLabel.setBounds(310, 75, 60, 20); add(speedLabel); } private void newGame() { this.remove(snakePanel); this.remove(statusLabel); this.remove(scoreLabel); speedLabel.setText("Slow"); statusLabel = new JLabel(); scoreLabel = new JLabel(); snakePanel = new JPanel(); snake = new Snake(); snakePanel = new SnakePanel(snake); snakePanel.setBounds(0, 0, 300, 400); snakePanel.setBorder(BorderFactory.createLineBorder(Color.darkGray)); Runnable r1 = new SnakeRunnable(snake, snakePanel); Runnable r2 = new StatusRunnable(snake, statusLabel, scoreLabel); Thread t1 = new Thread(r1); Thread t2 = new Thread(r2); t1.start(); t2.start(); add(snakePanel); statusLabel.setBounds(310, 25, 60, 20); add(statusLabel); scoreLabel.setBounds(310, 125, 60, 20); add(scoreLabel); } }

怎么用JAVA来写一个小游戏程序

import java.util.*; import java.io.*; public class CaiShu{ public static void main(String[] args) throws IOException{ Random a=new Random(); int num=a.nextInt(100); System.out.println("请输入一个100以内的整数:"); for (int i=0;i<=9;i++){ BufferedReader bf=new BufferedReader(new InputStreamReader(System.in)); String str=bf.readLine(); int shu=Integer.parseInt(str); if (shu>num) System.out.println("输入的数大了,输小点的!"); else if (shu<num) System.out.println("输入的数小了,输大点的!"); else { System.out.println("恭喜你,猜对了!"); if (i<=2) System.out.println("你真是个天才!"); else if (i<=6) System.out.println("还将就,你过关了!"); else if (i<=8) System.out.println("但是你还……真笨!"); else System.out.println("你和猪没有两样了!"); break;} } } }

急求JAVA猜数字小游戏源代码

以前做个一个类似的例子,希望能够帮你,改下就好了! /*1、编写一个猜数字的游戏,由电脑随机产生一个100以内的整数,让用户去猜,如果用户猜的比电脑大,则输出“大了,再小点!”,反之则输出“小了,再大点!”,用户总共只能猜十次,并根据用户正确猜出答案所用的次数输出相应的信息,如:只用一次就猜对,输出“你是个天才!”,八次才猜对,输出“笨死了!”,如果十次还没有猜对,则游戏结束!*/ import java.util.*; import java.io.*; public class CaiShu{ public static void main(String[] args) throws IOException{ Random a=new Random(); int num=a.nextInt(100); System.out.println("请输入一个100以内的整数:"); for (int i=0;i<=9;i++){ BufferedReader bf=new BufferedReader(new InputStreamReader(System.in)); String str=bf.readLine(); int shu=Integer.parseInt(str); if (shu>num) System.out.println("输入的数大了,输小点的!"); else if (shu<num) System.out.println("输入的数小了,输大点的!"); else { System.out.println("恭喜你,猜对了!"); if (i<=2) System.out.println("你真是个天才!"); else if (i<=6) System.out.println("还将就,你过关了!"); else if (i<=8) System.out.println("但是你还……真笨!"); else System.out.println("你和猪没有两样了!"); break;} } } }

AkkoCloud(60元/月 ),英国伦敦CN2 1核 768 MB 内存 10 GB SSD 硬盘 600GB 流量 英国伦敦CN2 1核  1.5G  300Mbps

官方网站:https://www.akkocloud.com/AkkoCloud新品英国伦敦CN2 GIA已上线三网回程CN2 GIA 国内速度优秀.电信去程CN2 GIALooking Glass:http://lonlg.akkocloud.com/Speedtest:http://lonlg.akkocloud.com/speedtest/新品上线刚好碰上国庆节 特此放上国庆专属九折循环优惠...

virmach:3.23美元用6个月,10G硬盘/VirMach1核6个月Virmach

virmach这是第二波出这种一次性周期的VPS了,只需要缴费1一次即可,用完即抛,也不允许你在后面续费。本次促销的是美国西海岸的圣何塞和美国东海岸的水牛城,周期为6个月,过后VPS会被自动且是强制性取消。需要临时玩玩的,又不想多花钱的用户,可以考虑下!官方网站:https://www.virmach.comTemporary Length Service Specials圣何塞VPS-一次性6个...

简单测评v5.net的美国cn2云服务器:电信双程cn2+联通AS9929+移动直连

v5.net一直做独立服务器这块儿的,自从推出云服务器(VPS)以来站长一直还没有关注过,在网友的提醒下弄了个6G内存、2核、100G SSD的美国云服务器来写测评,主机测评给大家趟雷,让你知道v5.net的美国云服务器效果怎么样。本次测评数据仅供参考,有兴趣的还是亲自测试吧! 官方网站:https://v5.net/cloud.html 从显示来看CPU是e5-2660(2.2GHz主频),...

java小游戏源代码为你推荐
bean是什么意思bean层的作用是什么短信营销方案家装短信营销如何进行才有效?国家法规数据库在哪里可以找到比较全面的法律法规更新的信息?sdfsdfsdfsdf世界上最大的一块金砖有多重?手机软件开发工具做安卓软件开发需要哪些工具?netbios协议机子上启动了netbios协议,为什么还是运行不了netbios命令selectintooracle有select into临时表的用法吗sms是什么什么是SMS协议全局钩子delphi 键盘全局钩子网站客服代码如何将在线客服代码插入到您的网页中?
免备案虚拟主机 怎样注册域名 星星海 z.com linkcloud godaddy域名优惠码 云主机51web css样式大全 mysql主机 最好的免费空间 泉州电信 美国网站服务器 hkt 流媒体加速 in域名 drupal安装 移动服务器托管 1元域名 广州虚拟主机 阿里云邮箱登陆 更多