zoukankan      html  css  js  c++  java
  • java

    猜字母游戏

     1 package day08_summerize;
     2 import java.util.Scanner;
     3 import java.util.Random;
     4 
     5 //猜字母游戏
     6 /**
     7  * @author Jooker
     8  * @version v1.0
     9  *
    10  */
    11 public class GuessCharsGame {
    12        
    13     //method1 生成器:生成1个有n个随机字母元素的数组,元素不重复
    14     public char[] arrayChar(int m){
    15         Random rand = new Random();
    16         char[] character = new char[m];
    17         
    18         for(int n=0;n<m;n++){
    19             character[n] = (char)(rand.nextInt(25)+97); /*随机元素*/
    20             int i = 0;
    21             while(i<n){
    22                 if(character[n] == character[i]){ /*如果重复,再给该位置的元素赋值,再比较,直到不重复*/
    23                     character[n] = (char)(rand.nextInt(25)+97); 
    24                 }else{
    25                     i++;
    26                 }
    27             }
    28             System.out.print(character[n]);
    29         }
    30         return character;
    31     }
    32     
    33     //method2 比较器:比较随机生成的字母序列和输入的字符串;交互:正确数量、正确位置、猜的次数
    34     public boolean check(String in,char[] check,int number,int summerize,boolean treat){
    35         int counter = 0;
    36         int position = 0;
    37         treat = true;
    38         
    39         for(int n=0;n<number;n++){    
    40             for(int i=0;i<in.length();i++){  
    41                 if(check[n] == in.charAt(i)){  //String1.charAt(i) --从String1字符串里,取出第i个字母
    42                     counter++;
    43                     if(n == i){
    44                         position++;    
    45                     }
    46                 }
    47             }
    48         }
    49         
    50         if((counter == number)&&(position == number)){
    51             System.out.println("恭喜你,都答对了.");
    52             treat = false;
    53         }else if(in.equals("exit")){
    54             System.out.println("退出游戏");
    55             treat = false;
    56         }else{            
    57             System.out.println("你猜对了"+counter+"个字母,其中"+position+"个字母位置正确(总次数="+summerize+",exit——退出)");
    58         }
    59         
    60         return treat;
    61     }
    62     
    63     public static void main(String[] args){
    64         Scanner scan = new Scanner(System.in);
    65         
    66         //实例化类,再调用方法,生成字母序列
    67         System.out.println("欢迎参加猜字母游戏,请输入你想猜测的字母序列元素个数:");
    68         int num = scan.nextInt(); /*输入字母序列个数*/
    69         System.out.println("游戏开始,你猜测的为"+num+"个字母的序列:(exit——退出)");
    70         GuessCharsGame gener = new GuessCharsGame();
    71         
    72         char[] focus = gener.arrayChar(num);  /*调用method1,随机生成字母序列*/ 
    73         
    74         //输入字符串
    75         int sum = 0;
    76         boolean tar =true;
    77         while(tar){
    78             String input = scan.next(); 
    79             sum++;
    80             tar = gener.check(input, focus, num, sum, tar);
    81         }        
    82         scan.close();
    83     }
    84 }
  • 相关阅读:
    Java算法练习——整数反转
    Java算法练习—— Z 字形变换
    Java算法练习——最长回文子串
    vs code自动生成html代码
    thinkphp整合后台模板
    composer安装后台模板
    composer(作曲家)安装php-ml
    两个网站
    PHP的开源产品discuz
    onethink中的用户登录session签名
  • 原文地址:https://www.cnblogs.com/DeRozan/p/6807780.html
Copyright © 2011-2022 走看看