求各位新老朋友提供下,简单小游戏就好了

解决方案 »

  1.   

    扫雷swing强的话就去做坦克大战
      

  2.   

    关键是我从网上下的小游戏不能在我的JDK下重新编译和执行,我最起码把作者名字改了吧哪位老大能给个好点子的?
    我的JDK版本是jdk1.6.0_02感激就不用强调了吧,第一份工作,肯定都很急迫的,好心人帮解决后下次争取自己解决自己开发(主要是慢和不熟,老大只给我半天时间就要看效果)
      

  3.   


    不要下jar包要下源代码=。=
      

  4.   


    谢谢你的回答,但我已经下了源码,但是作者编的源码是老版本的JDK开发的,在我的机子上没法编译和执行啊
      

  5.   

    不肯能JDK1.6不兼容以前版本吧
      

  6.   

    网上有坦克大战跟俄罗斯方块的代码
    超级玛丽的也有
    google一下
      

  7.   

    你老大够狠的,新人还要做一个游戏出来。我对swing也有一定了解了,还从没搞过游戏。
      

  8.   

    居然没有人贴代码·贴两个游戏吗~
    扫雷:import javax.swing.JButton;public class MyButton extends JButton {
    /**
     * 
     */
    private static final long serialVersionUID = 1L;
    private boolean b1;
    private boolean b2;
    private int row;
    private int col; public MyButton(String text, boolean b1, boolean b2, int row, int col) {
    setText(text);
    this.b1 = b1;
    this.b2 = b2;
    this.col = col;
    this.row = row;
    } public MyButton(int row, int col) {
    this("", false, false, row, col);
    } public MyButton(String text, int row, int col) {
    this(text, false, false, row, col);
    } public void setB1(boolean b1) {
    this.b1 = b1;
    } public void setB2(boolean b2) {
    this.b2 = b2;
    } public boolean getB1() {
    return b1;
    } public boolean getB2() {
    return b2;
    } public int getRow() {
    return row;
    } public int getCol() {
    return col;
    }}
    import java.awt.BorderLayout;
    import java.awt.Container;
    import java.awt.GridLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;import javax.swing.ButtonGroup;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JMenu;
    import javax.swing.JMenuBar;
    import javax.swing.JMenuItem;
    import javax.swing.JPanel;
    import javax.swing.JRadioButtonMenuItem;
    import javax.swing.Timer;public class MyFirstGame {
    private JFrame f;
    private Container con;
    private JPanel pUp, pDown;
    private JMenuItem item1;
    private JMenuItem item2;
    private JMenuItem exitItem;
    private JButton btn;
    private MyButton[][] btns;
    private JLabel l1;
    private JLabel l2;
    private Timer timer;
    private int sum;
    private int rows;
    private int cols;
    private int temp;
    private boolean flag; public MyFirstGame() { f = new JFrame("");
    con = f.getContentPane();
    pUp = new JPanel();
    pDown = new JPanel();
    con.add(pUp, BorderLayout.NORTH);
    con.add(pDown); // 处理Game菜单!!
    JMenuBar bar = new JMenuBar();
    JMenu menu = new JMenu("Game");
    item1 = new JRadioButtonMenuItem("Normal");
    item2 = new JRadioButtonMenuItem("Hard");
    exitItem = new JMenuItem("Exit"); MenuActionListener listener = new MenuActionListener();
    item1.addActionListener(listener);
    item2.addActionListener(listener);
    exitItem.addActionListener(listener); menu.addSeparator();
    menu.add(item1);
    menu.add(item2);
    menu.addSeparator();
    menu.add(exitItem); bar.add(menu); f.setJMenuBar(bar); ButtonGroup bg = new ButtonGroup();
    bg.add(item1);
    bg.add(item2); reset(9, 9, 10); timer = new Timer(1000, new TimerActionListener());
    f.setResizable(false);
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f.setVisible(true);
    } private void reset(int rows, int cols, int sum) {
    this.rows = rows;
    this.cols = cols;
    this.sum = sum;
    temp = rows * cols - sum;
    flag = false; if (sum == 10)
    item1.setSelected(true);
    if (sum == 40)
    item2.setSelected(true); pUp.removeAll();
    pUp.setLayout(new GridLayout(1, 3));
    l1 = new JLabel(sum + "");
    pUp.add(l1);
    btn = new JButton("Restart");
    btn.addActionListener(new StartActionListener());
    pUp.add(btn); l2 = new JLabel("0");
    pUp.add(l2); pDown.removeAll();
    pDown.setLayout(new GridLayout(rows, cols));
    btns = new MyButton[rows][cols]; initBtns(); f.pack();
    f.validate();
    } private void initBtns() {
    double temp = (double) sum / (rows * cols);
    int num1 = sum;
    int num2 = rows * cols;
    for (int i = 0; i < btns.length; i++) {
    for (int j = 0; j < btns[i].length; j++) {
    double random = Math.random();
    if (num1 == 0) {
    btns[i][j] = new MyButton("ㅂ", i, j);
    num2--;
    } else if (num1 == num2) {
    btns[i][j] = new MyButton("ㅂ", false, true, i, j);
    num1--;
    num2--;
    } else if (random > temp) {
    btns[i][j] = new MyButton("ㅂ", i, j);
    num2--;
    } else if (random <= temp) {
    btns[i][j] = new MyButton("ㅂ", false, true, i, j);
    num1--;
    num2--;
    }
    pDown.add(btns[i][j]);
    btns[i][j].addMouseListener(new NormalMouseListener());
    }
    }
    } class TimerActionListener implements ActionListener {
    public void actionPerformed(ActionEvent e) {
    l2.setText(Integer.parseInt(l2.getText()) + 1 + "");
    }
    }; class MenuActionListener implements ActionListener {
    public void actionPerformed(ActionEvent e) {
    Object source = e.getSource();
    // get information of the button that be push
    if (source == item1) {
    item1.setSelected(true);
    // the method setSelected:set up the menu is selected or not!
    reset(9, 9, 10);
    } else if (source == item2) {
    item2.setSelected(true);
    reset(16, 16, 40);
    } else {
    System.exit(0);
    }
    }
    }; class StartActionListener implements ActionListener {
    public void actionPerformed(ActionEvent e) {
    if (item1.isSelected() == true)
    reset(9, 9, 10);
    else if (item2.isSelected() == true)
    reset(16, 16, 40);
    }
    }; class NormalMouseListener extends MouseAdapter {
    public void mouseClicked(MouseEvent e) {
    if (!flag) {
    timer.start();
    flag = true;
    } MyButton btn = (MyButton) e.getSource(); if (btn.isEnabled() == false)
    return; if (e.getButton() == MouseEvent.BUTTON1/* 鼠标左键 */) {
    if (btn.getText().equals("*"))
    l1.setText(Integer.parseInt(l1.getText()) + 1 + ""); if (btn.getB2() == true) {
    l2.setText("Game over ,You lose!!!!");
    showAll();
    } else {
    showLeave(btn.getRow(), btn.getCol());
    }
    } else if (e.getButton() == MouseEvent.BUTTON3/* 鼠标右键 */) {
    if (btn.getText().equals("*")) {
    btn.setText("ㅂ");
    l1.setText(Integer.parseInt(l1.getText()) + 1 + "");
    } else {
    btn.setText("*");
    l1.setText(Integer.parseInt(l1.getText()) - 1 + "");
    }
    }
    f.validate();
    } // 显示所有MyButton信息
    private void showAll() {
    timer.stop();
    for (int i = 0; i < btns.length; i++) {
    for (int j = 0; j < btns[i].length; j++) {
    if (btns[i][j].getB2() == true)
    btns[i][j].setText("*");
    else {
    int num = check(i, j);
    if (num == 0)
    btns[i][j].setText("");
    else
    btns[i][j].setText("" + num);
    }
    btns[i][j].setEnabled(false);
    }
    }
    } // 显示点击MyButton应显示的信息!
    private void showLeave(int row, int col) { int num = check(row, col); btns[row][col].setB1(true);
    if (--temp == 0) {
    l2.setText("you win take " + l2.getText() + "seconds!");
    showAll();
    }
    btns[row][col].setEnabled(false); if (num > 0)
    btns[row][col].setText("" + num);
    else {
    btns[row][col].setText(""); if (row - 1 >= 0 && col - 1 >= 0
    && btns[row - 1][col - 1].getB1() == false) {
    showLeave(row - 1, col - 1);
    }
    if (row - 1 >= 0 && btns[row - 1][col].getB1() == false) {
    showLeave(row - 1, col);
    }
    if (row - 1 >= 0 && col + 1 < cols
    && btns[row - 1][col + 1].getB1() == false) {
    showLeave(row - 1, col + 1);
    }
    if (col - 1 >= 0 && btns[row][col - 1].getB1() == false) {
    showLeave(row, col - 1);
    }
    if (col + 1 < cols && btns[row][col + 1].getB1() == false) {
    showLeave(row, col + 1);
    }
    if (row + 1 < rows && col - 1 >= 0
    && btns[row + 1][col - 1].getB1() == false) {
    showLeave(row + 1, col - 1);
    }
    if (row + 1 < rows && btns[row + 1][col].getB1() == false) {
    showLeave(row + 1, col);
    }
    if (row + 1 < rows && col + 1 < cols
    && btns[row + 1][col + 1].getB1() == false) {
    showLeave(row + 1, col + 1);
    }
    }
    } // 检查周围地雷数量
    private int check(int row, int col) {
    int count = 0;
    if (row - 1 >= 0 && col - 1 >= 0
    && btns[row - 1][col - 1].getB2() == true)
    count++;
    if (row - 1 >= 0 && btns[row - 1][col].getB2() == true)
    count++;
    if (row - 1 >= 0 && col + 1 < cols
    && btns[row - 1][col + 1].getB2() == true)
    count++;
    if (col - 1 >= 0 && btns[row][col - 1].getB2() == true)
    count++;
    if (col + 1 < cols && btns[row][col + 1].getB2() == true)
    count++;
    if (row + 1 < rows && col - 1 >= 0
    && btns[row + 1][col - 1].getB2() == true)
    count++;
    if (row + 1 < rows && btns[row + 1][col].getB2() == true)
    count++;
    if (row + 1 < rows && col + 1 < cols
    && btns[row + 1][col + 1].getB2() == true)
    count++;
    return count;
    }
    }; public static void main(String[] args) {
    new MyFirstGame();
    }
    }
      

  9.   


    俄罗斯方块--这个论坛上面有~//@id jfreeChar.g.java is created by jiangwh 下午12:32:46/2010-6-22
    package game;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 javax.swing.JFrame;
    import javax.swing.JMenu;
    import javax.swing.JMenuBar;
    import javax.swing.JMenuItem;
    import javax.swing.JOptionPane;
    import javax.swing.JPanel;
    import javax.swing.Timer;public class Tetris extends JFrame {
    private static final long serialVersionUID = 1L; public Tetris() {
    Tetrisblok a = new Tetrisblok();
    addKeyListener(a);
    add(a); } /**
     * @desc:界面部分
     * @param args
     */
    public static void main(String[] args) {
    Tetris frame = new Tetris();
    JMenuBar menu = new JMenuBar();
    frame.setJMenuBar(menu);
    JMenu game = new JMenu("游戏");
    JMenuItem newgame = game.add("新游戏");
    JMenuItem pause = game.add("暂停");
    JMenuItem goon = game.add("继续");
    JMenuItem exit = game.add("退出");
    JMenu help = new JMenu("帮助");
    JMenuItem about = help.add("关于");
    menu.add(game);
    menu.add(help);
    frame.setLocationRelativeTo(null);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setSize(220, 275);
    frame.setTitle("Tetris内测版");
    // frame.setUndecorated(true);
    frame.setVisible(true);
    frame.setResizable(false);
    }
    }// 创建一个俄罗斯方块类
    class Tetrisblok extends JPanel implements KeyListener { // blockType 代表方块类型
    // turnState代表方块状态
    private int blockType;
    private int score = 0;
    private int turnState;
    private int x;
    private int y;
    private int i = 0;
    int j = 0;
    int flag = 0;
    // 定义已经放下的方块x=0-11,y=0-21;
    int[][] map = new int[13][23];
    // 方块的形状 第一组代表方块类型有S、Z、L、J、I、O、T 7种 第二组 代表旋转几次 第三四组为 方块矩阵
    private final int shapes[][][] = new int[][][] {
    // i
    { { 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0 },
    { 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0 } },
    // s
    { { 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 },
    { 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
    // z
    { { 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 },
    { 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
    // j
    { { 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0 },
    { 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 },
    { 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
    // o
    { { 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
    // l
    { { 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0 },
    { 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 },
    { 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
    // t
    { { 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 },
    { 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0 } } }; // 生成新方块的方法
    public void newblock() {
    blockType = (int) (Math.random() * 1000) % 7;
    turnState = (int) (Math.random() * 1000) % 4;
    x = 4;
    y = 0;
    if (gameover(x, y) == 1) {
    newmap();
    drawwall();
    score = 0;
    JOptionPane.showMessageDialog(null, "GAME OVER");
    }
    } // 画围墙
    public void drawwall() {
    for (i = 0; i < 12; i++) {
    map[i][21] = 2;
    }
    for (j = 0; j < 22; j++) {
    map[11][j] = 2;
    map[0][j] = 2;
    }
    } // 初始化地图
    public void newmap() {
    for (i = 0; i < 12; i++) {
    for (j = 0; j < 22; j++) {
    map[i][j] = 0;
    }
    }
    } // 初始化构造方法
    Tetrisblok() {
    newblock();
    newmap();
    drawwall();
    Timer timer = new Timer(1000, new TimerListener());
    timer.start();
    } // 旋转的方法
    public void turn() {
    int tempturnState = turnState;
    turnState = (turnState + 1) % 4;
    if (blow(x, y, blockType, turnState) == 1) {
    }
    if (blow(x, y, blockType, turnState) == 0) {
    turnState = tempturnState;
    }
    repaint();
    } // 左移的方法
    public void left() {
    if (blow(x - 1, y, blockType, turnState) == 1) {
    x = x - 1;
    }
    ;
    repaint();
    } // 右移的方法
    public void right() {
    if (blow(x + 1, y, blockType, turnState) == 1) {
    x = x + 1;
    }
    ;
    repaint();
    } // 下落的方法
    public void down() {
    if (blow(x, y + 1, blockType, turnState) == 1) {
    y = y + 1;
    delline();
    }
    ;
    if (blow(x, y + 1, blockType, turnState) == 0) {
    add(x, y, blockType, turnState);
    newblock();
    delline();
    }
    ;
    repaint();
    } // 是否合法的方法
    public int blow(int x, int y, int blockType, int turnState) {
    for (int a = 0; a < 4; a++) {
    for (int b = 0; b < 4; b++) {
    if (((shapes[blockType][turnState][a * 4 + b] == 1) && (map[x
    + b + 1][y + a] == 1))
    || ((shapes[blockType][turnState][a * 4 + b] == 1) && (map[x
    + b + 1][y + a] == 2))) { return 0;
    }
    }
    }
    return 1;
    } // 消行的方法
    public void delline() {
    int c = 0;
    for (int b = 0; b < 22; b++) {
    for (int a = 0; a < 12; a++) {
    if (map[a][b] == 1) {
    c = c + 1;
    if (c == 10) {
    score += 10;
    for (int d = b; d > 0; d--) {
    for (int e = 0; e < 11; e++) {
    map[e][d] = map[e][d - 1];
    }
    }
    }
    }
    }
    c = 0;
    }
    } // 判断你挂的方法
    public int gameover(int x, int y) {
    if (blow(x, y, blockType, turnState) == 0) {
    return 1;
    }
    return 0;
    } // 把当前添加map
    public void add(int x, int y, int blockType, int turnState) {
    int j = 0;
    for (int a = 0; a < 4; a++) {
    for (int b = 0; b < 4; b++) {
    if (map[x + b + 1][y + a] == 0) {
    map[x + b + 1][y + a] = shapes[blockType][turnState][j];
    }
    ;
    j++;
    }
    }
    } // 画方块的的方法
    public void paintComponent(Graphics g) {
    super.paintComponent(g);
    // 画当前方块
    for (j = 0; j < 16; j++) {
    if (shapes[blockType][turnState][j] == 1) {
    g.fillRect((j % 4 + x + 1) * 10, (j / 4 + y) * 10, 10, 10);
    }
    }
    // 画已经固定的方块
    for (j = 0; j < 22; j++) {
    for (i = 0; i < 12; i++) {
    if (map[i][j] == 1) {
    g.fillRect(i * 10, j * 10, 10, 10); }
    if (map[i][j] == 2) {
    g.drawRect(i * 10, j * 10, 10, 10);
    }
    }
    }
    g.drawString("score=" + score, 125, 10);
    g.drawString("抵制不良游戏,", 125, 50);
    g.drawString("拒绝盗版游戏。", 125, 70);
    g.drawString("注意自我保护,", 125, 90);
    g.drawString("谨防受骗上当。", 125, 110);
    g.drawString("适度游戏益脑,", 125, 130);
    g.drawString("沉迷游戏伤身。", 125, 150);
    g.drawString("合理安排时间,", 125, 170);
    g.drawString("享受健康生活。", 125, 190);
    } // 键盘监听
    public void keyPressed(KeyEvent e) {
    switch (e.getKeyCode()) {
    case KeyEvent.VK_DOWN:
    down();
    break;
    case KeyEvent.VK_UP:
    turn();
    break;
    case KeyEvent.VK_RIGHT:
    right();
    break;
    case KeyEvent.VK_LEFT:
    left();
    case KeyEvent.VK_S:
    down();
    break;
    case KeyEvent.VK_W:
    turn();
    break;
    case KeyEvent.VK_D:
    right();
    break;
    case KeyEvent.VK_A:
    left();
    break;
    }
    } // 无用
    public void keyReleased(KeyEvent e) {
    } // 无用
    public void keyTyped(KeyEvent e) {
    } // 定时器监听
    class TimerListener implements ActionListener {
    public void actionPerformed(ActionEvent e) { repaint();
    if (blow(x, y + 1, blockType, turnState) == 1) {
    y = y + 1;
    delline();
    }
    if (blow(x, y + 1, blockType, turnState) == 0) {
    if (flag == 1) {
    // 界面上面增加图形
    add(x, y, blockType, turnState);
    // 消行
    delline();
    // 新块
    newblock();
    flag = 0;
    }
    flag = 1;
    }
    }
    }
    }
    //这个是copy他人的·
      

  10.   

       哥们你太有才了啊
       war3 你知道是多少人开发的不,有多少人测试啊