2008年的时候,在学习Java how to program第五版的时候,写过一个猜数字小游戏,是用Applet写的;
现在,我要用Swing重写这个小游戏,同时,加入一些新功能,如:背景颜色(红色表示偏高,蓝色表示偏低)、弹框、字体控制、布局管理器的使用。
运行截屏:
代码如下:
//Guess a number between 1 and 1000
//Java how to program, 10/e, Exercise 12.14
//by pandenghuang@163.com
/* (Guess-the-Number Game) Write an application that plays “guess the number” as follows:
Your application chooses the number to be guessed by selecting an integer at random in the range
1–1000. The application then displays the following in a label:
I have a number between 1 and 1000. Can you guess my number?
Please enter your first guess.
A  JTextField should be used to input the guess. As each guess is input, the background color
should change to either red or blue. Red indicates that the user is getting “warmer,” and blue,
“colder.” A  JLabel should display either  "Too High" or  "Too Low" to help the user zero in. When
the user gets the correct answer,  "Correct!" should be displayed, and the  JTextField used for
input should be changed to be uneditable. A  JButton should be provided to allow the user to play
the game again. When the  JButton is clicked, a new random number should be generated and the
input  JTextField changed to be editable.
*/
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.BorderLayout;
import static java.awt.BorderLayout.*;public class NumberGuessGame2016 extends JFrame {
int number,random,counter=0;
JLabel welcomeJLabel;
JLabel hintJLabel;
JTextField guessField;
JPanel panel;//显示不同背景色public NumberGuessGame2016() {super("猜数字小游戏游戏");setLayout(new BorderLayout());panel=new JPanel();panel.setBackground(Color.WHITE);welcomeJLabel= new JLabel("游戏规则:已随机生成一个1到1000的整数,您能在10次以内猜出来吗?");welcomeJLabel.setFont(new Font("Simsun",1,10));add(welcomeJLabel,NORTH);guessField=new JTextField(20);guessField.setFont(new Font("Arial",1,10));panel.add(guessField);add(panel); //默认添加到中间hintJLabel= new JLabel("");add(hintJLabel,SOUTH);hintJLabel.setFont(new Font("Simsun",1,10));TextFieldHandler handler=new TextFieldHandler();guessField.addActionListener(handler);random=(int)(1+1000*Math.random());}private class TextFieldHandler implements ActionListener
{// process textfield events@Overridepublic void actionPerformed (ActionEvent event){while(true){number=Integer.parseInt(guessField.getText());while(number!=random){number=Integer.parseInt(guessField.getText());if(number>random){hintJLabel.setText("猜高了,不要放弃哦↖(^ω^)↗。已试错"+(++counter)+"次");guessField.setText("");panel.setBackground(Color.RED);}else{hintJLabel.setText("猜低了,请继续!已试错"+(++counter)+"次");panel.setBackground(Color.BLUE);guessField.setText("");}}//猜中后的用户提示if (counter<10)JOptionPane.showMessageDialog(null, "恭喜你,猜中了,难道你知道答案?O(∩_∩)O~");else if (counter==10)JOptionPane.showMessageDialog(null, "辛苦了,终于猜中了!");elseJOptionPane.showMessageDialog(null, "您终于猜中了╮(╯▽╰)╭,您其实可以做得更好的!");//开始下一轮猜数字游戏前的初始化工作guessField.setText("");random=(int)(1+1000*Math.random());counter=0;}}
}public static void main(String[] args)
{ NumberGuessGame2016 f = new NumberGuessGame2016(); // create ListFramef.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);f.setSize(400,300); f.setVisible(true);
}
}

