java——第四天

猜字符小游戏
程序=算法+结构


1、设计数据结构:
    1)char[] chs;//随机生产的字符数组
    2)char[] input;//用户输入的字符数组
    3)int letterRight;//字符对 个数
      int positionRight;//字符对个数
      
      int[] result;
      
      int[] result;//对比的结果
    4)int score;//得分
      int count;//猜错次数 
      
2、设计程序结构:方法
    1)、主方法:
    public static void main(String[] args){
        pass;
    }
    2)、随机生成字符数组:len=5;
    public static char[] generate(int len){
        char[] chs=new char[len];
        //给chs中每个元素赋值
        return chs;
    }
    3)对比:随机字符与用户输入的字符数据
    public static int[] check(char[] chs.char[] input){
        //比较
        result[]=new int[2]{5,3};
        return result;
    }

3、设计算法:方法的实现

  1 package day02;
  2 import java.util.Random;
  3 import java.util.Scanner;
  4 public class Guessing {
  5 
  6     public static void main(String[] args) {
  7         Scanner scan=new Scanner(System.in);
  8         System.out.println("随机生成一个字符数组:");
  9 //        int len=scan.nextInt();
 10         
 11         char[] chs=generate();
 12         for(char i:chs) {
 13             System.out.print(i);
 14         }
 15         System.out.println("请输入字符数组长度5的字符串:");
 16         String input=scan.next();
 17         char[] myinput=new char[5];
 18         for(int index=0;index<chs.length;index++) {
 19             //input[index]=scan.next();
 20             //input[index]=(char)System.in.read();
 21             myinput[index]=input.charAt(index);
 22         }
 23         
 24         int[] result=check(chs,myinput);
 25         System.out.println("字符对"+result[0]+"位置对"+result[1]);
 26 
 27     }
 28 //    //随机生成字符数组:len=5;
 29 //    public static char[] generate(int len){
 30 //        char[] chs=new char[len];
 31 //        //给chs中每个元素赋值
 32 //        Random random =new Random();
 33 //        int[] arr=random.ints(len,65,91).toArray();//生成[65,91)之间的随机整数
 34 //        for (int i = 0; i < arr.length; i++) {
 35 //            //System.out.println(arr[i]);
 36 //            chs[i]=(char)(arr[i]);
 37 //        }
 38 //        return chs;
 39 //    }
 40 //    //随机生成字符数组:len=5;
 41 //    public static char[] generate(){
 42 //        char[] chs=new char[5];
 43 //        Random random =new Random();
 44 //        int[] arr=random.ints(5,65,91).toArray();
 45 //        for (int i = 0; i < arr.length; i++) {
 46 //            //System.out.println(arr[i]);
 47 //            chs[i]=(char)(arr[i]);
 48 //        }
 49 //        return chs;
 50 //    }
 51 //    
 52     public static char[] generate(){
 53         char[] chs=new char[5];
 54         char[] letters= {'A','B','C','D','E','F','G','H','I','J','K',
 55                 'L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};
 56         boolean[] flags=new boolean[letters.length];
 57         
 58 //        System.out.println(letters[index]);
 59         for(int i=0;i<chs.length;i++) {
 60             int index;
 61             do {
 62              index=(int)(Math.random()*26);//0~~~26随机变量
 63             }while(flags[index]==true);
 64             
 65             chs[i]=letters[index];
 66             flags[index]=true;
 67             //chs[i]=(char)(index);
 68             
 69         }
 70 //        for(char v:chs) {
 71 //            System.out.println(v);
 72 //        }
 73 
 74         return chs;
 75     }
 76     //对比:随机字符与用户输入的字符数据
 77     public static int[] check(char[] chs,char[] input){
 78         //比较resilt[0]字符对  result[1]位置对
 79         int[] result=new int[2];
 80         if (chs.length==input.length) {
 81             System.out.println("两个数组长度相等,可以比较!");
 82             for(int j =0;j<chs.length;j++) {
 83                 for(int p=0;p<input.length;p++) {
 84                     //判断值相等,记录一次
 85                     if(input[p]==chs[j]) {
 86                         result[0]++;
 87                         //判断当值相等,位置是否相等。
 88                         if (p==j) {
 89                             result[1]++;
 90                         }
 91                         break;
 92                     }
 93                     
 94                 }
 95             }
 96         }
 97         else {
 98             System.out.println("两个数组长度不相等,请重新输入");
 99             
100         }
101         return result;
102     }
103 
104 }

 

  1 package day02;
  2 import java.util.Random;
  3 import java.util.Scanner;
  4 public class Guessing {
  5 
  6     public static void main(String[] args) {
  7         Scanner scan=new Scanner(System.in);
  8         System.out.println("随机生成一个字符数组:");
  9 //        int len=scan.nextInt();
 10         
 11         char[] chs=generate();
 12         for(char i:chs) {
 13             System.out.print(i);
 14         }
 15         System.out.println("请输入字符数组长度5的字符串:");
 16         String input=scan.next();
 17         //第一种 把string 转换成char 数组
 18 //        char[] myinput=new char[input.length()];
 19 //        for(int index=0;index<input.length();index++) {
 20 //            //input[index]=scan.next();
 21 //            //input[index]=(char)System.in.read();
 22 //            myinput[index]=input.charAt(index);
 23 //        }
 24         //第二种 把string 转换成char 数组
 25         char[] myinput=input.toCharArray();
 26                 
 27         
 28         int[] result=check(chs,myinput);
 29         System.out.println("字符对"+result[0]+"位置对"+result[1]);
 30 
 31     }
 32 //    //随机生成字符数组:len=5;
 33 //    public static char[] generate(int len){
 34 //        char[] chs=new char[len];
 35 //        //给chs中每个元素赋值
 36 //        Random random =new Random();
 37 //        int[] arr=random.ints(len,65,91).toArray();//生成[65,91)之间的随机整数
 38 //        for (int i = 0; i < arr.length; i++) {
 39 //            //System.out.println(arr[i]);
 40 //            chs[i]=(char)(arr[i]);
 41 //        }
 42 //        return chs;
 43 //    }
 44 //    //随机生成字符数组:len=5;
 45 //    public static char[] generate(){
 46 //        char[] chs=new char[5];
 47 //        Random random =new Random();
 48 //        int[] arr=random.ints(5,65,91).toArray();
 49 //        for (int i = 0; i < arr.length; i++) {
 50 //            //System.out.println(arr[i]);
 51 //            chs[i]=(char)(arr[i]);
 52 //        }
 53 //        return chs;
 54 //    }
 55 //    
 56     public static char[] generate(){
 57         char[] chs=new char[5];
 58         char[] letters= {'A','B','C','D','E','F','G','H','I','J','K',
 59                 'L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};
 60         boolean[] flags=new boolean[letters.length];
 61         
 62 //        System.out.println(letters[index]);
 63         for(int i=0;i<chs.length;i++) {
 64             int index;
 65             do {
 66              index=(int)(Math.random()*26);//0~~~26随机变量
 67             }while(flags[index]==true);
 68             
 69             chs[i]=letters[index];
 70             flags[index]=true;
 71             //chs[i]=(char)(index);
 72             
 73         }
 74 //        for(char v:chs) {
 75 //            System.out.println(v);
 76 //        }
 77 
 78         return chs;
 79     }
 80     //对比:随机字符与用户输入的字符数据
 81     public static int[] check(char[] chs,char[] input){
 82         //比较resilt[0]字符对  result[1]位置对
 83         int[] result=new int[2];
 84         if (chs.length==input.length) {
 85             System.out.println("两个数组长度相等,可以比较!");
 86             for(int j =0;j<chs.length;j++) {
 87                 for(int p=0;p<input.length;p++) {
 88                     //判断值相等,记录一次
 89                     if(input[p]==chs[j]) {
 90                         result[0]++;
 91                         //判断当值相等,位置是否相等。
 92                         if (p==j) {
 93                             result[1]++;
 94                         }
 95                         break;
 96                     }
 97                     
 98                 }
 99             }
100         }
101         else {
102             System.out.println("两个数组长度不相等,请重新输入");
103             
104         }
105         return result;
106     }
107 
108 }
View Code
原文地址:https://www.cnblogs.com/Mengchangxin/p/10291446.html