學習java的第三天,猜字符的小程序

關于猜字符的小程序

主要實現:隨機輸出5個字母,用戶輸入猜測的字母,進行對比得出結果

主要有3個方法:主方法main();

        產生隨機字符的方法generate();

        比較用戶輸入的字符與隨機產生的字符的方法check();

主要的數據:char[] chs;? //保存隨機產生的字符數組

      char[] input;? //保存用戶輸入的字符數組

???????????????? count ;????????? //保存猜測的錯誤次數

      score;?????????? //保存分數

      boolean[] flags;? //開關數組,避免隨機產生相同的字符

      int[] result;?? //保存結果

詳細代碼:

    

 1 package com.tedu.demo;
 2 
 3 import java.util.Scanner;
 4 
 5 /*
 6  * Guessing類實現猜字符游戲
 7  *     1、通過隨機產生字母,用戶輸入猜的字母,進行對比
 8  *     2、輸出每次猜測的正確字母,與位置
 9  *     3、產生分數
10  *     
11  * */
12 
13 public class Guessing {
14     public static void main(String[] args) {
15         Scanner scan = new Scanner(System.in);
16         char[] chs = generate();// 獲取隨機數組
17         System.out.println(chs);//作弊
18         
19         int count = 0;
20         
21         
22         while (true) {
23             System.out.println("請輸入你猜測得字符:");
24             String str = scan.next().toUpperCase();//接收用戶輸入的字符,并將小寫轉換為大寫
25             if(str.equals("EXIT")){
26                 System.out.println("下次再猜吧!!!");
27                 break;
28             }
29             char[] input = str.toCharArray(); // 將字符串轉換為字符數組;
30             
31             int[] result = check(chs, input); // 獲取用戶輸入的字符數組與隨機數組的比較結果
32             if (result[0] == chs.length) {
33                 int score = 100 * chs.length - 10 * count;
34                 System.out.println("猜測正確,得分" + score);
35                 break;
36             } else {
37                 count++;
38                 System.out.println("你猜對了" + result[1] + "個字符,位置對了" + result[0]
39                         + "個,猜測錯誤,請繼續猜吧!!!");
40                 
41             }
42         }
43         // System.out.println(chs);
44     }
45 
46     // 隨機生成字母方法
47     public static char[] generate() {
48         char[] letter = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J',
49                 'K', 'L', 'M', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',
50                 'X', 'Y', 'Z' };
51         char[] chs = new char[5];
52         // 設置開關數組,
53         boolean[] flags = new boolean[letter.length];
54 
55         for (int i = 0; i < chs.length; i++) {
56             int index;
57             do {
58                 // 生成隨機的下標
59                 index = (int) (Math.random() * letter.length);
60             } while (flags[index] == true);
61             // 生成的字母就是letter數組隨機下標
62             chs[i] = letter[index];
63             flags[index] = true; // 把用過的下標的flags值改為true
64         }
65 
66         return chs;
67     }
68 
69     // 比較用戶輸入的字母與隨機產生字母
70     public static int[] check(char[] chs, char[] input) {
71         int[] result = new int[2];
72 
73         for (int i = 0; i < chs.length; i++) {
74             for (int j = 0; j < input.length; j++) {
75                 if (chs[i] == input[j]) { // 判斷字符是否有正確的
76                     result[1]++; // 字符正確+1
77                     if (i == j) { // 判斷位置是否正確
78                         result[0]++; // 位置正確+1
79                     }
80                 }
81 
82             }
83         }
84         return result;
85     }
86 
87 }

?

轉載于:https://www.cnblogs.com/msn-z/p/6940856.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/370478.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/370478.shtml
英文地址,請注明出處:http://en.pswp.cn/news/370478.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

《Linux命令行與shell腳本編程大全 第3版》創建實用的腳本---10

以下為閱讀《Linux命令行與shell腳本編程大全 第3版》的讀書筆記&#xff0c;為了方便記錄&#xff0c;特地與書的內容保持同步&#xff0c;特意做成一節一次隨筆&#xff0c;特記錄如下&#xff1a;轉載于:https://www.cnblogs.com/guochaoxxl/p/7894995.html

python安裝包找不到setup_如何安裝沒有setup.py的Python模塊?

在系統上開始使用該代碼的最簡單的方法是&#xff1a;>將文件放入機器上的目錄中,>將該目錄的路徑添加到您的PYTHONPATH步驟2可以從Python REPL完成如下&#xff1a;import syssys.path.append("/home/username/google_search")您的文件系統的外觀示例&#xf…

Spring Batch中面向TaskletStep的處理

許多企業應用程序需要批處理才能每天處理數十億筆交易。 必須處理這些大事務集&#xff0c;而不會出現性能問題。 Spring Batch是一個輕量級且強大的批處理框架&#xff0c;用于處理這些大數據集。 Spring Batch提供了“面向TaskletStep”和“面向塊”的處理風格。 在本文中&a…

布局中常見的居中問題

說到布局除了浮動以及定位外還有一個不得不提的點&#xff0c;那就是居中&#xff0c;居中問題我們在網頁布局當中經常遇到&#xff0c;那么以下就是分為兩部分來講&#xff0c;一部分是傳統的居中&#xff0c;另一種則是flex居中&#xff0c;每個部分又通過分為水平垂直居中來…

unity json解析IPA后續

以前說到的&#xff0c;有很大的限制&#xff0c;只能解析簡單的類&#xff0c;如果復雜的就會有問題&#xff0c;從老外哪里看到一片博客&#xff0c;是將類中的list 等復雜對象序列化&#xff0c; using UnityEngine; using System.Collections; using System.Collections.…

改善代碼質量之內連臨時變量

