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资源开发技术. 运行在服务器端. 作用:处理业务逻辑,生成动态的内容,返回给浏览器 ...
随机推荐
- 【记忆化搜索】bzoj1048 [HAOI2007]分割矩阵
标准差=√(Σ(xi-xba)2/n)=Σ(xi)2+xba*n-2*xba*sum.只需最小化每个分割出来的矩阵的平方和即可. #include<cstdio> #include< ...
- 【最近公共祖先】【块状树】CODEVS 1036 商务旅行
在线块状树LCA模板. #include<cstdio> #include<vector> #include<algorithm> #include<cmat ...
- 使用jmatio读写matlab数据文件
/** * Created by hfz on 2016/2/23. */ import com.jmatio.io.*; import com.jmatio.types.MLDouble; impo ...
- 64945e3dtw1dii6vfdr19j.jpg(PNG 图像,1497x929 像素)
64945e3dtw1dii6vfdr19j.jpg(PNG 图像,1497x929 像素)
- Looking deeper into SQL Server using Minidumps
https://blogs.msdn.microsoft.com/sqlcat/2009/09/11/looking-deeper-into-sql-server-using-minidumps/ A ...
- 【JVM】调优笔记1-----堆栈概念的对碰
关于JVM的工作原理以及调优是一个向往已久的模块,终于有幸接触到:http://pengjiaheng.iteye.com/blog/518623 那就顺着这个思路,来梳理一下自己看到后的结论和感想. ...
- HttpApplication理解
HttpApplication对象是经由HttpApplicationFactory.GetApplicationInstance(并最终调用HttpRuntime.CreateNonPublicIn ...
- OpenStack手动制作CentOS 7 KVM镜像
在前面讲解KVM的时候,我们已经学习了如何制作KVM镜像,那么制作OpenStack使用的镜像和KVM是有一些区别的. 1. 下载CentOS 7官方ISO安装镜像这里使用国内阿里云的镜像源进行 ...
- JavaScript Array reverse 方法:颠倒数组中元素的顺序
在JavaScript中,Array对象的reverse()方法将颠倒(反转)数组中元素的顺序.arr.reverse()在原数组上实现这一功能,即,reverse()会改变原数组. 例1:将数组元素 ...
- 【网络】再谈select, iocp, epoll,kqueue及各种I/O复用机制 && Reactor与Proactor的概念
首先,介绍几种常见的I/O模型及其区别,如下: blocking I/O nonblocking I/O I/O multiplexing (select and poll) signal drive ...