本文實例講述了Java實現的猜數字遊戲。分享給大家供大家參考,具體如下:
這裡演示一段java語言猜數字代碼,流程如下:
例如: 生成的是0369 用戶輸入的是0396 則顯示2A2B,兩個位置是正確並且數字正確的,另外兩個是數字正確,位置不正確的。
Java代碼:
package com.example.test;import java.util.Random;import java.util.Scanner;public class NumberCode { int[] Nums = new int[4]; int[] inputNumsArray = new int[4]; int difficultyLevel; int difficulty; int aA = 0; int bB = 0; String numberStr = ""; String str = ""; /** * 生成隨機數*/ public int[] randNums(int n) { for (int i = 0; i < Nums.length; i++) { Random ran = new Random(); int a = ran.nextInt(10); if (i - 1 != -1) { for (int j = 0; j < i; j++) { if (a == Nums[j]) { i--; break; } else { Nums[i] = a; } } } else { Nums[i] = a; } } return Nums; } /** * 選擇遊戲難度*/ public int selectLevel() { // 接受一個數字// 1:Easy 可以猜12次// 2:Common 可以猜9次// 3:Hard 可以猜7次@SuppressWarnings("resource") Scanner scan = new Scanner(System.in); System.out .println("請選擇難度係數(輸入數字),1:Easy 可以猜12次;2:Common 可以猜9次;3:Hard 可以猜7次"); difficulty = scan.nextInt(); switch (difficulty) { case 1: difficultyLevel = 12; break; case 2: difficultyLevel = 9; break; case 3: difficultyLevel = 7; break; default: break; } return difficultyLevel; } /** * 接受用戶輸入的數字*/ public int[] inputNums(int n) { @SuppressWarnings("resource") Scanner scan = new Scanner(System.in); int b = scan.nextInt(); for (int i = 0; i < inputNumsArray.length; i++) { int c = (int) ((int) b / Math.pow(10, 3 - i)); inputNumsArray[i] = c; b = (int) (b - c * Math.pow(10, (3 - i))); } return inputNumsArray; } /** * 數字比對的方法*/ public String compare(int[] answer, int[] inputs) { for (int i = 0; i < answer.length; i++) { if (inputs[i] == answer[i]) { aA += 1; continue; } else { for (int j = 0; j < answer.length; j++) { if (inputs[i] == answer[j]) { bB += 1; } } } } str = "" + aA + "A " + bB + "B "; return str; } /** * 整個遊戲過程代碼*/ public void play() { randNums(4); for (int i = 0; i < Nums.length; i++) { numberStr = numberStr + Nums[i]; } selectLevel(); System.out.println("你選擇了難度係數:" + difficulty + " 共有:" + difficultyLevel + "次機會。"); for (int i = 0; i < difficultyLevel; i++) { inputNums(4); int chanceNums = difficultyLevel - i - 1; compare(Nums, inputNumsArray); if (aA != 4) { if (chanceNums == 0) { System.out.println("機會用完了,答案是:" + numberStr); break; } else { System.out.println(str + " 你還有" + chanceNums + "次機會"); } aA = 0; bB = 0; } else if (aA == 4) { System.out.println("恭喜你,答對了"); break; } } } public static void main(String[] args) { NumberCode a = new NumberCode(); a.play(); }}運行結果:
請選擇難度係數(輸入數字),1:Easy 可以猜12次;2:Common 可以猜9次;3:Hard 可以猜7次
1
你選擇了難度係數:1 共有:12次機會。
0123
0A 2B 你還有11次機會
2345
2A 0B 你還有10次機會
5678
2A 0B 你還有9次機會
7890
0A 2B 你還有8次機會
2378
恭喜你,答對了
運行效果如下圖:
更多關於java算法相關內容感興趣的讀者可查看本站專題:《Java數學運算技巧總結》、《Java數據結構與算法教程》、《Java操作DOM節點技巧總結》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》
希望本文所述對大家java程序設計有所幫助。