原本写的猜数游戏是给予for循环还有多重if else if结构编写的 噢噢噢 还有随机数字 差点就忘了Scanner扫描器
import java.util.Scanner;
public class ForDome {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
final int price = (((int) (Math.random() * 1000)) % 9 + 1) * 1000;
int guessPrice = -1;
int count = 0;
String prizeName = null;
for (int i = 0; i <= 5; i++) {
System.out.print("请输入你猜的数字(第" + ++count + "次):");
guessPrice = input.nextInt();
if (guessPrice == price) {
if (count == 1) {
prizeName = "恭喜你中了头奖:iPhoneXS Max自选颜色一台!!!";
} else if (count == 2 || count == 3) {
prizeName = "恭喜你中了二等奖:华为(HUAWEI)荣耀手环zero!!!";
} else if (count == 4 || count == 5) {
prizeName = "恭喜你中了三等奖:小米蓝牙耳机青春版!!!";
}
break;
} else if (guessPrice < price) {
System.out.println("小了!");
} else if (guessPrice > price) {
System.out.println("大了!");
}
}
if (prizeName == null) {
System.out.println("五次机会已用完,下次再接再厉吧!!!");
} else {
System.out.println(count + "次答对!");
System.out.println(prizeName);
}
input.close();
}
}
操作台运行实例
后来我心血来潮想做一个GUI图形用户模式的猜数字游戏 但是我对Java的Swing属性相当不熟悉,这两天我几乎都是摸着石子过河,每个难点都是靠百度解决的 其中有一个JTextField文本框属性的录入我就一直没有解决这个问题,我不知道在循环中怎么多次录入这个信息 我选择去掉了循环,但是这样以后就失去了次数限制的功能 后来我想到设置变量,使用if判断点击按钮的次数,然后判断奖品等级还有猜数字的次数 但是!因为每次点击按钮我设置的变量都会被再次初始化,这就达不到变量的变化 而不同方法中的变量又无法通用,后来我看到static可以设置整个程序通用的静态变量 最后我解决了这个问题 说实话这个程序里我还是有很多问题没有解决,都是生搬硬造整上去的package numberPlay;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class numberPlay {
static int count = 0;
final static int price = (((int) (Math.random() * 1000)) % 9 + 1) * 1000;
public static void main(String[] args) {
JFrame.setDefaultLookAndFeelDecorated(true);
JFrame frame = new JFrame("猜数字游戏");
frame.setSize(350, 200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
frame.add(panel);
placeComponents(panel);
frame.setVisible(true);int windowWidth = frame.getWidth(); //获得窗口宽
int windowHeight = frame.getHeight(); //获得窗口高
Toolkit kit = Toolkit.getDefaultToolkit(); //定义工具包
Dimension screenSize = kit.getScreenSize(); //获取屏幕的尺寸
int screenWidth = screenSize.width; //获取屏幕的宽
int screenHeight = screenSize.height; //获取屏幕的高
frame.setLocation(screenWidth/2-windowWidth/2, screenHeight/2-windowHeight/2);//设置窗口居中显示
}
private static void placeComponents(JPanel panel) {
Font font1 = new Font("宋体", Font.BOLD, 24);
panel.setLayout(null);
JLabel biaoTi = new JLabel("猜数字游戏");
biaoTi.setFont(font1);
biaoTi.setBounds(113, 15, 125, 25);
panel.add(biaoTi);
JLabel qianZui = new JLabel("输入:");
qianZui.setBounds(70, 50, 50, 25);
panel.add(qianZui);
JTextField input = new JTextField();
input.setBounds(110, 50, 170, 25);
panel.add(input);
JButton jbHello = new JButton("确认");// 按钮
jbHello.setBounds(135, 100, 80, 25);
panel.add(jbHello);
jbHello.addActionListener(new ActionListener() {// 给按钮添加事件接收器
@Override
public void actionPerformed(ActionEvent e) {// 接受到事件后,进行下面的处理
count++;
int guessPrice = -1;
String Str = null;
String prizeName = null;
String results = null;
Str = input.getText();
guessPrice = Integer.parseInt(Str);
if (guessPrice == price) {
if (count == 1) {
prizeName = "恭喜你中了头奖:iPhoneXS Max自选颜色一台!!!";
JOptionPane.showMessageDialog(null, prizeName);// 弹出对话框,显示Hello World
System.exit(0);
} else if (count == 2 || count == 3) {
prizeName = "恭喜你中了二等奖:华为(HUAWEI)荣耀手环zero!!!";
JOptionPane.showMessageDialog(null, prizeName);// 弹出对话框,显示Hello World
System.exit(0);
} else if (count == 4 || count == 5) {
prizeName = "恭喜你中了三等奖:小米蓝牙耳机青春版!!!";
JOptionPane.showMessageDialog(null, prizeName);// 弹出对话框,显示Hello World
System.exit(0);
}
} else if (guessPrice < price && !(count >= 5)) {
results = "小了!请重新输入!";
JOptionPane.showMessageDialog(null, results);
} else if (guessPrice > price && !(count >= 5)) {
results = "大了!请重新输入!";
JOptionPane.showMessageDialog(null, results);
} else if (count >= 5 && guessPrice != price) {
prizeName = "很遗憾!五次机会已用完,下次再接再厉吧!!!";
JOptionPane.showMessageDialog(null, prizeName);// 弹出对话框,显示Hello World
System.exit(0);
}
}
});
}
}
``
<p align=center>
<img src="https://img-blog.csdnimg.cn/20181227223201929.gif">
<p align=center>GUI Swing窗口运行实例</p>
</p>
这个是程序效果,随机生成1000至9000的整千数字,每次猜数字会有太大或者太小的提示,总共五次机会,三种奖品等级!
等有时间了我还是得好好琢磨一个这个程序,摸透它!
2018.12.27