黑马程序员技术交流社区

标题: 分享个小游戏源码 [打印本页]

作者: 夏至落叶    时间: 2014-11-17 23:33
标题: 分享个小游戏源码
自己和室友来黑马1103班学了半个月,用懂的知识编了个小游戏。代码很简单,但自己编出来的那一刻很高兴。我今年10月才开始学java,来到黑马视频辅导班也就半个月,发现现在越来越喜欢敲代码了,也有很多志同道合的兄弟一起学,很爽。
  1. import java.awt.Button;
  2. import java.awt.Dialog;
  3. import java.awt.FlowLayout;
  4. import java.awt.Frame;
  5. import java.awt.Label;
  6. import java.awt.TextArea;
  7. import java.awt.TextField;
  8. import java.awt.event.KeyAdapter;
  9. import java.awt.event.KeyEvent;
  10. import java.awt.event.MouseAdapter;
  11. import java.awt.event.MouseEvent;
  12. import java.awt.event.WindowAdapter;
  13. import java.awt.event.WindowEvent;
  14. import java.util.Random;

  15. public class GuessNumberFinal {

  16.         public static void main(String[] args) {
  17.                 // TODO 自动生成的方法存根
  18.                
  19.                 new MouseAndKeyEvent();
  20.         }
  21. }

  22. class MouseAndKeyEvent {
  23.         private Frame f;
  24.         private Button but,butBegin,btnOK;
  25.         private TextField tf;
  26.         private TextArea ta;
  27.         private int count = 0,gCount=1,number;
  28.         private boolean flag;
  29.         private Dialog dl;
  30.         private Label labInfo;
  31.         private Random r;
  32.         private GameTest gt;
  33.        
  34.         MouseAndKeyEvent() {
  35.         r = new Random();
  36.         number = r.nextInt(10000);
  37.                 init();
  38.         }

  39.         public MouseAndKeyEvent(int number) {
  40.                 // TODO 自动生成的构造函数存根
  41.                 this.number = number;
  42.                 init();
  43.         }

  44.        
  45.        
  46.         public void init() {
  47.                 f = new Frame("GuessNumber");
  48.                 f.setBounds(300, 100, 600, 500);
  49.                 f.setLayout(new FlowLayout());

  50.                 but = new Button("确认");
  51.                 butBegin = new Button("重新开始");
  52.                 tf = new TextField("请输入密码", 23);

  53.                 ta = new TextArea(10, 40);
  54.                 dl = new Dialog(f,"提示信息",true);
  55.                 labInfo = new Label();
  56.                 btnOK = new Button("确定");
  57.                 gt = new GameTest(number,gCount);
  58.                
  59.                 dl.add(labInfo);
  60.                 dl.add(btnOK);
  61.                 dl.setBounds(400, 200, 350, 150);
  62.                 dl.setLayout(new FlowLayout());

  63.                 f.add(tf);
  64.                 f.add(but);       
  65.                 f.add(butBegin);
  66.                 f.add(ta);
  67.        
  68.                 myEvent();

  69.                 f.setVisible(true);
  70.         }

  71.         private void myEvent() {
  72.                 // TODO 自动生成的方法存根
  73.                 f.addWindowListener(new WindowAdapter() {                        //面板关闭按钮
  74.                         public void windowClosing(WindowEvent e) {
  75.                                 System.exit(0);
  76.                         }
  77.                 });

  78.                 but.addMouseListener(new MouseAdapter() {                        //面板确认按钮
  79.                         public void mouseClicked(MouseEvent e) {

  80.                                 String m = tf.getText();
  81.                                 // GameTest gt = new GameTest();
  82.                                 System.out.println(m);
  83.                                 if (flag) {       
  84.                                        
  85.                                         ta.append(gt.run(m)+"\r\n");
  86.                                         gCount = gt.getgCount();
  87.                                         //System.out.println("1111"+gCount);
  88.                                 }
  89.                                 if (!flag) {
  90.                                         if ("1".equals(m)) {
  91.                                                 ta.setText("游戏开始\r\n");
  92.                                                 flag = true;

  93.                                         } else {
  94.                                                 labInfo.setText("你输入的\""+m+"\"密码错误,请重新输入"+"\r\n"+"还有"+(10-++count)+"机会");
  95.                                                 dl.setVisible(true);
  96.                                         }
  97.                                         while (count == 10) {
  98.                                                 System.exit(0);
  99.                                         }
  100.                                 }
  101.                                
  102.                         }
  103.                 });
  104.                
  105.                 butBegin.addMouseListener(new MouseAdapter(){                        //重新开始按钮
  106.                         public void mouseClicked(MouseEvent e){
  107.                                 number = r.nextInt(1000);
  108.                                 gCount = 1;
  109.                                 gt = new GameTest(number,gCount);
  110.                                 ta.setText("");
  111.                         }
  112.                 });

  113.                 tf.addMouseListener(new MouseAdapter() {                                //文本框单击清空
  114.                         public void mouseClicked(MouseEvent e) {                               
  115.                                         tf.setText("");                               
  116.                         }
  117.                 });
  118.                
  119.                 tf.addKeyListener(new KeyAdapter() {
  120.                         public void keyReleased(KeyEvent e){
  121.                                 int code = e.getKeyCode();
  122.                                 if(code==KeyEvent.VK_ENTER){
  123.                                         String m = tf.getText();
  124.                                         // GameTest gt = new GameTest();
  125.                                         System.out.println(m);
  126.                                         if (flag) {               
  127.                                                
  128.                                                
  129.                                                
  130.                                                 ta.append(gt.run(m)+"\r\n");
  131.                                                 gCount = gt.getgCount();
  132.                                                 System.out.println(gCount);
  133.                                         }
  134.                                         if (!flag) {
  135.                                                 if ("502495729".equals(m)) {
  136.                                                         ta.setText("游戏开始\r\n");
  137.                                                         flag = true;
  138.                                                 } else {
  139.                                                         labInfo.setText("你输入的\""+m+"\"密码错误,请重新输入"+"\r\n"+"还有"+(10-++count)+"机会");
  140.                                                         dl.setVisible(true);
  141.                                                 }
  142.                                                 while (count == 10) {
  143.                                                         System.exit(0);
  144.                                                 }
  145.                                         }
  146.                                        
  147.                                         tf.setText("");
  148.                                 }
  149.                         }
  150.                 });
  151.                
  152.                 btnOK.addMouseListener(new MouseAdapter() {                                //确定,隐藏dialog
  153.                         public void mouseClicked(MouseEvent e) {
  154.                                 if (!("请输入密码" == null)) {
  155.                                         dl.setVisible(false);
  156.                                 }
  157.                         }
  158.                 });
  159.                
  160.                 btnOK.addKeyListener(new KeyAdapter() {                                        //让butOK按下空格键是也能够实现功能
  161.                         public void keyReleased(KeyEvent e){
  162.                                  int code = e.getKeyCode();
  163.                                  if(code==KeyEvent.VK_SPACE){
  164.                                          dl.setVisible(false);
  165.                                  }
  166.                         }
  167.                 });
  168.                
  169.                 dl.addWindowListener(new WindowAdapter() {                                //对话框关闭按钮单击后让对话框隐藏
  170.                         public void windowClosing(WindowEvent e) {
  171.                                 dl.setVisible(false);
  172.                         }
  173.                 });
  174.         }
  175. }

  176. class GameTest {
  177.         private int number,gCount;
  178.         public GameTest(){}
  179.        
  180.         public GameTest(int number,int gCount){
  181.                 this.number = number;
  182.                 this.gCount = gCount;
  183.                 //System.out.println(gCount);
  184.         }
  185.        
  186.         public int getNumber() {
  187.                 return number;
  188.         }
  189.         public void setNumber(int number) {
  190.                 this.number = number;
  191.         }
  192.         public int getgCount() {
  193.                 System.out.println("....."+gCount);
  194.                 return gCount;
  195.                
  196.         }
  197.         public void setgCount(int gCount) {
  198.                 this.gCount = gCount;
  199.         }
  200.         public String run(String m) {
  201.                 // 随机产生一个1~10000的数字

  202.                 if ("aa502495729".equals(m)) {// 作弊码,当录入为特定字符,直接提示答案
  203.                         ++gCount;
  204.                         return number + "";
  205.                        
  206.                 } else if (!(m.matches("[0-9]+"))) {// 判断录入的是否为数字
  207.                         ++gCount;
  208.                         return "请输入数字";
  209.                 } else {
  210.                         int d = Integer.parseInt(m);// 把字符转成int型和随机数字进行比较
  211.                         if (d > number) {// 判断数字
  212.                                 ++gCount;
  213.                                 return (m + "数字大了");
  214.                         } else if (d < number) {
  215.                                 ++gCount;
  216.                                 return (m + "数字小了");
  217.                         } else {
  218.                                
  219.                                 return ("答案是"+number+"^_^ 恭喜你猜对了!!!!!!\r\n您经过"+gCount+"步完成游戏"+"\r\n请点击\"重新开始\"按钮,重新开始游戏。");
  220.                         }
  221.                 }
  222.         }
  223. }

  224. class Mima {
  225.         private int x = 522046817;

  226.         public Mima() {
  227.         }

  228.         public int run() {
  229.                 return x;
  230.         }
  231. }
复制代码



作者: NCry    时间: 2014-11-17 23:45
我靠啊,这么长。让我如何看的进去哈。不过以后继续合作哈。
作者: zbt    时间: 2014-11-18 23:19
终于把你的代码贴出来了
作者: 夏至落叶    时间: 2014-11-18 23:21
zbt 发表于 2014-11-18 23:19
终于把你的代码贴出来了

无聊的时候和宿舍大神一起编的,挺好玩的
作者: zbt    时间: 2014-11-18 23:23
我copy下去改改
作者: LiuWei1989    时间: 2014-11-18 23:27
好吧 你们宿舍的都是大神
作者: 夏至落叶    时间: 2014-11-18 23:28
我是小白,他们都是大神




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2