Java源码-猜数字小游戏(Swing编程版)相关推荐

  1. Java语言实现猜数字小游戏

    之前笔者在学习C语言的初级阶段,就已经实现了用C语言简单实现猜数字小游戏,既然笔者最近在学习Java的初级阶段,那么,也应该写一个Java语言实现的猜数字小游戏!! C语言实现猜数字小游戏:原文链接为 ...

  2. C语言、C++与Java分别实现猜数字小游戏

    系统自动生成一个随机整数(1-100), 然后由用户输入一个猜测的数字. 如果输入的数字比该随机数小, 提示 "Too small!!!", 如果输入的数字比该随机数大, 提示 & ...

  3. 猜数字小游戏(网页版)

    目录

  4. 初识JAVA:猜数字小游戏案例---系统产生一个1-100之间的随机数,猜出这个数是多少?

    package com.pku.wuyu.io; import java.util.IllegalFormatCodePointException; import java.util.Random; ...

  5. 【c语言】和【Java】版本的猜数字小游戏

    目录 前言 一.c语言版本 1.游戏设计思路 2.rand()及srand()函数的使用 2.取模确定取值范围 3.条件运算符 4.利用二分法进行猜测 二.java版本 1.Math.random() ...

  6. Java基于GUI完成的猜数字小游戏

    猜数字小游戏 不废话想看看效果吧! 当我们答对后就会出现: 如果你实在急着想知道答案: 简要说明: 所猜测的数字为1~1000: 只能通过按确定输出答案,未设置Enter键直接输入的监控. 退出请直接 ...

  7. 第三次学JAVA再学不好就吃翔(part28)--猜数字小游戏

    学习笔记,仅供参考 面向对象 猜数字小游戏 随机生成一个1 ~ 100之间的数,我来猜是几: import java.util.Scanner;class GuessNumTest {public s ...

  8. Vue3和码上掘金实现猜数字小游戏

    前言 Vue3.0 是2020年09月18日正式发布的,距现在两年多了!而且Vue3是默认的Vue版本了,功能也在不断完善和扩展中,比如焕然一新的 Composition API 语法.setup语法 ...

  9. Java版 猜数字小游戏

    猜数字小游戏是一定是大家学习C语言编程的第一个或者是前几个小小项目了吧,今天,我们使用Java进行猜数字小游戏的实现 有对猜数字小游戏的基本思想不清楚的可以看这篇博客,里面是用C语言进行的实现以及相关 ...

  10. 猜数字小游戏(JAVA)

    猜数字小游戏 题目描述 代码 运行效果 新增功能 思路 代码 运行效果 题目描述 猜数字(又称 Bulls and Cows )是一种古老的的密码破译类益智类小游戏,起源于20世纪中期,一般由两个人或 ...

最新文章

  1. activity 的属性android:taskAffinity和android:allowTaskReparenting
  2. 大数据与测试测量的结合
  3. echarts折线图相关
  4. Python快速判断若干整数是否互不相同
  5. ssis 有条件拆分_SSIS条件拆分概述
  6. 目前常用的开源服务器端技术
  7. 如何学习自然语言处理(转)
  8. 单列变双列css_css – 右对齐双列布局丢失水平滚动条
  9. nodejs下载安装
  10. 换一种姿势阅读《人工智能简史》
  11. Scrum敏捷开发模式介绍与实践
  12. 关于JSP文件的运行方法
  13. fastqc检验时不能执行java_解压fastqc软件包后,运行fastqc报错:没有这个命令?...
  14. 我用 go-zero 一周实现了一个中台系统,已开源!
  15. 贼好用,冰河再次升级了这款开源的精准定时任务和延时队列框架!!
  16. 【工具】goland pull代码 出现 you local changes would be overwritten by merge.Commit, stash or revert ......
  17. 2013年部分节假日安排
  18. 关于leetcode刷题计划
  19. 快手2020校园招聘秋招笔试--工程A试卷 题4
  20. ip地址转换数字函数 iton_IP地址的字符串形式和数字形式之间的相互转换函数

热门文章

  1. uniapp的选择收货地址
  2. 编码表概述和常见编码表
  3. (转)史上最全人工智能产品清单(1/3)
  4. 精进Spring—Spring常用注解【经典总结】
  5. Python机器学习及实践——特征降维
  6. 计算机考研复试问题汇总(408+计算机前言知识)
  7. 主成分分析在SPSS上的实现与结果分析——基于SPSS实验报告
  8. DSP重新上电程序不能运行
  9. 盘点12个yyds的微信小程序开源项目
  10. 关于火狐浏览器国际版和国内版的说明