猜字母游戏

 package day08_summerize;
import java.util.Scanner;
import java.util.Random; //猜字母游戏
/**
* @author Jooker
* @version v1.0
*
*/
public class GuessCharsGame { //method1 生成器:生成1个有n个随机字母元素的数组,元素不重复
public char[] arrayChar(int m){
Random rand = new Random();
char[] character = new char[m]; for(int n=0;n<m;n++){
character[n] = (char)(rand.nextInt(25)+97); /*随机元素*/
int i = 0;
while(i<n){
if(character[n] == character[i]){ /*如果重复,再给该位置的元素赋值,再比较,直到不重复*/
character[n] = (char)(rand.nextInt(25)+97);
}else{
i++;
}
}
System.out.print(character[n]);
}
return character;
} //method2 比较器:比较随机生成的字母序列和输入的字符串;交互:正确数量、正确位置、猜的次数
public boolean check(String in,char[] check,int number,int summerize,boolean treat){
int counter = 0;
int position = 0;
treat = true; for(int n=0;n<number;n++){
for(int i=0;i<in.length();i++){
if(check[n] == in.charAt(i)){ //String1.charAt(i) --从String1字符串里,取出第i个字母
counter++;
if(n == i){
position++;
}
}
}
} if((counter == number)&&(position == number)){
System.out.println("恭喜你,都答对了.");
treat = false;
}else if(in.equals("exit")){
System.out.println("退出游戏");
treat = false;
}else{
System.out.println("你猜对了"+counter+"个字母,其中"+position+"个字母位置正确(总次数="+summerize+",exit——退出)");
} return treat;
} public static void main(String[] args){
Scanner scan = new Scanner(System.in); //实例化类,再调用方法,生成字母序列
System.out.println("欢迎参加猜字母游戏,请输入你想猜测的字母序列元素个数:");
int num = scan.nextInt(); /*输入字母序列个数*/
System.out.println("游戏开始,你猜测的为"+num+"个字母的序列:(exit——退出)");
GuessCharsGame gener = new GuessCharsGame(); char[] focus = gener.arrayChar(num); /*调用method1,随机生成字母序列*/ //输入字符串
int sum = 0;
boolean tar =true;
while(tar){
String input = scan.next();
sum++;
tar = gener.check(input, focus, num, sum, tar);
}
scan.close();
}
}

java - day09 - summerize的更多相关文章

  1. Spark案例分析

    一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...

  2. java 多线程 day09 线程池

    import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.c ...

  3. Java 学习 day09

    01-面向对象(内部类访问规则) package myFirstCode; /* 内部类的访问规则: 1. 内部类可以直接访问外部类的成员,包括私有private. 之所以可以直接访问外部类中的成员, ...

  4. Java之路---Day09(继承)

    2019-10-23-22:58:23 目录 1.继承 2.区分成员变量重名的方法 3.区分成员方法重名的方法 4.继承中重写与重载的区别 5.继承中覆盖重写的注意事项 6.继承中覆盖重写的设计原则 ...

  5. Java 复习整理day09

    package com.it.demo01_thread; /* 案例: 多线程简介. 概述: 指的是进程有多条执行路径, 统称叫: 多线程. 进程: 指的是可执行程序, 文件(例如: .exe) 大 ...

  6. Java学习day09—-封装和继承

    封装 1.封装 1.1 封装的概念和实现 封装: 属性私有:将属性使用private修饰,表示此属性只能在本类中访问,不让外部直接访问 方法公开:针对每一个属性编写一对公开的方法 get set 分别 ...

  7. java学习第二天多态.day09

    接口 接口总结 接口表示一种规约(规范.标准),它里面定义了一些列抽象方法(功能),它可以被多个类实现. 1接口名称首写字母用I,表示一个接口,后命名使用驼峰命名 2.接口中定义的都是抽象方法,所以可 ...

  8. Java历程-初学篇 Day09 冒泡排序

    冒泡排序 冒泡排序(Bubble Sort)是一种简单的排序算法.它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地进行直到没有再需要交换,也就是 ...

  9. [Java拾遗三]JavaWeb基础之Servlet

    Servlet    1,servlet介绍        servlet是一项动态web资源开发技术.        运行在服务器端.        作用:处理业务逻辑,生成动态的内容,返回给浏览器 ...

随机推荐

  1. 【树状数组】Gym - 101147J - Whistle's New Car

    题意就是对每个点i,统计在其子树内(不含自身),且depj-depi<=xj的点有多少个. 把点分别按照dep-x和dep进行排序,离线处理, 每次把dep-x小于等于当前dep值的点插入树状数 ...

  2. 【点分治】【map】【哈希表】hdu4670 Cube number on a tree

    求树上点权积为立方数的路径数. 显然,分解质因数后,若所有的质因子出现的次数都%3==0,则该数是立方数. 于是在模意义下暴力统计即可. 当然,为了不MLE/TLE,我们不能存一个30长度的数组,而要 ...

  3. 在Code First中自动创建Entity模型

    之前我在博客文章中介绍过如何使用Code First来创建数据库,通过CodeFirst的方式,可以大幅的减少开发人员的工作量,比传统的先创建库再ORM的方式简单了不少.但是,很多时候,特别是一些MI ...

  4. Matlab设置Legend横排、分块

    高级用法1:指定legend显示的位置: legend({'str1','str2','strn'},'Location','SouthEast'); 比较鸡肋,画好图后树手动拖动就好了 高级用法2: ...

  5. 【java】字符串的反转

    @org.junit.Test public void test(){ String a = "I IOVE CHINA"; if(a.indexOf(" ") ...

  6. iOS 常用的#define合集

    1.定义常量 定义常量的时候最好以小写字母k开头,让人见名知意, (1)导航栏高度:我们都知道iPhone竖屏时候导航栏的高度为44,这时候可以定义一个常量来表示该高度, #define kNaivg ...

  7. 关于接口 RandomAccess

    今天看到java.util.Collections这个工具类中的 public static <T> void fill(List<? super T> list, T obj ...

  8. Java平时需要注意的事项

    1.String 相等 稍微有点经验的程序员都会用equals比较而不是用 ==,但用equals就真的安全了吗,看下面的代码 user.getName().equals("xiaoming ...

  9. Yii2.0源码分析之——控制器文件分析(Controller.php)创建动作、执行动作

    在Yii中,当请求一个Url的时候,首先在application中获取request信息,然后由request通过urlManager解析出route,再在Module中根据route来创建contr ...

  10. 两个IP实现IIS和Apache公用80端口的设置方法

      1. 打开命令提示符并确保您位于 X:\Inetpub\Adminscripts 文件夹(其中 X 是 IIS 安装驱动器)中.为此,请在命令提示符下键入以下命令行: X: CD \Inetpub ...