「java猜一个四位数游戏」java猜数字小游戏

博主:adminadmin 2022-12-03 18:54:07 71

本篇文章给大家谈谈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猜一个四位数游戏的信息别忘了在本站进行查找喔。

The End

发布于:2022-12-03,除非注明,否则均为首码项目网原创文章,转载请注明出处。