用Java写一个简易猜数游戏
游戏规则:猜数字的游戏,由系统随机生成一个不同的四个数(0—9),例如(1234), 然后由用户输入四个不同的数字,如果输入的数字 与系统生成的数字相同并且位置相同 用 A 表示,
如果数字相同位置不同用B表示,例如输入(1245)结果显示: 2A1B 给用户10次输入的机会。
代码如下:
package com.guess;
import java.util.Scanner;
/**
*
* @author 小zz
*创建时间2019年5月8日下午5:09:35
*@version 1.0
*猜数游戏
*系统生成4个不同随机数
*用户输入四个不同数字
*/
public class Guess {
public static void main(String[] args) {
/**注:computer用于装电脑生成的数据,
* user用于装用户输入的数据
* contA,contB分别用于装A和B的个数
* panduan用于判断用户输入的是否为4个单个数字,若是则可以进行下一步操作
* panduan2用于,若所有的条件满足则进行下一步
* time为用户的游戏次数
* */
Scanner scanner = new Scanner(System.in);
int[] computer=new int[4];
int[] user=new int[4];
int contA=0;int contB=0;
int panduan=10;
int panduan2=10;
int time=3;
/**电脑随机生成*/
for(int i=0;i<computer.length;i++) {
computer[i]=(int) Math.floor(Math.random()*10);
}
// 排序
for(int i=0;i<computer.length-1;i++) {
for(int j=0;j<computer.length;j++) {
if(computer[i]>computer[j]) {
int stemp=computer[i];
computer[i]=computer[j];
computer[j]=stemp;
}
}
}
// 去重
for(int i=0;i<computer.length;i++) {
for(int j=computer.length-1;j>=0;j--) {
if(computer[i]==computer[j]&&i!=j) {
computer[j]=(int) Math.floor(Math.random()*10);
}
}
}
/**用于打印电脑生成的随机数*/
/*for(int i=0;i<computer.length;i++) {
System.out.print(computer[i]);
}*/
System.out.println("---------------------------游戏开始!---------------------------");
while(time>0) {
panduan=10;
panduan2=10;
/**用户输入*/
for(int i=0;i<user.length;i++) {
System.out.println("请输入第"+(i+1)+"个数:");
user[i]=scanner.nextInt();
}
/**判断输入是否正确*/
/**判断是否为4个单个数字*/
for(int i=0;i<user.length;i++) {
if(user[i]>=10) {
System.out.println("大哥!!填写错误,四个单个数字");
panduan=5;
panduan2=5;
break;
}
}
/**判断输入的四个数字是否相同*/
if(panduan==10) {
// 去重
for(int i=0;i<user.length;i++) {
for(int j=user.length-1;j>=0;j--) {
if(user[i]==user[j]&&i!=j) {
System.out.println("请输入四个不同的数字!!");
panduan2=5;
break;
}
}
}
}
/**若所有的条件满足则判断结果*/
if(panduan2==10) {
time--;
for(int i=0;i<computer.length;i++) {
for(int j=0;j<computer.length;j++) {
/**位置不同*/
if(computer[i]==user[j]&&i!=j) {
contB++;
break;
}
/**位置相同*/
if(computer[i]==user[j]&&i==j){
contA++;
break;
}
}
}
if(contA==4) {
System.out.println("恭喜您全部猜对,奖励一点巴巴掌");
time=0;
}else {
System.out.println(contA+"A"+contB+"B");
System.out.println("您还有"+time+"此机会");
System.out.println("您上次的输入为:");
for(int t=0;t<user.length;t++) {
System.out.print(user[t]);
}
System.out.println();
}
}
}}
}
本章要点:流程语句,数组排序,及数组去重