猜数字游戏的两个Java程序代码
korol-聪明的狗
猜数字游戏的两个Java程序代码
1、比较简单
import r;
import
public class Cai {
**
*
生成100内的随即数然后 提示用户输入
* 用户输入数据猜
*提示用户
猜大了还是猜 小了
*
public static void
main(String[] args) {
while(true){
n(欢迎你试玩猜数字游戏:
n(请按 1开始 2退出
Scanner s
= new Scanner();
int ch=0;
ch = t();
if(ch==1){
n(
Scanner ca =
new Scanner();
int max =0;
int
j=0;
int i=0;
max= (int)(()*100);
do{
n(请您输入数字:
j = t();
if(j
}
if(j>max){
n(太大哦
}
if(j==max){
break;
}
i++;
}while(i<10);
switch(i){
case 1: n(您猜对了,您获得100分
case 2: n(您猜对了,您获得90分
case 3:
n(您猜对了,您获得80分
case 4:
n(您猜对了,您获得70分
case 5:
n(您猜对了,您获得60分
case 6: n(您猜对了,您获得50分
case 7: n(您猜对了,您获得40分
case 8:
n(您猜对了,您获得30分
case 9: n(您猜对了,您获得20分
case 10: n(您猜对了,您获得10分
default
:n(对不起你没猜对
}
}else if(ch==2) {
break;}
}
n(谢谢您的使用
}
}
2、比较复杂的
import
import r;
public class Guess {
public static void
main(String[] args) {
产生随机数
int[]
guess = MakeGuessNumber();
(系统产生的随机数为:
for(int i=0; i<4; i++){
(guess[i]);
}n();
int[] putIn 定义用户输入
String right
= 临时保存比较的结果
String[] history = new
String[]{
for(int i=0; i<10; i++){
putIn = PutIn(history); 获取用户输入
right =
CompareNumber(guess, putIn); 比较输入结果
history[i] = RemarkHistory(putIn, right);
作历史记录,以便随时查看
if(eTo(
n(恭喜您,猜中了!!!
PrintMenu();
menu(history);
}
}
n(您已经猜了10次,本次游戏结束
PrintMenu();
menu(history);
}
自动产生四个0~9的数字作为随机数,这个四位数相互之间不能相同。
public static int[] MakeGuessNumber(){
Random r = new Random();
int[] guess = new
int[4];
for(int i=0; i<4; i++){
guess[i] = t(10);
for(int j=i-1; j>=0;
j--){
if(guess[i]==guess[j]){i--;break;}
}
}
return guess;
}
使用者输入猜的四个数字(这四个数字之间也不能相同,
如果有相同的则提示使用者,并让
它重新输入)
public static int[]
PutIn(String[] history){
int[] number = new
int[4];
int putIn = 0;
Scanner sc =
new Scanner();
n(请输入您猜想的4位数字
PrintMenu();
out1: while(true){
如果输入英文、符号、小数等则提示并要求重新输入
try {
putIn
= t();
} catch (Exception e) {
String str = ();
if(
if(
if(
n(请输入正整数。
continue;
}
如果输入的不是4位数,提示并要求重新输入
if(putIn>9999
|| putIn<100){
n(请输入一个4位数
continue;
}
把输入的一个4位数字变成数组
number[0] =
putIn1000;
number[1] = putIn%1000100;
number[2] = putIn%10010;
number[3] =
putIn%10;
如果有相同的数字,提示并要求重新输入
for(int
i=0; i<4; i++){
for(int j=i-1;
j>=0; j--){
if(number[i]==number[j]){
n(请输入4位不相同的数字
continue out1;
}
}
}
输入没错时,退出此死循环,继续其它操作
break;
}
return number;
}
比较输入的与系统产生的,返回结果: xA yB
public static String CompareNumber(int[]
guess, int[] putIn){
int rightA = 0;
比较结果有多少个
int rightB = 0; 比较结果有多少个
String
right = 以字符串形式保存的比较结果
计算出多少个
for(int
i=0; i<4; i++){
if(guess[i]==putIn[i])
rightA++;
}
计算出多少个
for(int i=0;
i<4; i++){
for(int j=0; j<4; j++){
if(guess[j]==putIn[i]) rightB++;
}
}
rightB -= rightA;前面的循环会连的也算上,所以需减去
if(rightA != 0) right += rightA +
if(rightB
!= 0) right += rightB +
if(rightA==0 &&
rightB==0) right =
n(right);
return
right;
}
public static void PrintMenu(){
n(输入重新开始游戏;输入结束游戏;输入查看历史记录
}
public static void menu(String[] history){
Scanner sc = new Scanner();
String str
= ();
if(
if(
if(
}
public static String
RemarkHistory(int[] putIn, String right){
String str =
for(int i=0; i<4; i++){
str += putIn[i];
}
str +=
return str;
}
public static void
PrintHistory(String[] history){
for(int i=0;
i<; i++){
if(还没有输入内容
if(
n(history[i]);
}
}
}