1. 程式人生 > >JAVA小遊戲——猜字母

JAVA小遊戲——猜字母

遊戲規則

玩家需要任意輸入五個不同的大寫英文字母,每次輸入後都會返回兩個提示,一個是當前猜對的字母數,還有一個是字母和位置都匹配的數目,通過提示猜出正確的結果。
玩家起始分值設為500分,每猜錯一次減10分,遊戲結束顯示最終得分。
(無圖形介面)

遊戲原始碼

import java.util.Scanner;

public class GuessTheLetters {

    public static void main(String[] args) {
        System.out.println("這是一個猜字母遊戲!"+"\n"+"【請輸入五個不同的英文大寫字母,看你能不能猜到】"
); char[] answer = charGenerate(); //這裡可以顯示答案 /* for(int i=0;i<answer.length;i++) { System.out.print(answer[i]); } System.out.println(); */ Scanner s = new Scanner(System.in); System.out.println("開始猜吧!"); int score=500
; while(true) { String str = s.next().toUpperCase(); if(str.equals("EXIT")) { System.out.println("退出!"); break; } char[] inputChars = str.toCharArray(); boolean b =compare(answer,inputChars); if
(b==true) { System.out.println("分數為:"+score); break; }else { score=score-10; } } } public static char[] charGenerate(){ //生成五個不同的隨機字母 char[] ch = new char[5]; for(int i=0;i<ch.length;i++) { char check = (char)('A'+Math.random()*('Z'-'A'+1)); boolean b = true; for(int j=0;j<ch.length;j++) { if(check==ch[j]) { b=false; break; } } if(b==true) ch[i]=check; else i--; } return ch; } public static boolean compare(char[] answer,char[] input) { //匹配 int flag=0,position=0; boolean b=false; for(int i=0;i<answer.length;i++) { for(int j=0;j<input.length;j++) { if(answer[i]==input[j]) { flag++; if(i==j) position++; } } } if(flag==5 && position==5) { b=true; System.out.println("你真聰明都猜對了!"); }else { System.out.println("猜測正確的字母數:"+flag+" "+"猜測正確的位置數:"+position); } return b; } }