猜数字游戏

功能:产生一个随机数,猜随机数的大小,机会只有3次,并且如果猜错了,焦点自动返回。
使用到的接口:ActionListener FocusListener;

代码:

package com.niit.guessgame;

import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.Random;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;

/**
 *
 */

/**
 * @author Annie
 * @date 2016年6月6日
 * @description:猜数字游戏(用到了焦点事件,活动事件)
 */
public class GuessGame extends JFrame implements ActionListener,FocusListener{
    public static void main(String[] args) {
        new GuessGame();
    }

    JLabel hintLabel;
    JButton buttonGetNumber,buttonEnter;
    JTextField inputText;
    Random random;
    int number ;
    int count =1;
    int i =3;
    public GuessGame() {
        super("猜数字");
        setLayout(new FlowLayout());
        setSize(300, 300);
        buttonGetNumber = new JButton("得到一个随机数:");
        hintLabel = new JLabel("输入你猜的数字",JLabel.CENTER);
        hintLabel.setBackground(Color.cyan);
        inputText = new JTextField(10);
        buttonEnter = new JButton("确定");
        add(buttonGetNumber);
        add(hintLabel);
        add(inputText);
        add(buttonEnter);
        setVisible(true);
        buttonGetNumber.addActionListener(this);
        buttonEnter.addActionListener(this);
        inputText.addFocusListener(this);
        inputText.requestFocusInWindow();
        addWindowListener(new WindowAdapter() {

            @Override
            public void windowClosing(WindowEvent e) {
                super.windowClosing(e);
                dispose();
            }
        });
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        if(e.getSource() == buttonGetNumber){
            random = new Random();
            number    = random.nextInt(1000);
            hintLabel.setText("请输入你要猜的数字:");
        }else if(e.getSource() == buttonEnter){
            int guess = Integer.valueOf(inputText.getText());
            if(number ==  guess){
                hintLabel.setText("猜对了!");
            }else if(number >guess){
                count++;
                i--;
                hintLabel.setText("猜小了,你还有:"+i+"次机会,请继续输入");
                inputText.requestFocusInWindow();

            }else if (number < guess){
                count++;
                i--;
                hintLabel.setText("猜大了,你还有:"+i+"次机会,请继续输入");
                inputText.requestFocusInWindow();//获取焦点

            }
        }
        if(count > 3){
            JOptionPane.showConfirmDialog(getParent(), "game over");

        }
    }

    @Override
    public void focusGained(FocusEvent e) {
        inputText = (JTextField) e.getSource();
        inputText.setText(null);

    }

    @Override
    public void focusLost(FocusEvent e) {
        // TODO Auto-generated method stub

    }
}

效果图:

时间: 2024-10-08 11:13:07

猜数字游戏的相关文章

JavaScript一个猜数字游戏

效果图: 代码: <body> <script type="text/javascript"> window.onload = newgame; //页面载入的时候就开始一个新的游戏 window.onpopstate = popState; //处理历史记录相关事件 var state,ui; //全局变量,在newgame()方法中会对其初始化 function newgame( playagin ){ //开始一个新的猜数字游戏 //初始化一个包含需要的文

猜数字游戏及rand()函数

#include<stdio.h>#include<stdlib.h>int main() { short number; short guess=0; number=rand()%100; number++; printf("猜数字游戏\n"); printf("该数字在1到100之间\n"); while(guess!=number) { printf("请你输入所猜数字:"); scanf("%hd&quo

原创Android游戏--猜数字游戏V1.1 --数据存储,Intent,SimpleAdapter的学习与应用

--------------------------------------------------------------- V0.1版本 上次做完第一个版本后,发现还有一些漏洞,并且还有一些可以添加的功能,以及一些可改进的地方,于是准备继续完善此游戏,顺便学Android了. 本次更新信息如下: 1.改正了随机数生成算法,更正了不能产生数字'9'的bug 2.增加了数据存储与IO的内容,使用了SharedPreferences保存数据 3.保存数据为: 总盘数,猜中的盘数 4.使用了Simp

*循环-20. 猜数字游戏

1 /* 2 * Main.c 3 * C20-循环-20. 猜数字游戏 4 * Created on: 2014年8月18日 5 * Author: Boomkeeper 6 *********测试部分通过********* 7 */ 8 9 #include <stdio.h> 10 11 int main(void){ 12 13 int random = 0,N = 0;//系统输入的随机数和最大猜测次数 14 int in = 0;//每次输入的猜测 15 int count = 0

猜数字 游戏

前几天一直做的一个小游戏,猜数字游戏,开始不会做,通过老师的帮助还是成功做出来了,也算小有成就了,嘿嘿. 下面给大家看看我做的这个小游戏: public class GuessNumber { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("\t****** 猜数字 ******\n"); System.out.println("

Python实现简单的猜数字游戏

Python实现简单的猜数字游戏,具体如下: 随机生成一个1-10之间的数字,让用户来猜,当猜错时,会提示猜的数字是大还是小了,直到用户猜对为止. import random secret = random.randint(1,10) #print(secret) print('------猜数字游戏!-----') guess = 0 while guess != secret: temp = input('猜数字游戏开始,请输入数字:') guess = int(temp) if guess

猜数字游戏代码

#include <iostream> #include <cstdlib> #include <conio.h> #include <ctime> using namespace std; //清屏 void ClearScreen() { system("cls"); } //显示菜单 void ViewMenu() { cout<<"******************"<<endl; c

LeetCode:Bulls and Cows - 猜数字游戏

1.题目名称 Bulls and Cows(猜数字游戏) 2.题目地址 https://leetcode.com/problems/bulls-and-cows/ 3.题目内容 英文:You are playing the following Bulls and Cows game with your friend: You write a 4-digit secret number and ask your friend to guess it, each time your friend g

循环-20. 猜数字游戏(15)

1 #include<iostream> 2 using namespace std; 3 int main(){ 4 int a,n,g,i=1; 5 cin>>a>>n; 6 while(cin>>g){ 7 if(i>n||g<0){ 8 cout<<"Game Over"<<endl; 9 break; 10 } 11 else{ 12 if(g>a) 13 cout<<&qu