数字游戏

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数字游戏相关的知识,希望对你有一定的参考价值。

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

 

package com.lovo.gamework;

public class Machine {  

  public static void main(String[] args){

   User user=new User();   

user.theOutput();

}

}

 

 //随机产生四个数

package com.lovo.gamework;

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;
      }
       }
 }

    
 }
 

 

 

//比较

 

package com.lovo.gamework;

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){

  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(){
 Randomnumber Randomnumber=  new Randomnumber();
    this.Randomnum=new Randomnumber().getRandomnumber();
 int A=0;
 int B=0;
  for(int m=1;m<8;m++){     //机会
   theNumber();
   String str=toCompare(0,0);
  if(!str.equals("4A0B")){
   System.out.println(str);
   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); 

}

}

以上是关于数字游戏的主要内容,如果未能解决你的问题,请参考以下文章

C语言 猜数字游戏代码

Leetcode-299 猜数字游戏

c语言猜数字游戏源代码

用C#编写猜数字游戏,

java猜数字游戏代码

猜数字游戏程序设计