• munbergame


    家庭作业   

    猜数字游戏:
    生成一个4位的随机数,每一位都在0-9之间,每位必须不同。用户在外部输入一个猜测的4位数字,系统判断后返回结果。判断规则如下:如果用户猜测的数字正确且位置正确,则返回一个A;如果用户猜测的数字正确但是位置不正确,则返回B;
    例如:随机数为:1234。如果用户输入1357,则返回1A1B(1的数字和位置正确,3的数字正确但是位置不正确);如果用户输入2468,则返回0A2B(2和4这个两个数字正确,但是位置都不对。);如果用户输入6789,则返回0A0B(用户没有猜对任何数字);只有用户输入1234,即返回4A0B的情况,才算用户猜对。
    用户每次游戏共有7次机会。

     利用面向对象编程

    一.

    public class Machine {

    public static void main(String[] args){

    User user=new User();
    user.theOutput();

    }
    }

    二.

    public class Randomnumber {
    private int [] Randomnumber=new int[4];


    public int[] getRandomnumber() {
    return Randomnumber;
    }
    public void setRandomnumber(int[] randomnumber) {
    Randomnumber = randomnumber;
    }


    //随机产生四个数
    public Randomnumber(){
    for(int j=0;j<3;j++){
    Randomnumber[j]=(int) (Math.random()*10);

    switch(j){
    case 0:
    break;
    case 1:
    if(Randomnumber[j]==Randomnumber[j-1]){
    j--;
    }
    break;
    case 2:
    if(Randomnumber[j]==Randomnumber[j-1]&&Randomnumber[j]==Randomnumber[j-2]){
    j--;
    }
    break;
    case 3:
    if(Randomnumber[j]==Randomnumber[j-1]&&Randomnumber[j]==Randomnumber[j-2]&&Randomnumber[j]==Randomnumber[j-3]){
    j--;
    }
    break;
    }
    }
    }


    }


    三.

    import java.util.Scanner;

    public class User {
    private int[] number=new int[4];
    private int[] Randomnum=new int[4];
    Scanner scan = new Scanner(System.in);


    //输入数

    public void theNumber(){

    System.out.println("请输入四个不重复的数");

    for(int i=0;i<4;i++){
    System.out.println("请输入第"+(i+1)+"数");
    number[i]=scan.nextInt();
    switch(i){
    case 0:
    break;
    case 1:
    if(number[i]==number[i-1]){
    System.out.println("有相同数字,请重新输入");
    i-=1;
    }
    break;
    case 2:
    if(number[i]==number[i-1]&&number[i]==number[i-2]){
    System.out.println("有相同数字,请重新输入");
    i-=1;
    }
    break;

    case 3:
    if(number[i]==number[i-1]&&number[i]==number[i-2]&&number[i]==number[i-3]){
    System.out.println("有相同数字,请重新输入");
    i-=1;
    }
    break;
    }
    }

    }

    //比较
    public String toCompare(int A,int B){
    Randomnumber Randomnumber= new Randomnumber();
    this.Randomnum=new Randomnumber().getRandomnumber();
    for(int s=0;s<4;s++){
    //randomnum数组的下标
    for(int n=0;n<4;n++){ //number数组的下标
    if(this.number[n]==this.Randomnum[s]){

    if(n==s){
    A++;
    }
    else{
    B++;
    }
    }

    else{
    continue;
    }

    } //内层for语句结束

    } //外层for语句结束
    return A+"A"+B+"B";
    }

    //输出
    public void theOutput(){
    int A=0;
    int B=0;
    for(int m=1;m<8;m++){ //机会
    theNumber();
    String str=toCompare(0,0);
    if(A!=4){
    System.out.println(str+"您还有"+(7-m)+"次机会");
    }
    else{
    System.out.println(str);
    System.out.println("恭喜你成功了!");
    break;
    }

    }
    //结束
    System.out.println("game over");
    if(A!=4){
    System.out.println("很遗憾,你的机会以用完");
    }
    System.out.println("欢迎下次光临");
    System.exit(0);
    }

    }

  • 相关阅读:
    [LeetCode]Reverse Linked List II
    [LeetCode]Move Zeroes
    Next Greater Element I
    Keyboard Row
    Number Complement
    SQL语句学习(二)
    SQL语句学习(一)
    jQuery学习(三)
    jQuery学习(二)
    JQuery学习(一)
  • 原文地址:https://www.cnblogs.com/-xhx/p/5518068.html
Copyright © 2020-2023  润新知