利用图形用户界面设计实现“猜数字游戏”
来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/28 03:45:32
利用图形用户界面设计实现“猜数字游戏”
功能如下:
1) 游戏开始界面,能够显示游戏规则。
2)游戏开始后,程序随机产生一个1000以内的数r(这个数的每一位不相同,例如999是不符合要求的数)。
3)在界面输入3个数字(每个数字都为0—9之间的数)。如果有一个数字与r中相应的数字在位置上完全一致,则记一个A;如果有一个数与所给的四个数中的一个相同,但位置不同,则记一个B。
4)统计所得的A和B的个数,并显示出来,显示形如“xAyB”,其中“x”为输入的数与默定的数中数字和位置相同的数,y为只有数字相同的数的个数。
5) 每玩一局,只有8次机会。如果在8次之内猜对了,就赢了,提示“你用了x次,猜对了数字”(x为你猜数的次数),并询问是否继续下一局。如果猜了8次还没猜出来,这盘游戏就输了,提示你输了,询问是否继续下一局。
要是谁写了,对的!我会加50分!
功能如下:
1) 游戏开始界面,能够显示游戏规则。
2)游戏开始后,程序随机产生一个1000以内的数r(这个数的每一位不相同,例如999是不符合要求的数)。
3)在界面输入3个数字(每个数字都为0—9之间的数)。如果有一个数字与r中相应的数字在位置上完全一致,则记一个A;如果有一个数与所给的四个数中的一个相同,但位置不同,则记一个B。
4)统计所得的A和B的个数,并显示出来,显示形如“xAyB”,其中“x”为输入的数与默定的数中数字和位置相同的数,y为只有数字相同的数的个数。
5) 每玩一局,只有8次机会。如果在8次之内猜对了,就赢了,提示“你用了x次,猜对了数字”(x为你猜数的次数),并询问是否继续下一局。如果猜了8次还没猜出来,这盘游戏就输了,提示你输了,询问是否继续下一局。
要是谁写了,对的!我会加50分!
import java.awt.FlowLayout;
import java.awt.GridLayout;
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 TestGuessNumber extends JFrame {
private static final long serialVersionUID = -4922390040187620343L;
private JLabel label;
private JTextField[] text = new JTextField[3];
private JButton button;
private String[] nums = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" };
private String[] number;
private int times;
public static void main(String[] args) {
new TestGuessNumber();
}
public TestGuessNumber() {
JOptionPane.showMessageDialog(null, "。。。", "游戏规则",
JOptionPane.INFORMATION_MESSAGE); // 。。。处填写规则,换行用“\n”
init();
}
private void init() {
number = getNumber();
this.setTitle("猜数字");
this.setBounds(500, 400, 200, 160);
this.setResizable(false);
this.getContentPane().setLayout(new GridLayout(3, 1));
label = new JLabel("请输入你猜的数字", JLabel.CENTER);
this.getContentPane().add(label);
JPanel panel = new JPanel(new FlowLayout());
for (int i = 0; i < text.length; i++) {
text[i] = new JTextField(3);
panel.add(text[i]);
}
this.getContentPane().add(panel);
button = new JButton("确定");
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
for (JTextField tmp : text) {
if (! tmp.getText().matches("^[0-9]{1}$")) {
JOptionPane.showMessageDialog(null, "每个输入框请输入一位数字!");
return;
}
}
if (times++ >= 8) {
if (JOptionPane.YES_OPTION == JOptionPane.showConfirmDialog(null,
"对不起,请再接再厉!\n是否继续?", "失败", JOptionPane.YES_NO_OPTION)) {
dispose();
new TestGuessNumber();
return;
} else {
dispose();
System.exit(0);
}
}
if (showResult()) {
if (JOptionPane.YES_OPTION == JOptionPane.showConfirmDialog(null,
"你用了" + times + "次,猜对了数字!\n是否继续?",
"成功", JOptionPane.YES_NO_OPTION)) {
dispose();
new TestGuessNumber();
} else {
dispose();
System.exit(0);
}
}
}
});
this.getContentPane().add(button);
this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
dispose();
System.exit(0);
}
});
this.setVisible(true);
// System.out.println(number[0] + number[1] + number[2]);
}
private String[] getNumber() {
String[] num = new String[3];
num[0] = nums[(int) (Math.random() * 10)];
do {
num[1] = nums[(int) (Math.random() * 10)];
} while (num[1] == num[0]);
do {
num[2] = nums[(int) (Math.random() * 10)];
} while (num[2] == num[0] || num[2] == num[1]);
return num;
}
private boolean showResult() {
int A = 0, B = 0;
String num1 = text[0].getText().trim();
String num2 = text[1].getText().trim();
String num3 = text[2].getText().trim();
if (num1.equals(number[0])) {
A++;
} else if (num1.equals(number[1]) || num1.equals(number[2])) {
B++;
}
if (num2.equals(number[1])) {
A++;
} else if (num2.equals(number[0]) || num2.equals(number[2])) {
B++;
}
if (num3.equals(number[2])) {
A++;
} else if (num3.equals(number[0]) || num3.equals(number[1])) {
B++;
}
label.setText("第" + times + "次:" + A + "A" + B + "B");
return A == 3 ? true : false;
}
}
import java.awt.GridLayout;
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 TestGuessNumber extends JFrame {
private static final long serialVersionUID = -4922390040187620343L;
private JLabel label;
private JTextField[] text = new JTextField[3];
private JButton button;
private String[] nums = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" };
private String[] number;
private int times;
public static void main(String[] args) {
new TestGuessNumber();
}
public TestGuessNumber() {
JOptionPane.showMessageDialog(null, "。。。", "游戏规则",
JOptionPane.INFORMATION_MESSAGE); // 。。。处填写规则,换行用“\n”
init();
}
private void init() {
number = getNumber();
this.setTitle("猜数字");
this.setBounds(500, 400, 200, 160);
this.setResizable(false);
this.getContentPane().setLayout(new GridLayout(3, 1));
label = new JLabel("请输入你猜的数字", JLabel.CENTER);
this.getContentPane().add(label);
JPanel panel = new JPanel(new FlowLayout());
for (int i = 0; i < text.length; i++) {
text[i] = new JTextField(3);
panel.add(text[i]);
}
this.getContentPane().add(panel);
button = new JButton("确定");
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
for (JTextField tmp : text) {
if (! tmp.getText().matches("^[0-9]{1}$")) {
JOptionPane.showMessageDialog(null, "每个输入框请输入一位数字!");
return;
}
}
if (times++ >= 8) {
if (JOptionPane.YES_OPTION == JOptionPane.showConfirmDialog(null,
"对不起,请再接再厉!\n是否继续?", "失败", JOptionPane.YES_NO_OPTION)) {
dispose();
new TestGuessNumber();
return;
} else {
dispose();
System.exit(0);
}
}
if (showResult()) {
if (JOptionPane.YES_OPTION == JOptionPane.showConfirmDialog(null,
"你用了" + times + "次,猜对了数字!\n是否继续?",
"成功", JOptionPane.YES_NO_OPTION)) {
dispose();
new TestGuessNumber();
} else {
dispose();
System.exit(0);
}
}
}
});
this.getContentPane().add(button);
this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
dispose();
System.exit(0);
}
});
this.setVisible(true);
// System.out.println(number[0] + number[1] + number[2]);
}
private String[] getNumber() {
String[] num = new String[3];
num[0] = nums[(int) (Math.random() * 10)];
do {
num[1] = nums[(int) (Math.random() * 10)];
} while (num[1] == num[0]);
do {
num[2] = nums[(int) (Math.random() * 10)];
} while (num[2] == num[0] || num[2] == num[1]);
return num;
}
private boolean showResult() {
int A = 0, B = 0;
String num1 = text[0].getText().trim();
String num2 = text[1].getText().trim();
String num3 = text[2].getText().trim();
if (num1.equals(number[0])) {
A++;
} else if (num1.equals(number[1]) || num1.equals(number[2])) {
B++;
}
if (num2.equals(number[1])) {
A++;
} else if (num2.equals(number[0]) || num2.equals(number[2])) {
B++;
}
if (num3.equals(number[2])) {
A++;
} else if (num3.equals(number[0]) || num3.equals(number[1])) {
B++;
}
label.setText("第" + times + "次:" + A + "A" + B + "B");
return A == 3 ? true : false;
}
}
利用图形用户界面设计实现“猜数字游戏”
谁才是图形用户界面的发明者?
帮忙翻译5句话中译英着重阐述了基于嵌入式Linux和Qt/Embedded的图形用户界面(GUI)的设计思路,对Qt/E
利用什么的性质可设计轴对称图形
利用74系列设计数字定时器
英语翻译图形用户界面是当前用户界面的主流,广泛应用于各档台式微机和图形工作站.随着计算机应用领域的不断扩大,随着人们生活
请设计一个数字游戏问题,并结合初一上册数学所学知识加以解释
青蛙换位游戏C++实现
请设计电路,利用行程开关实现电动机自动循环控制,并说明工作过程.
利用指针作函数参数,设计一函数实现将n个元素进行排序
电流源 如何利用理想运放负反馈电路实现设计出电流源
利用铝与空气中的氧气发生反应,利用如图甲可设计为原电池,实现化学能转化为电能.