java學(xué)習(xí)之猜數(shù)字小游戲
今天主要學(xué)習(xí)了一些初級的設(shè)計(jì),完成了這個(gè)猜數(shù)字的小游戲,其是也算不上是什么游戲,因?yàn)槲掖鸢付冀o出來了。當(dāng)然也是想對代碼更加熟練的操作,讓自己能夠得心應(yīng)手。
這個(gè)小程序中讓我花了點(diǎn)時(shí)間的主要是那個(gè)如何去重的問題,當(dāng)時(shí)也是思考良久,后來才考慮到使用死循環(huán)讓隨機(jī)數(shù)產(chǎn)生直到不重復(fù)為止,其他感覺也還好。
import java.util.Scanner;
public class GuessingGames {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
char[] chs=generate();
System.out.println(chs);
int score=500;
while(true) {
System.out.println("請猜猜看!");
String str=in.next();
char[] input=str.toCharArray(); //將用戶輸入的字符串轉(zhuǎn)換為數(shù)組
int[] result=compare(chs, input);
if (result[1]==chs.length) {
System.out.println("恭喜你,猜對了!!!你獲得的分?jǐn)?shù)為"+score+"猜錯(cuò)次數(shù)為:"+(500-score)/10);
break;
}else {
System.out.println("字符猜對個(gè)數(shù)為:"+result[0]+","+"位置猜對為:"+result[1]);
score-=10;
}
}
}
// 隨機(jī)生成字母
public static char[] generate() {
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' };
char[] chs = new char[5];
char copy;
for (int i = 0; i < chs.length; i++) {
chs[i] = letters[(int) (Math.random() * 26)];
copy=letters[(int) (Math.random()*26)];
for (int j = 0; j < i; j++) {
if (chs[i]==chs[j]) {
for(;;) {
copy=letters[(int) (Math.random()*26)];
if (chs[i]!=copy) {
chs[i]=copy;
break;
}
}
}
}
}
return chs;
}
//完成兩個(gè)數(shù)組的對比
public static int[] compare(char[] chs,char[] input) {
int[] score=new int[2];
for (int i = 0; i < input.length; i++) {
for (int j = 0; j < chs.length; j++) {
if (input[i]==chs[j]) {
score[0]++;
if (i==j) {
score[1]++;
}
break;
}
}
}
return score;
}
}
小編再為大家分享一段代碼:Java控制臺(tái)猜數(shù)字小游戲:
import java.util.*;
/**
*控制臺(tái)猜數(shù)字小游戲,系統(tǒng)自動(dòng)生成范圍為1-100的數(shù)字
*@version 1.0 2018-01-04
*@author jie1024(wechat:wxxueba)
*/
public class GuessX{
public static void main(String[] args){
Random random = new Random();//創(chuàng)建random
int x = random.nextInt(100)+1;//生成一個(gè)1-100之間的隨機(jī)數(shù) random.nextInt(100)的范圍為0-99,所以+1,范圍為1-100
System.out.println("系統(tǒng)已自動(dòng)為您生成了一個(gè)隨機(jī)數(shù)(范圍為1-100),游戲開始!");
System.out.print("猜猜這個(gè)數(shù)字是多少吧:");
Scanner in = new Scanner(System.in);//創(chuàng)建scanner
int y = in.nextInt(); //輸入數(shù)字
int count = 1; //次數(shù)
while(y != x){
count ++;
if(y<1 || y>100){
System.out.print("Sorry,你猜的數(shù)字不在范圍之內(nèi)(范圍為1-100),請?jiān)僦匦虏乱淮伟桑?);
y = in.nextInt();
}
else if (y>x){
System.out.print("Sorry,你輸入的數(shù)字太大了,請?jiān)僦匦虏乱淮伟桑?);
y = in.nextInt();
}
else if (y<x){
System.out.print("Sorry,你輸入的數(shù)字太小了,請?jiān)僦匦虏乱淮伟桑?);
y = in.nextInt();
}
}
System.out.println("恭喜你,猜對了!你猜的數(shù)字是" + y + "你總共猜了" + count + "次!");
}
}
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
基于Java 生產(chǎn)者消費(fèi)者模式(詳細(xì)分析)
下面小編就為大家分享一篇基于Java 生產(chǎn)者消費(fèi)者模式(詳細(xì)分析),具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-01-01
Springboot集成SSE實(shí)現(xiàn)單工通信消息推送流程詳解
SSE簡單的來說就是服務(wù)器主動(dòng)向前端推送數(shù)據(jù)的一種技術(shù),它是單向的,也就是說前端是不能向服務(wù)器發(fā)送數(shù)據(jù)的。SSE適用于消息推送,監(jiān)控等只需要服務(wù)器推送數(shù)據(jù)的場景中,下面是使用Spring Boot來實(shí)現(xiàn)一個(gè)簡單的模擬向前端推動(dòng)進(jìn)度數(shù)據(jù),前端頁面接受后展示進(jìn)度條2022-11-11
RabbitMQ排他性隊(duì)列Exclusive Queue詳解
這篇文章主要介紹了RabbitMQ排他性隊(duì)列Exclusive Queue詳解,如果你想創(chuàng)建一個(gè)只有自己可見的隊(duì)列,即不允許其它用戶訪問,RabbitMQ允許你將一個(gè)Queue聲明成為排他性的Exclusive Queue,需要的朋友可以參考下2023-08-08
Java實(shí)現(xiàn)按比抽獎(jiǎng)功能
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)按比抽獎(jiǎng)功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-01-01
JAVA JVM運(yùn)行時(shí)數(shù)據(jù)區(qū)詳解
這篇文章主要介紹了JVM運(yùn)行時(shí)數(shù)據(jù)區(qū)劃分原理詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2021-09-09
SpringCloud OpenFeign超詳細(xì)講解模板化遠(yuǎn)程通信的實(shí)現(xiàn)
這篇文章主要介紹了SpringCloudSpringboot集成OpenFeign實(shí)現(xiàn)模板化遠(yuǎn)程通信,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2022-07-07
Java文件斷點(diǎn)續(xù)傳實(shí)現(xiàn)原理解析
這篇文章主要介紹了Java文件斷點(diǎn)續(xù)傳實(shí)現(xiàn)原理解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05
Java Druid連接池與Apache的DBUtils使用教程
這篇文章主要介紹了Java Druid連接池與Apache的DBUtils使用方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-12-12

