zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    Android
    十大基础有用算法之迪杰斯特拉算法、最小生成树和搜索算法
    【随想】android是个什么东西,andorid机制随想
    【Unity3D】【NGUI】Atlas的动态创建
    Java集合01----ArrayList的遍历方式及应用
    JAVA线程
    VC++的project文件
    selector的button选中处理问题
    单元測试和白盒測试相关总结
    leetCode(40):Path Sum
  • 原文地址:https://www.cnblogs.com/Mengchangxin/p/10291446.html
Copyright © 2011-2022 走看看