java方法-----猜字母案例
来源:互联网 发布:windows10 配置mysql 编辑:程序博客网 时间:2024/06/05 18:49
第二篇文章
之前通过冒泡排序已经无意间涉及了for循环、数组、数组排序和方法多个java 的基础层次,这篇文章通过“猜字母”在深部了解一下java的方法。
游戏规则:系统随机生成五个不同字母,然后用户输入字母(不区分大小写),会根据对比结果,输出对了几个字母和位置对了几个。
总代码=main+check+generate
1. 用generate方法随机生成字母数组(chs数组)
flag[]数组是用来判断letters[]中字母是否被选中过,目的是为了选出五个不同的字母。
//生成随机字母 public static char[] generate() { char[] chs=new char[5]; boolean[] flag=new boolean[26]; int x=0; char[] letters={ 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z' }; for(int i=0;i<chs.length;i++){ do{ x=(int)(Math.random()*letters.length); }while(flag[x]); chs[i]=letters[x]; flag[x]=true; } return chs; }
2. 输入字母(input数组)与chs数组用check方法比较
双重for循环判断,首先通过数组两两遍历判断字母是否有相同的,然后通过数组下标判断位置是否相同。
//比对 public static int[] Check(char chs[],char input[]) { int[] result=new int[2]; for(int i=0;i<chs.length;i++){ for(int j=0;j<input.length;j++){ if(chs[i]==input[j]){ result[1]++; if(i==j) result[0]++; break; } } } return result; }
3. main方法中实现多次输入、比对
在while中反复执行输入,check和结果输出,
ps:exit是退出游戏,其中有作弊代码,有标注
public static void main(String[] args) { int count=0; int score=500; Scanner scan=new Scanner(System.in); int[] result=new int[2]; char[] chs=generate(); char[] input=new char[5]; //作弊代码,会把随机生成的数组输出 System.out.println(chs); while(true){ String str=scan.next().toUpperCase(); if(str.equals("EXIT")){ System.out.println("欢迎下次再来"); break; } input=str.toCharArray(); result=Check(chs, input); if(result[0]==chs.length){ System.out.println("恭喜你答对了"); break; } else System.out.println("猜对"+result[1]+"字母"+"猜对"+result[0]+"个位置"); } }
4.总代码
ps:exit是退出游戏,其中有作弊代码,有标注
import java.util.Scanner;public class Guessing { public static void main(String[] args) { int count=0; int score=500; Scanner scan=new Scanner(System.in); int[] result=new int[2]; char[] chs=generate(); char[] input=new char[5]; System.out.println(chs); while(true){ String str=scan.next().toUpperCase(); if(str.equals("EXIT")){ System.out.println("欢迎下次再来"); break; } input=str.toCharArray(); result=Check(chs, input); if(result[0]==chs.length){ System.out.println("恭喜你答对了"); break; } else System.out.println("猜对"+result[1]+"字母"+"猜对"+result[0]+"个位置"); } } public static char[] generate() { char[] chs=new char[5]; boolean[] flag=new boolean[26]; int x=0; char[] letters={ 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z' }; for(int i=0;i<chs.length;i++){ do{ x=(int)(Math.random()*letters.length); }while(flag[x]); chs[i]=letters[x]; flag[x]=true; } return chs; } public static int[] Check(char chs[],char input[]) { int[] result=new int[2]; for(int i=0;i<chs.length;i++){ for(int j=0;j<input.length;j++){ if(chs[i]==input[j]){ result[1]++; if(i==j) result[0]++; break; } } } return result; }}
过两天会开始写面向对象编程的案例“俄罗斯方块”,欢迎私信、评论。
互勉
阅读全文
0 0
- java方法-----猜字母案例
- 方法---猜字母游戏
- 方法、猜字母游戏
- Java图形界面实战案例——实现打字母游戏
- Java 猜字母2014
- Java 方法形参放类变量案例
- 猜字母游戏java源代码
- Java之猜字母小游戏
- 2014 java 蓝桥杯 猜字母
- 自定义字母索引的案例
- FUNDAMENTAL Unit06 方法 、 猜字母游戏
- 方法——猜字母小游戏
- java正则表达式中group()方法案例
- java方法重载原理,案例说明
- java基础 方法定义 格式 案例
- JNI 案例1-----java调用c方法
- Java中分布式案例的实现方法
- 使用Java方法实现多线程下载案例
- VLC学习(2) VLC架构及流程分析
- 解题报告:J.膜一下将带给你好运(欧拉函数) “盛大游戏杯”第15届上海大学程序设计联赛夏季赛
- Spring Boot Externalized Configuration
- poj1716
- 2017西安交大ACM小学期 神器插座 KMP匹配
- java方法-----猜字母案例
- “我祝你不幸并痛苦”,首席大法官说了番狠话却被追捧刷屏
- 利用linux的df和du命令查看文件和目录的内存占用
- Java加载类(Class)文件过程
- iOS App 唤醒另一个App
- NP完全问题 8.12
- spring boot security mybitis
- 堆内存过大 Grow heap (frag case) to 39.580MB for 2560016-byte allocation
- 通过rsync+inotify实现多服务器文件的实时同步