格斯文档网

您现在的位置是:格斯文档网 > 心得体会 >

java小游戏源代码

 Java 小游戏 第一个Java 文件:

 import java.util.Scanner;

 public class GameA_B {

 public static void main(String[] args) {

 Scanner reader=new Scanner(System.in);

  int area;

  System.out.println("Game Start…………Please enter the area:(1-9)" +

 "\n"+"1,2,3 means easy"+"\n"+"4,5,6 means middle"+"\n"+

 "7,8,9 means hard"+"\n"+"Please choose:");

 area=reader.nextInt();

 switch((area-1)/3)

 {

 case 0:System.out.println("You choose easy! ");break;

 case 1:System.out.println("You choose middle! ");break;

 case 2:System.out.println("You choose hard! ");break;

 }

 System.out.println("Good Luck!");

 GameProcess game1=new GameProcess(area);

  game1.process();

 }

 }

  第二个 Java 文件:

 import java.util.Random; import java.util.Scanner;

 public class GameProcess {

 int area,i,arrcount,right,midright,t;

 int base[]=new int[arrcount],userNum[]=new int[area],sysNum[]=new int[area];

 Random random=new Random();

  Scanner reader=new Scanner(System.in);

 GameProcess(int a)

 {

  area=a;

  arrcount=10;

  right=0;

 midright=0;

  t=0;

  base=new int[arrcount];

  userNum=new int[area];

  sysNum=new int[area];

  for(int i=0;i<arrcount;i++)

 {

 base[i]=i;

 //System.out.println(base[i]);

 }

 }

 void process()

  {

 rand();

 while(right!=area)

 {

 scanf();

 compare();

 print();

 check();

 }

  }

  void rand()

  {

 for(i=0;i<area;i++)

 {

  t=random.nextInt(arrcount);

  //System.out.println(t);

  sysNum[i]=base[t];

  System.out.println(base[t]);

  delarr(t);

 }

  }

  void delarr(int t)

  {

 for(int j=t;j<arrcount-1;j++)

  base[j]=base[j+1];

 arrcount--;

  }

  void scanf()

  {

 System.out.println("The system number has created!"+"\n"+"Please enter "+area+" Numbers");

  for(int i=0;i<area;i++)

 {

 userNum[i]=reader.nextShort();

  }

  }

  void check()

  {

  if(right==area)

 System.out.println("You win…………!");

  }

  boolean check(int i)

  {

 return true;

  }

  void compare()

  {

 int i=0,j=0;

 right=midright=0;

 for(i=0;i<area;i++)

 {

  for(j=0;j<area;j++)

  {

  if(userNum[i]==sysNum[j])

  {

 if(i==j)

 right++;

 else

 midright++;

  }

  }

 }

  }

  void print()

  {

 System.out.println(" A "+right+" B "+midright);

  } }

 import java.awt.*; import java.awt.event.*; import javax.swing.*;

 class TestGame {

 public static void main(String[] args) {

  App ap = new App(); //调用 App()开始运行程序

  ap.show();

 } }

 class App extends JFrame {

 MainPanel mp;

  public App() {

  mp = new MainPanel();

  this.getContentPane().add(mp);

  this.setSize(400, 450);

  this.setTitle("小游戏");

 } }

 /**

 * 主面板

 * 显示格子

 * @author Administrator

 *

 */ class MainPanel extends JPanel {

 ButtonPanel bp = new ButtonPanel();

 CtrlPanel rp = new CtrlPanel();

  public MainPanel() {

  this.setLayout(new BorderLayout());

  rp.btnstart.addActionListener(new StartListener());

  this.add(bp, "Center");

  this.add(rp, "South");

  }

 class StartListener implements ActionListener {

  /**

 * 重新开始按钮的事件

 * 调用按钮面板里面的颜色初始化方法

 */

  public void actionPerformed(ActionEvent e) {

 if (e.getActionCommand() == "重新开始") {

  bp.ColorInit();

 }

  }

 } }

 class ButtonPanel extends JPanel {

 JButton[][] b = new JButton[5][5];

  /**

  * 按钮界面的构造器

  * 设置布局方式为 Grid 布局,并生成5*5的格子,

  * 在每个格子生成一个按钮,

  * 为每个按钮添加一个监听事件

  */

 public ButtonPanel() {

  this.setLayout(new GridLayout(5, 5));

 for (int i = 0; i < 5; i++) {

 for (int j = 0; j < 5; j++) {

 b[i][j] = new JButton();

  b[i][j].setActionCommand("" + (i + 1) + (j + 1));

  b[i][j].addActionListener(new MyButtonListener());

  this.add(b[i][j]);

  }

  }

  this.ColorInit();

 }

 /**

 * 面板初始化时候给所有的格子都绘上深灰色

  * i.j 分别是行和列

  */

 public void ColorInit() {

  for (int i = 0; i < 5; i++) {

 for (int j = 0; j < 5; j++) {

  b[i][j].setBackground(Color.DARK_GRAY);

 }

  }

 }

  /**

  * 按钮上监听的时事件,监听点击

  * @author Administrator

  *

  */

 class MyButtonListener implements ActionListener {

  int r, c;

  /**

 * 需要改变颜色的行和列

 * r

  row

 * c

 colunm

 * 调用 change()来改变颜色

 */

  public void actionPerformed(ActionEvent e) {

 int i = Integer.parseInt(e.getActionCommand());

 r = i / 10 - 1;

 c = i % 10 - 1;

 this.changer();

 }

 /**

 * 传一个按钮控件进去

 * 判断颜色,如果是深灰则变为粉红

 * 否则义相反

 * @param b

 */

  public void btnChange(JButton b) {

  if (b.getBackground() == Color.DARK_GRAY) {

  b.setBackground(Color.pink);

 } else {

  b.setBackground(Color.DARK_GRAY);

 }

  }

 /**

 * 这个方法是根据点击的按钮判断周围需要

 * 不能超越数组的下标

 */

  public void changer() {

 this.btnChange(b[r][c]);

 if (r > 0) //行号大于0

  this.btnChange(b[r - 1][c]);

 if (r < 4)

  this.btnChange(b[r + 1][c]);

 if (c > 0)//列号大于0

  this.btnChange(b[r][c - 1]);

 if (c < 4)//列好小余0

  this.btnChange(b[r][c + 1]);

 }

 } }

 /**

 * 控制面板

 * @author Administrator

 *下面的开始按钮

 */ class CtrlPanel extends JPanel {

 JButton btnstart;

  public CtrlPanel() {

  btnstart = new JButton("重新开始");

  this.add(btnstart);

 } }

 import java.util.*;

 public class Cai {

  enum Res{SHITOU, JIANZI, BU};

  Res res;

  public static void main(String[] args) throws Exception {

  // TODO Auto-generated method stub

  Cai cai = new Cai();

  System.out.println("请输入你的选择:");

  System.out.println("0表示石头,1表示剪子,2表示布");

  char yourResultOfChar =(char) System.in.read();

 int yourResultOfInt = yourResultOfChar - "0";

  int computerResult = pb();

 cai.getYourResult(yourResultOfInt);

  switch (computerResult)

  {

  case 0:

 System.out.println("电脑选择石头");

 break;

  case 1:

 System.out.println("电脑选择剪子");

 break;

  case 2:

 System.out.println("电脑选择布");

 break;

 }

  cai.pa(computerResult);

 }

 public void getYourResult(int count)

 {

  Res[] result = Res.values();

 res = result[count];

 }

  void pa(int computer)

 {

  Res[] result = Res.values();

  if(this.res == Res.SHITOU)

  {

 System.out.println("我选择石头");

 switch(result[computer])

 {

 case SHITOU:

  System.out.println("平局,再来!");

  break;

 case JIANZI:

  System.out.println("我赢了!");

  break;

 case BU:

  System.out.println("我输了!");

  break;

 }

  } else if(this.res == Res.JIANZI)

  {

 System.out.println("我选择剪子");

 switch(result[computer])

 {

 case JIANZI:

  System.out.println("平局,再来!");

  break;

 case BU:

  System.out.println("我赢了!");

  break;

 case SHITOU:

  System.out.println("我输了!");

  break;

 }

  } else if(this.res == Res.BU)

  {

 System.out.println("我选择布");

  switch(result[computer])

 {

 case BU:

  System.out.println("平局,再来!");

  break;

 case SHITOU:

  System.out.println("我赢了!");

  break;

 case JIANZI:

  System.out.println("我输了!");

  break;

 }

  }

 }

  static int pb()

 {

  Random ran = new Random();

  int res = ran.nextInt(3);

  return res;

 //输出0-2的整数,0表示石头,1表示剪子,2表示布,和 enum Res 中的顺序相对应

 } }

 import java.util.*; //导入实用包 util 下所有的类 import javax.swing.*; import java.awt.*; import java.awt.event.*;

 public class CaiShu {

 public static void main(String[] args) {

  Win f = new Win();

  f.setVisible(true);

 } }

 class Win extends JFrame implements ActionListener {

 JLabel labe;

 JButton butt;

 JButton button;

 Random a = new Random();

 private int i = 0;

 private int num;

  JTextField text1, text2;

  JPanel p;

  public Win() {

  super("猜数游戏");

  labe = new JLabel("我心里有个数,它是1---100之间的,你能猜出来吗?");

  butt = new JButton("确认");

  button = new JButton("重开");

  text1 = new JTextField(5);

  text2 = new JTextField(20);

 p = new JPanel();

  Container con = getContentPane();

  // 调用 JFrame 的 getContentPane 得到容器

  text2.setEditable(false);

  // 使输出结果文本域不可编辑

  butt.addActionListener(this);

  // 执行结果动作

  con.setLayout(new GridLayout(4, 1));

 // 设置整个界面的长宽比

  p.add(text1);

  // 添加输入数字文本域

  p.add(butt);

  p.add(button);

  button.addActionListener(new ActionListener(){

 public void actionPerformed(ActionEvent e) {

  text1.setText("");

  text2.setText("");

  i=0;

 }

  });

  con.add(labe);

  // 添加游戏标签

  con.add(p);

  con.add(text2);

  // 添加输出结果信息文本域

 setSize(300, 300);

  // 设置窗口尺寸

  setVisible(true);

  // 设置窗口可视

  pack();

  addWindowListener(new WindowAdapter() {

 public void windowClosing(WindowEvent e) {

  setVisible(false);

  System.exit(0);

 }

  });

  }

  public void actionPerformed(ActionEvent e) {

  int shu;

  while (true) {

 shu = Integer.parseInt(text1.getText());

  if (i == 0) {

  num = a.nextInt(100);

 }

  i++;

 if (i == 10) {

  text2.setText("结束吧,你没有希望了!!");

  i = 0;

  break;

 }

  if (e.getSource() == butt) {

  if (shu > num) {

 text2.setText("输入的数大了,输小点的!");

  } else if (shu < num) {

 text2.setText("输入的数小了,输大点的!");

  } else if (shu == num) {

 text2.setText("恭喜你,猜对了!");

 if (i <= 2)

  text2.setText("你真是个天才!");

 else if (i <= 6)

  text2.setText("还将就,你过关了!");

 else if (i <= 8)

  text2.setText("但是你还……真笨!");

 else

  text2.setText("你实在是太笨了!");

  }

  break;

 }

  }

 } }

推荐访问:小游戏 源代码 java

版权所有:格斯文档网 2010-2024 未经授权禁止复制或建立镜像[格斯文档网]所有资源完全免费共享

Powered by 格斯文档网 © All Rights Reserved.。浙ICP备19042928号