java - day09 - summerize
猜字母游戏
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的更多相关文章
- Spark案例分析
一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...
- java 多线程 day09 线程池
import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.c ...
- Java 学习 day09
01-面向对象(内部类访问规则) package myFirstCode; /* 内部类的访问规则: 1. 内部类可以直接访问外部类的成员,包括私有private. 之所以可以直接访问外部类中的成员, ...
- Java之路---Day09(继承)
2019-10-23-22:58:23 目录 1.继承 2.区分成员变量重名的方法 3.区分成员方法重名的方法 4.继承中重写与重载的区别 5.继承中覆盖重写的注意事项 6.继承中覆盖重写的设计原则 ...
- Java 复习整理day09
package com.it.demo01_thread; /* 案例: 多线程简介. 概述: 指的是进程有多条执行路径, 统称叫: 多线程. 进程: 指的是可执行程序, 文件(例如: .exe) 大 ...
- Java学习day09—-封装和继承
封装 1.封装 1.1 封装的概念和实现 封装: 属性私有:将属性使用private修饰,表示此属性只能在本类中访问,不让外部直接访问 方法公开:针对每一个属性编写一对公开的方法 get set 分别 ...
- java学习第二天多态.day09
接口 接口总结 接口表示一种规约(规范.标准),它里面定义了一些列抽象方法(功能),它可以被多个类实现. 1接口名称首写字母用I,表示一个接口,后命名使用驼峰命名 2.接口中定义的都是抽象方法,所以可 ...
- Java历程-初学篇 Day09 冒泡排序
冒泡排序 冒泡排序(Bubble Sort)是一种简单的排序算法.它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地进行直到没有再需要交换,也就是 ...
- [Java拾遗三]JavaWeb基础之Servlet
Servlet 1,servlet介绍 servlet是一项动态web资源开发技术. 运行在服务器端. 作用:处理业务逻辑,生成动态的内容,返回给浏览器 ...
随机推荐
- [SPOJ]DIVCNT3
别人写的讲得挺好的博客 洲阁筛,一种快速求积性函数前缀和的算法 求$\sum\limits_{i=1}^nF(i)$,其中$F(x)$是积性函数,并且$F(p^c)$是关于$p$的低阶多项式 我们把$ ...
- int和Integer,String和String(包装类)
1.int和Integer的值如果是一样的,则是在内存中开辟相同的内存空间 2.但是String和String(包装类)是不一样的 代码演示: int a=1; Integer b = new Int ...
- 【mybatis】mybatis使用java实体中定义的常量,或静态方法
mybatis使用java实体中定义的常量 示例代码: <select id="findDealerInfo" parameterType="com.pisen.c ...
- android多线程-AsyncTask之工作原理深入解析(下)
关联文章: Android 多线程之HandlerThread 完全详解 Android 多线程之IntentService 完全详解 android多线程-AsyncTask之工作原理深入解析(上) ...
- javascript(JQuery)元素操作
html代码如下: <div id="picK"> <ul> <li style="float:left;width:90px;" ...
- scrapy-splash抓取动态数据例子十六
一.介绍 本例子用scrapy-splash爬取梅花网(http://www.meihua.info/a/list/today)的资讯信息,输入给定关键字抓取微信资讯信息. 给定关键字:数字:融合:电 ...
- 一个简单的JS函数,用于判断文本是否数字
/****************************************************** 判断是否是数字(整数,小数均可,不包括负数)* 2014年10月10日22:38:19* ...
- centos 6.5 python2.6.6 zbar 安装
经过数次折腾,终于搞明白了这个zbar的安装顺序. 1.先安装http://zbar.sourceforge.net/download.html 下的zbar, 2.python 安装z ...
- 响应式设计工具网站mydevice.io
1.网址 https://mydevice.io/ 2.使用 在mydevice.io上有常见智能手机,PC电脑的尺寸.
- Android短信发送器(2)
在上一篇的<Android短信发送器>当中.发送功能并不完好.当发送内容超过限定字数时,短信就会发送失败,此时就须要推断内容是否超过限制,假设不超过限制.就直接发送,反之.则对其进行处理再 ...