「java猜一个四位数游戏」java猜数字小游戏
本篇文章给大家谈谈java猜一个四位数游戏,以及java猜数字小游戏对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
求教Java达人:用java编写一个猜数字游戏
package com.zuxia.cg.guest;
import java.util.Random;
import java.util.Scanner;
/**
* 猜数游戏 系统自动生成4个0-9的不重复数 用户猜 数字和系统生成的数是一样且位置相同就在数那个位置输出a,数相同但位置不同,则在数那个位置输出b
* 其他数字不变
*
* @author student
*
*/
public class test {
/**
* 产生不重复的随机数
*
* @return 一个数组
*/
public int[] rand() {
int[] array = new int[4];
Random rd = new Random();
for (int i = 0; i 4; i++) {
array[i] = rd.nextInt(10);
for (int j = 0; j i; j++) {
if (array[j] == array[i]) {
i--;
break;
}
}
}
return array;
}
/**
* 对产生的随机数组和用户的输入进行比较
* 对于数组位置和数字都一样的用‘a’代替,对于数组位置不同的但数字一样的用‘b’代替,并统计‘a’,‘b’的数量
*
* @param array
* @return 一个字符串
*/
public String get(int[] array) {
for (int i = 0; i 4; i++) {
System.out.println(array[i]); //输出系统生成的随机数
}
int[] list = new int[4];
Scanner scan = new Scanner(System.in);
System.out.print("请输入:");
for (int i = 0; i 4; i++) {
list[i] = scan.nextInt();
}
for (int i = 0; i 4; i++) {
for (int j = 0; j 4; j++) {
if (array[i] == list[j]) {
if (i == j) {
list[j] = 'a';
} else
list[j] = 'b';
}
}
}
int m = 0;
int n = 0;
for (int i = 0; i 4; i++) {
if (list[i] == 'a') {
m++;
} else if (list[i] == 'b') {
n++;
}
}
n = m + n;
System.out.print("\n" + m + "A" + n + "B\n");
return m + "A" + n + "B";
}
public static void main(String[] args) {
test test = new test();
int[] array = test.rand();
if (test.get(array).equals("4A4B")) {
} else {
while (!test.get(array).equals("4A4B")) {
test.get(array);
}
}
}
}
java中四个不重复的数字猜数字游戏
int gameNum = num();// 系统生成的四位不重复数字
while(true){
Scanner sc = new Scanner(System.in);// 键盘输入
int userNum = sc.nextInt();
if (gameNum == userNum) {// 如果用户输入等于系统生成,执行下面的代码
System.out.println("恭喜你猜对了O(∩_∩)O哈哈~");
num();// 继续猜下一个游戏
} else if (userNum gameNum) {
System.out.println("数字有点大噢/(ㄒoㄒ)/~~");
} else if (userNum gameNum) {
System.out.println("数字小了点噢(*^__^*) 嘻嘻……");
}
}
}
public static int num() {
ListInteger list = new ArrayListInteger();// 首先建立个list集合
String str = "";
list.add(0);
list.add(1);
list.add(2);
list.add(3);
list.add(4);
list.add(5);
list.add(6);
list.add(7);
list.add(8);
list.add(9);
Random rand = new Random();
int a = rand.nextInt(list.size());// 随机获取list下标
for (int i = 0; i list.size(); i++) {// for循环
if (list.get(a) == list.get(i)) {
str = str + list.get(i);// 拼接字符串
list.remove(i);
}
}
int b = rand.nextInt(list.size() - 1);
for (int i = 0; i list.size(); i++) {
if (list.get(b) == list.get(i)) {
str = str + list.get(i);
list.remove(i);
}
}
int c = rand.nextInt(list.size() - 1);
for (int i = 0; i list.size(); i++) {
if (list.get(c) == list.get(i)) {
str = str + list.get(i);
list.remove(i);
}
}
int d = rand.nextInt(list.size() - 1);
for (int i = 0; i list.size(); i++) {
if (list.get(d) == list.get(i)) {
str = str + list.get(i);
list.remove(i);
}
}
int num = Integer.valueOf(str);// String转化成int
return num;
}
java编写的猜4个数字游戏
界面类:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MainFrame extends JFrame implements ActionListener, KeyListener {
private static final long serialVersionUID = 1L;
private JLabel lb1;
private JButton btnEnter;
private JButton btnCancel;
private JTextArea taDispaly;
private JTextField txtEnter;
private Oprator oprator;
private JButton btnReplay;
String tx;
private JButton btnEnd;
public static void main(String[] args) {
new MainFrame();
}
public MainFrame() {
oprator = new Oprator();
oprator.randAnswer();
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container con = this.getContentPane();
this.setContentPane(con);
con.setLayout(null);
con.setSize(467, 237);
lb1 = new JLabel("请输入一个4位数:");
con.add(lb1);
lb1.setBounds(44, 24, 140, 17);
txtEnter = new JTextField();
con.add(txtEnter);
txtEnter.setBounds(47, 64, 76, 24);
txtEnter.addKeyListener(this);
taDispaly = new JTextArea();
con.add(taDispaly);
taDispaly.setBounds(249, 9, 225, 203);
taDispaly.setBorder(BorderFactory.createBevelBorder(1));
btnEnter = new JButton();
btnEnter.setEnabled(false);
con.add(btnEnter);
btnEnter.setText("确定");
btnEnter.setBounds(30, 105, 60, 24);
btnEnter.addActionListener(this);
btnCancel = new JButton();
con.add(btnCancel);
btnCancel.setText("取消");
btnCancel.setBounds(107, 105, 60, 24);
btnCancel.addActionListener(this);
btnReplay = new JButton();
con.add(btnReplay);
btnReplay.setText("重玩");
btnReplay.setBounds(28, 148, 60, 24);
btnEnd = new JButton();
con.add(btnEnd);
btnEnd.setText("结束");
btnEnd.setBounds(107, 148, 60, 24);
this.setSize(494, 257);
this.setVisible(true);
}
public void actionPerformed(ActionEvent e) {
JButton btn = (JButton) e.getSource();
if (btn == btnCancel) {
btnEnter.setEnabled(false);
txtEnter.setText("");
}
if (!oprator.isEnd()) {
if (btn == btnEnter) {
oprator.setCount(oprator.getCount() + 1);
int[] result = oprator.check(txtEnter.getText());
if (result[0] == 1) {
oprator.setEnd(true);
taDispaly.append("猜中了!!\n");
} else if (oprator.getCount() != 10) {
taDispaly.append(txtEnter.getText() + " "
+ result[1] + "A" + result[2] + "B\n");
} else if (oprator.getCount() == 11) {
taDispaly.append("失败!!\n");
}
btnEnter.setEnabled(false);
txtEnter.setText("");
}
}
if(btn == btnEnd){
this.dispose();
}
if(btn == btnReplay){
oprator.randAnswer();
taDispaly.setText("");
txtEnter.setText("");
txtEnter.setEnabled(false);
}
}
public void keyPressed(KeyEvent e) {
}
public void keyReleased(KeyEvent e) {
}
public void keyTyped(KeyEvent e) {
/** 实现只能输入4位数字,并且数字不能重复 */
JTextField text = (JTextField) e.getSource();
tx = text.getText();
int b = e.getKeyChar();
if (b 48 || b 57) {
e.setKeyChar('\0');
}
if (tx.indexOf(b) != -1) {
e.setKeyChar('\0');
}
if (tx.length() == 4) {
e.setKeyChar('\0');
}
if (tx.length() == 3) {
btnEnter.setEnabled(true);
}
}
}
操作类:
import java.util.*;
public class Oprator {
private int[] answer;
private int count;
private boolean isEnd = false;
public Oprator(){
}
/** 产生随机答案 */
public void randAnswer(){
answer = new int[4];
int[] digits = {0,1,2,3,4,5,6,7,8,9};
Random rand = new Random((new Date()).getTime());
for(int i=0;idigits.length;i++){
int ptr = Math.abs(rand.nextInt())%10;
int temp = digits[ptr];
digits[ptr] = digits[i];
digits[i] = temp;
}
for(int i=0;i4;i++){
answer[i] = digits[i];
}
}
/**
* 检查答案
* @param guessNum
* @return int[] 第一位标识是否猜对,第二为A的数量,第三为B的数量.
*
*/
public int[] check(String guessNum){
int[] guess = new int[4];
for(int i=0;i4;i++){
guess[i] = Integer.parseInt(guessNum.substring(i, i+1));
}
int a=0,b=0,c=0;
for(int i = 0;i4;i++){
for(int j=0;j4;j++){
if(answer[i]==guess[j]i==j){
a++;
}else if(answer[i]==guess[j]){
b++;
}
}
}
if(a==4){
c=1;
}
return new int[] {c,a,b};
}
public static void main(String[] args) {
Oprator op = new Oprator();
op.randAnswer();
for(int i=0;iop.answer.length;i++){
System.out.print(op.answer[i]);
}
System.out.println();
Scanner in = new Scanner(System.in);
while(true){
op.check(in.next());
}
}
public int[] getAnser(){
return this.answer;
}
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}
public boolean isEnd() {
return isEnd;
}
public void setEnd(boolean isEnd) {
this.isEnd = isEnd;
}
}
java猜一个四位数游戏的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java猜数字小游戏、java猜一个四位数游戏的信息别忘了在本站进行查找喔。
发布于:2022-12-03,除非注明,否则均为
原创文章,转载请注明出处。