「Java案例」猜數游戲

案例實現

猜數字游戲

設計一個三位數的猜數游戲,三位數隨機生成。程序提示用戶輸入一個三位的數字,依照以下的規則決定贏取多少獎金:1) 如果用戶輸入的數字和隨機數字完全一致,輸出:“恭喜恭喜!完全猜對了!獲得三個贊!”2) 如果用戶輸入的數字覆蓋了隨機生成的所有數字(不管順序),輸出:“輸入的數字覆蓋了隨機生成的所有數字!很棒,獲得兩個贊!”3) 如果用戶輸入的數字匹配了1個或2個數字,輸出:“輸入的數字匹配了1個或2個數字!還不錯,獲得一個贊!”

# 源文件保存為“GuessNumberDemo.java”
import java.util.Random;public class GuessNumberDemo {public static void main(String[] args) {// Generate a lotteryRandom random=new Random();int lottery = 100+random.nextInt(900);// Prompt the user to enter a guessjava.util.Scanner input = new java.util.Scanner(System.in);System.out.print("請輸入你猜的三位整數: ");int guess = input.nextInt();// Get digitsint l1 = lottery / 100;int l2 = (lottery % 100) / 10; // l2 = (lottery / 10) % 10int l3 = lottery % 10;int g1 = guess / 100;int g2 = (guess % 100) / 10;int g3 = guess % 10;System.out.println("隨機生成的整數是:" + lottery);// Check the guessif (guess == lottery)System.out.println("恭喜恭喜!完全猜對了!獲得三個贊!");else if (g1 == l1 && g3 == l2 && g2 == l3 ||g2 == l1 && g1 == l2 && g3 == l3 ||g2 == l1 && g3 == l2 && g1 == l3 ||g3 == l1 && g1 == l2 && g2 == l3 ||g3 == l1 && g2 == l2 && g1 == l3)System.out.println("輸入的數字覆蓋了隨機生成的所有數字!很棒,獲得兩個贊!");else if (g1 == l1 || g1 == l2 || g1 == l3 ||g2 == l1 || g2 == l2 || g2 == l3 ||g3 == l1 || g3 == l2 || g3 == l3)System.out.println("輸入的數字匹配了1個或2個數字!還不錯,獲得一個贊!");elseSystem.out.println("有點遺憾!下次再來!");}
}

運行結果
輸入數字550

請輸入你猜的三位整數: 550
隨機生成的整數是:410
輸入的數字匹配了1個或2個數字!還不錯,獲得一個贊!

猜數游戲實現

# 源文件保存為“NumberGuessingGame.java”
import java.util.Scanner;
import java.util.Random;
import java.util.HashSet;
import java.util.Set;public class NumberGuessingGame {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);Random random = new Random();// 生成不重復數字的三位數int secretNumber;do {secretNumber = 100 + random.nextInt(900); // 100-999} while (!hasUniqueDigits(secretNumber));System.out.println("已生成一個三位數,數字不重復,請開始猜測!");// 獲取用戶輸入System.out.print("請輸入一個三位數:");int guess = scanner.nextInt();// 驗證輸入是否為三位數if (guess < 100 || guess > 999) {System.out.println("請輸入有效的三位數!");return;}// 比較數字if (guess == secretNumber) {System.out.println("恭喜恭喜!完全猜對了!獲得三個贊!");} else if (containsAllDigits(secretNumber, guess)) {System.out.println("輸入的數字覆蓋了隨機生成的所有數字!很棒,獲得兩個贊!");} else {int matchedDigits = countMatchedDigits(secretNumber, guess);System.out.printf("輸入的數字匹配了%d個數字!還不錯,獲得一個贊!%n", matchedDigits);}System.out.println("正確答案是:" + secretNumber);scanner.close();}// 檢查數字是否有重復數字private static boolean hasUniqueDigits(int number) {Set<Character> digits = new HashSet<>();String numStr = String.valueOf(number);for (char c : numStr.toCharArray()) {if (!digits.add(c)) {return false;}}return true;}// 檢查猜測數字是否包含所有秘密數字private static boolean containsAllDigits(int secret, int guess) {Set<Character> secretDigits = new HashSet<>();Set<Character> guessDigits = new HashSet<>();String secretStr = String.valueOf(secret);String guessStr = String.valueOf(guess);for (char c : secretStr.toCharArray(

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

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

相關文章

創客匠人解析創始人 IP 內卷:知識變現時代的生存邏輯與破局路徑

當知識付費行業進入 “存量競爭” 階段&#xff0c;創始人 IP 的 “內卷” 已非選擇而是必然。創客匠人在服務數萬知識創業者的實踐中發現&#xff0c;那些實現逆勢增長的案例&#xff0c;其核心差異往往在于創始人是否具備 “從幕后走到臺前” 的決心與能力 —— 這種內卷并非…

250705-Debian12-sudo apt update加速+配置RDP遠程桌面環境+設置FRP服務為開機啟動項

A. 實現sudo apt update加速 在 Debian 12 上運行 sudo apt update 很慢的常見原因包括&#xff1a; &#x1f50d; 一、常見原因分析 使用了國外的軟件源 默認 Debian 安裝源多數是國際服務器&#xff0c;國內訪問會非常慢。 DNS 解析慢或失敗 軟件源地址解析時間長&#xf…

數學視頻動畫引擎Python庫 -- Manim Voiceover 語音服務 Speech Services

文中內容僅限技術學習與代碼實踐參考&#xff0c;市場存在不確定性&#xff0c;技術分析需謹慎驗證&#xff0c;不構成任何投資建議。 Manim Voiceover 是一個為 Manim 打造的專注于語音旁白的插件&#xff1a; 直接在 Python 中添加語音旁白&#xff1a; 無需使用視頻編輯器&…

C++11 forward_list 從基礎到精通:原理、實踐與性能優化

文章目錄一、為什么需要 forward_list&#xff1f;二、基礎篇&#xff1a;forward_list 的核心特性與接口2.1 數據結構與迭代器2.2 常用接口速覽2.3 基礎操作示例&#xff1a;從初始化到遍歷2.3.1 初始化與遍歷2.3.2 插入與刪除&#xff1a;before_begin 的關鍵作用三、進階篇&…

物聯網技術的核心組件與發展趨勢(截至2025年)

一、物聯網技術的核心組件物聯網&#xff08;IoT&#xff09;技術體系由感知層、網絡層、平臺層、應用層和安全層構成&#xff0c;各層技術協同工作&#xff0c;實現物理世界與數字世界的深度融合。1. 感知層&#xff1a;數據采集與交互傳感器技術&#xff1a;類型&#xff1a;…

面試中常見的問題:JavaScript 宏任務與微任務,包教包會

事件循環Event Loop 我們都知道&#xff0c;JavaScript 是一種單線程的編程語言&#xff0c;簡單的說就是&#xff1a;js只有一條通道&#xff0c;那么在任務多的情況下&#xff0c;就會出現擁擠的情況&#xff0c;這種情況下就產生了 ‘多線程’ &#xff0c;但是這種“多線程…

【LeetCode102.二叉樹的層序遍歷】vs.【LeetCode103.二叉樹的鋸齒形層序遍歷】

題目鏈接 LeetCode102.二叉樹的層序遍歷&#xff1a;102. 二叉樹的層序遍歷 - 力扣&#xff08;LeetCode&#xff09;LeetCode103.二叉樹的鋸齒形層序遍歷&#xff1a;103. 二叉樹的鋸齒形層序遍歷 - 力扣&#xff08;LeetCode&#xff09; 實現思路 定義一個隊列&#xff0…

Redis On-CPU Profiling定位瓶頸到可視化火焰圖

1 . 前置檢查&#xff1a;確認 CPU 真的是瓶頸 在正式打性能“補丁”前&#xff0c;務必跑一遍系統級健康核對表&#xff08;推薦 Brendan Greg 的 USE Method&#xff09;&#xff1a;資源關注指標常用工具CPUUtil/Idle、RunQueuetop、vmstat、sar內存Fault、Swap、Cache Miss…

未來趨勢:AI與量子計算對服務器安全的影響

隨著技術的飛速發展&#xff0c;人工智能&#xff08;AI&#xff09;和量子計算正在深刻改變信息技術的各個領域。特別是在服務器安全領域&#xff0c;這兩項技術既帶來了新的可能性&#xff0c;也帶來了前所未有的挑戰。本文將探討AI和量子計算技術對服務器安全的影響&#xf…

markdown學習筆記(個人向) Part.1

markdown學習筆記&#xff08;個人向&#xff09; Part.1 1. 推薦插件 markdown&#xff1a; 安裝支持markdown的插件&#xff1b; markdown-preview-github-styles&#xff1a; 可以將VS Code上默認的markdown預覽樣式修改成github上常用的形式&#xff0c;很大程度上提高文件…

ZooKeeper 實現分布式鎖

1. 分布式鎖概述 在分布式系統中&#xff0c;為了保證共享資源在并發訪問下的數據一致性&#xff0c;需要引入分布式鎖。分布式鎖是一種在分布式環境下控制多個進程對共享資源進行互斥訪問的機制。它與單機環境下的鎖&#xff08;如Java中的synchronized或Lock&#xff09;不同…

Linux線程——基礎全解

一、什么是線程&#xff08;Thread&#xff09;&#xff1f;? 定義&#xff1a;線程是程序執行的最小單位。即線程&#xff08;Thread&#xff09;是操作系統能夠進行運算調度的最小單位&#xff0c;它被包含在進程之中&#xff0c;是進程中的實際運作單位。一個進程可以并發多…

Java基礎--封裝+static

目錄 什么是封裝&#xff1f; 什么是訪問限定符&#xff1f; static靜態修飾符 用static修飾的類變量或類方法的注意事項&#xff1a; 什么是封裝&#xff1f; 封裝是面向對象的三大特性之一&#xff0c;指的是將一個類中的實現細節進行隱藏&#xff0c;對外只提供一些開放…

DAY 51 復習日

作業&#xff1a;day43的時候我們安排大家對自己找的數據集用簡單cnn訓練&#xff0c;現在可以嘗試下借助這幾天的知識來實現精度的進一步提高import torch import torch.nn as nn import torch.nn.functional as F import torchvision import torchvision.transforms as trans…

針對網絡爬蟲的相關法律法規整理

在中國&#xff0c;網絡爬蟲的法律法規涉及多個層面&#xff0c;包括個人信息保護、數據安全、網絡安全、知識產權、反不正當競爭等。以下是詳細的法律法規分析及合規指南&#xff1a; 1. 核心法律法規及適用場景? ??&#xff08;1&#xff09;《民法典》——隱私權與個人信…

1.1_5_2 計算機網絡的性能指標(下)

繼續來看計算機網絡的性能指標&#xff0c;接下來我們探討時延&#xff0c;時延帶寬積和往返時延&#xff0c;以及信道利用率這幾個性能指標。 首先來看時延這個性能指標&#xff0c;英文叫delay&#xff0c;也有的教材&#xff0c;把它翻譯為延遲。所謂的時延&#xff0c;就是…

PP-OCRv2:超輕OCR系統的萬能包

PP-OCRv2&#xff1a;超輕OCR系統的萬能包摘要光學字符識別&#xff08;OCR&#xff09;系統已廣泛應用于多種場景&#xff0c;但設計兼顧精度與效率的OCR系統仍具挑戰性。我們此前提出的超輕量OCR系統PP-OCR在平衡兩者方面取得進展。本文進一步提出PP-OCRv2&#xff0c;通過五…

常見的軟件版本開源協議

開源軟件許可證核心指南 一、許可證基礎分類 1. 寬松型許可證&#xff08;Permissive&#xff09; 核心特征&#xff1a;允許閉源衍生&#xff0c;僅保留版權聲明適用場景&#xff1a;商業集成、快速開發代表協議&#xff1a; &#x1f4dc; MIT &#x1f4dc; Apache 2.0 &…

基于FPGA的一維序列三次樣條插值算法verilog實現,包含testbench

目錄 1.前言 2.算法運行效果圖預覽 3.算法運行軟件版本 4.部分核心程序 5.算法仿真參數 6.算法理論概述 7.參考文獻 8.算法完整程序工程 1.前言 三次樣條插值是一種在數據擬合和信號處理中廣泛應用的技術&#xff0c;它通過構造分段三次多項式來逼近給定的離散數據點&a…

RAG 之 Prompt 動態選擇的三種方式

“如果我有5個prompt模板&#xff0c;我想只選擇一個每次都自動五選一能做到嗎怎么做&#xff1f;” 完全可以做到。這在復雜的RAG或Agentic工作流中是一個非常普遍且關鍵的需求&#xff0c;通常被稱為“條件路由&#xff08;Conditional Routing&#xff09;”或“動態調度&am…