Java编程开发新手学习:数组方法的应用猜字母游戏

Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。

给你学习路线:html-css-js-jq-javase-数据库-jsp-servlet-Struts2-hibernate-mybatis-spring4-springmvc-ssh-ssm

小编推荐一个学Java的学习裙【 六五零,五五四,六零七 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!

/*

* 猜字母游戏

* 要求:

* 1,系统随机生成5个不同的字母

* 2,用户输入5个不同的字母去匹配

* 3,输出结果包括正确字母个数和正确位置个数

* 4,统计得分,总共500分,错一次扣10分

* 5,输入EXIT退出游戏

* */

/*

* 分析:

* 数据结构:

* 采用数组来存储字母

* 第一步:产生5个不同的字母

* 用方法实现generate()

* 随机产生字母的方法Java没有提供,需要自己设计:

* 可以随机产生数字做数组的下表。

* 第二步:比较两个数组的字母check()

* 判断字母对的个数和位置对的个数

*

* 第三步:main()函数

* 输出结果

* */

package day06;

import java.util.Scanner;

public class Guessing {

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

Scanner scan = new Scanner(System.in);

System.out.println("游戏开始啦----->ready go......");

char[] chs = generate();

//作弊,提示正确答案

//注意因为"要猜的字母是:"和chs不能写在同一个输出语句中

System.out.print("提示:要猜的字母是:");

System.out.println(chs);//专门打印出数组,Java给出的功能

int count=0;//标记猜错的次数

while(true){//这里创建while循环是为了后面break跳出循环,因为是exit就不需要进入循环了,

//同时猜对了也要跳出,不然就是死循环了还会让你继续猜

System.out.println("写出你猜的字母:");

//然后用户输入字母

String str = scan.next().toUpperCase();//对输入的字母不区分大小写,因为会转化为大写

if(str.equals("EXIT")){

System.out.println("欢迎下次再来!!!");

break;

}

char[] input = str.toCharArray();//转化为数组

//比较

int[] result = check(chs,input);

System.out.println("字母正确个数是:"+result[1]);

System.out.println("位置正确个数是:"+result[0]);

//添加一个得分功能的话上面的代码需要修改

//判断猜对了只要是猜对的位置个数是5就行

if(result[0]==chs.length){

System.out.println("恭喜你猜对了!!!");

int score = chs.length*100-count*10;

System.out.println("你的得分是:"+score);

break;

}

else{

count++;

//System.out.println("你的答案中字母正确个数为:"+result[1]+",位置正确个数为:"+result[0]);

}

}

}

/*

*

* */

public static char[] generate(){//看到不是viod就必须有返回

char[] chs = new char[5];

char[] array = new char[]{'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'};

//int index = (int)(Math.random()*array.length);产生随机值一定要放在循环体里面,否则的话可能一直产生某一个值不进入赋值

//int index = (int)(Math.random()*array.length);//一共有26个字母

boolean[] flags = new boolean[array.length];//默认值为false,给array每个元素标记

//给chs元素赋值

for(int i=0;i

//chs[i]=array[index];//这里如果就这样的话会可能产生相同的字母,不符合要求,代码需要修正,采用标记的方法来修正

小编推荐一个学Java的学习裙【 六五零,五五四,六零七 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!

/*

* 给array中每个元素标记false,当取到了某个字母时候,对其进行标记true不再访问

* 这里要使用到循环,do……while适合在这里,第一遍是必须要走的

* */

int index;//必须声明

do{

index = (int)(Math.random()*array.length);//一共有26个字母

}while(flags[index]==true);

chs[i]=array[index];

flags[index]=true;

}

return chs;

}

/*

* 比较两个数组,采用数组来获得结果

* 比较获得的结果有两个

* 一个是字母相同数

* 一个是位置相同数

* 所以采用一个长度为2的数组来存储

* */

public static int[] check(char[] chs,char[] input){//看到不是viod就必须有返回

int[] result = new int[2];//默认值result[0]=0,result[1]=0

//result[0]存储位置相同的个数result[1]存储字母相同的个数

//两个数组的每个元素都要比较,从chs的第一个开始逐一跟input的每一个比较,for循环嵌套

for(int i=0;i

for(int j=0;j

//开始比较

if(chs[i]==input[j]){//找到相同字母,跳出最里面的循环

result[1]++;

if(i==j){//位置相同

result[0]++;

}

break;

}

}

}

return result;

}

}

程序运行结果演示

程序运行结果演示

程序运行结果演示

小编推荐一个学Java的学习裙【 六五零,五五四,六零七 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!

程序运行结果演示程序运行结果演示

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 160,108评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,699评论 1 296
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,812评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,236评论 0 213
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,583评论 3 288
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,739评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,957评论 2 315
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,704评论 0 204
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,447评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,643评论 2 249
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,133评论 1 261
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,486评论 3 256
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,151评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,108评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,889评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,782评论 2 277
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,681评论 2 272

推荐阅读更多精彩内容

  • 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔...
    叶总韩阅读 5,068评论 0 41
  • Java经典问题算法大全 /*【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子...
    赵宇_阿特奇阅读 1,791评论 0 2
  • 50道经典Java编程练习题,将数学思维运用到编程中来。抱歉哈找不到文章的原贴了,有冒犯的麻烦知会声哈~ 1.指数...
    OSET我要编程阅读 6,703评论 0 9
  • 今天用了四年的哆啦A梦的交通卡折成了两半。本来以为自己会多少有些伤感,结果实际上我随手就丢进了卫生间的垃圾桶。我认...
    白月明阅读 155评论 0 0
  • 原文:Thread Stack Fundamentals 介绍 一般特点 Thread协议栈是可靠,经济高效,低功...
    公子小水阅读 8,261评论 0 4