猜数字游戏的两个Java程序代码
1、比较简单
import java.util.Scanner;
import java.lang.Math;
public class Cai {
/**
  * 生成100内的随即数然后 提示用户输入
  * 用户输入数据猜
  *提示用户 猜大了还是猜 小了
  */
public static void main(String[] args) {
  while(true){
  System.out.println("欢迎你试玩猜数字游戏:");
  System.out.println("请按 1开始 2退出");
  Scanner  s = new Scanner(System.in);
  int ch=0;
  ch = s.nextInt();
  if(ch==1){
    System.out.println("---------------------");
    Scanner  ca = new Scanner(System.in);
    int max =0;
    int j=0;
    int i=0;
    max= (int)(Math.random()*100);
    do{
    System.out.println("请您输入数字:");
    j = ca.nextInt();
    if(j<max){
      System.out.println("太小哦");
    }
    if(j>max){
      System.out.println("太大哦");
    }
    if(j==max){
      break;
    }
    i++;
    }while(i<10);
    switch(i){
    case 1: System.out.println("您猜对了,您获得100分"); break;
    case 2: System.out.println("您猜对了,您获得90分"); break;
    case 3: System.out.println("您猜对了,您获得80分"); break;
    case 4: System.out.println("您猜对了,您获得70分"); break;
    case 5: System.out.println("您猜对了,您获得60分"); break;
    case 6: System.out.println("您猜对了,您获得50分"); break;
    case 7: System.out.println("您猜对了,您获得40分"); break;
    case 8: System.out.println("您猜对了,您获得30分"); break;
    case 9: System.out.println("您猜对了,您获得20分"); break;
    case 10: System.out.println("您猜对了,您获得10分"); break;
    default :System.out.println("对不起你没猜对"); break;
    }
  }else if(ch==2) { break;}
  }
  System.out.println("谢谢您的使用");
}
}
2、比较复杂的
import java.util.Random;
import java.util.Scanner;
public class Guess {
public static void main(String[] args) {
  //产生随机数
  int[] guess = MakeGuessNumber();
  System.out.print("系统产生的随机数为:");
  for(int i=0; i<4; i++){
  System.out.print(guess[i]);
  }System.out.println();
  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(rightpareTo("4A")==0){
    System.out.println("恭喜您,猜中了!!!");
    PrintMenu();
    menu(history);
  }
  }
  System.out.println("您已经猜了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] = r.nextInt(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(System.in);
  System.out.println("请输入您猜想的4位数字");
  PrintMenu();
  out1: while(true){
  //如果输入英文、符号、小数等则提示并要求重新输入
  try {
    putIn = sc.nextInt();
  } catch (Exception e) {
    String str = sc.next();
    if("Y"pareTo(str)==0 || "y"pareTo(str)==0) {main(null);}
    if("N"pareTo(str)==0 || "n"pareTo(str)==0) {it(0);}
    if("H"pareTo(str)==0 || "h"pareTo(str)==0) {PrintHistory(history);}
    System.out.println("请输入正整数。");
    continue;
  }
  //如果输入的不是4位数,提示并要求重新输入
简单的java游戏代码  if(putIn>9999 || putIn<100){
    System.out.println("请输入一个4位数");
    continue;
  }
  //把输入的一个4位数字变成数组
  number[0] = putIn/1000;
  number[1] = putIn%1000/100;
  number[2] = putIn%100/10;
  number[3] = putIn%10;
  //如果有相同的数字,提示并要求重新输入
  for(int i=0; i<4; i++){
    for(int j=i-1; j>=0; j--){
    if(number[i]==number[j]){
      System.out.println("请输入4位不相同的数字");
      continue out1;
    }
    }
  }
  //输入没错时,退出此死循环,继续其它操作
  break;
  }
  return number;
}
//比较输入的与系统产生的,返回结果: xA yB
public static String CompareNumber(int[] guess, int[] putIn){
  int rightA = 0; //比较结果有多少个"A"
  int rightB = 0; //比较结果有多少个"B"
  String right = ""; //以字符串形式保存的比较结果
  //计算出多少个"A"
  for(int i=0; i<4; i++){
  if(guess[i]==putIn[i]) rightA++;
  }
  //计算出多少个"B"
  for(int i=0; i<4; i++){
  for(int j=0; j<4; j++){
    if(guess[j]==putIn[i]) rightB++;
  }
  }
  rightB -= rightA;//前面的循环会连"A"的也算上,所以需减去
  if(rightA != 0) right += rightA + "A";
  if(rightB != 0) right += rightB + "B";
  if(rightA==0 && rightB==0) right = "0A0B";
  System.out.println(right);
  return right;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。