待增轉載于:https://www.cnblogs.com/muyl/articles/6940896.html

python 矩陣元素相加_Numpy中元素級運算

標量與矩陣的運算:加法&#xff1a;values [1,2,3,4,5]values np.array(values) 5#現在 values 是包含 [6,7,8,9,10] 的一個 ndarray乘法&#xff1a;x np.multiply(some_array, 5)x some_array * 5矩陣與矩陣的運算:加法&#xff1a;對應元素相加&#xff0c;但形狀必須相…

排序算法——桶排序

把數據放進若干個桶&#xff0c;然后在桶里用其他排序&#xff0c;近乎分治思想。從數值的低位到高位依次排序&#xff0c;有幾位就排序幾次。例如二位數就排兩次&#xff0c;三位數就排三次&#xff0c;依次按照個十百...的順序來排序。 第一次排序&#xff1a;50 12 …

原型設計模式:創建另一個小車

創建對象確實是一個耗時的過程&#xff0c;也是一件昂貴的事情。 因此&#xff0c;我們現在正努力節省時間和金錢。 我們該怎么做&#xff1f; 克隆奇跡多莉 有人記得多莉嗎&#xff1f; 是的&#xff0c;是綿羊&#xff0c;是第一個被克隆的哺乳動物。 好吧&#xff0c;我不想…

java實現周期任務_java定時任務的實現方式

本文列舉常見的java定時任務實現方式&#xff0c;并做一定比較。1. 循環內部sleep實現周期執行創建一個thread&#xff0c;run() while循環里sleep()來實現周期性執行; 簡單粗暴&#xff0c;作為一個初學者很容易想到。public class Task1 {public static void main(String[] a…

磁盤鏡像工具Guymager

磁盤鏡像工具Guymager在數字取證中&#xff0c;經常需要對磁盤制作鏡像&#xff0c;以便于后期分析。Kali Linux提供一款輕量級的磁盤鏡像工具Guymager。該工具采用圖形界面化方式&#xff0c;提供磁盤鏡像和磁盤克隆功能。它不僅生成dd的鏡像&#xff0c;還能生成EWF和AFF鏡像…

python怎么寫代碼求年華收益率_如何計算年化收益率?

關于投資年化收益率的計算&#xff0c;三思君覺得主要有三種&#xff0c;分別是一次性投資的收益率計算、定期定額的收益率計算、不定期不定額的收益率計算。1.一次性投資的收益率計算對于一次性投資的收益率&#xff0c;相信大家都會計算。比如&#xff0c;小李同學去年買了一…

HTTPS協議在Tomcat中啟用的配置

本文將講解HTTPS協議在Tomcat中啟用是如何配置的。 概念簡介 Tomcat 服務器是一個免費的開放源代碼的Web 應用服務器&#xff0c;屬于輕量級應用服務器&#xff0c;在中小型系統和并發訪問用戶不是很多的場合下被普遍使用&#xff0c;是開發和調試 JSP 程序的首選。 HTTP 超文本…

CSS3實現煙花特效 --web前端

煙花特效&#xff0c;比較簡單&#xff0c;直接貼代碼了……<!DOCTYPE html><html lang"en"><head> <meta charset"UTF-8"> <title>css3實現煙花特效</title> <style> * { margin: 0; padding: 0; } html{ widt…

虛擬機 java 開發_深入淺出 Java 虛擬機 · 通往高級 Java 開發的必經之路

第一章 JVM 內存模型Java 虛擬機(Java Virtual MachineJVM)的內存空間分為五個部分&#xff0c;分別是&#xff1a;程序計數器Java 虛擬機棧本地方法棧堆方法區。下面對這五個區域展開深入的介紹。1.1 程序計數器1.1.1 什么是程序計數器&#xff1f;程序計數器是一塊較小的內存…

java.lang.ClassNotFoundException:如何解決

本文適用于當前面臨java.lang.ClassNotFoundException挑戰的Java初學者。 它將為您提供此常見Java異常的概述&#xff0c;這是一個示例Java程序&#xff0c;可支持您的學習過程和解決策略。 如果您對與更高級的類加載器相關的問題感興趣&#xff0c;我建議您復習有關java.lang…

iOS10 App跳轉到系統設置

實現類似萬能鑰匙中點擊一個Wi-Fi跳轉到系統Wi-Fi設置界面的功能。 NSString * urlString "App-Prefs:rootWIFI";if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:urlString]]) {if ([[UIDevice currentDevice].systemVersion doubleValue…

python生成器 圖片分類_python批量處理圖片圖片Python迭代器和生成器介紹

Python迭代器和生成器介紹迭代器迭代器是一個實現了迭代器協議的對象&#xff0c;Python中的迭代器協議就是有next方法的對象會前進到下一結果&#xff0c;而在一系列結果的末尾是&#xff0c;則會引發StopIteration。在for循環中&#xff0c;Python將自動調用工廠函數iter()獲…

Java-IO流之BufferedReader 和BufferedWriter的使用和原理

BufferedReader和BufferedWriter出現的目的是為了對FileReader以及FileWriter的讀寫操作進行增強&#xff0c;而怎么增強呢&#xff0c;原理類似于使用StringBuilder&#xff0c;是把數據先放入他們的一個char數組中&#xff0c;然后再操作char數組。 使用緩沖區的字符流是使用…

小程序實踐(三):九宮格實現及item跳轉

效果圖&#xff1a; 實現效果圖紅色線包含部分的九宮格效果&#xff0c;并附帶item點擊時間。 ------------------------------------------------------------------------------------------------------ 具體實現&#xff1a; 1、首先添加圖片資源文件 在項目根目錄新建一個…