家庭作业
猜数字游戏:
生成一个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);	
}
}
                    
                
                
            
        
浙公网安备 33010602011771号