Java基礎語法鞏固—猜字元遊戲
阿新 • • 發佈:2018-12-02
鑑於不同的高階語言在基礎語法規則存在一些細微的差異,因此我們更加應當注重基礎語法規則不混淆。通過猜字元遊戲可以將Java語法中的基礎知識結合起來,因而可以作為一種複習。
猜字元遊戲需求:將系統隨機生成的不重複五位字元陣列與使用者輸入(這裡由控制檯輸入)的五位字元陣列進行匹配,若答對顯示得分,若答錯提示匹配字元個數和匹配位置個數。
import java.util.Scanner; /**猜字元遊戲*/ public class GuessingGame { public static void main(String[] args) { Scanner scan=new Scanner(System.in); char[]chs=generate(); System.out.println(chs);//作弊 int count=0; while (true) { System.out.println("猜吧"); String a=scan.nextLine().toUpperCase(); if (a.equals("X")) { System.out.println("下次再來"); break; } char[]input=a.toCharArray(); int[] result=check(chs, input); if (result[1]==chs.length) { int score=100*chs.length-count*10; System.out.println("正確,得分"+score); break; } else { count++; System.out.println("猜對了"+result[0]+"個,"+result[1]+"位"); } } scan.close(); } /**產生隨機字元陣列*/ public static char[] generate() { char[]chs=new char[5]; 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'}; boolean[]used=new boolean[letters.length]; for (int i = 0; i < chs.length; i++) { int index; do { index=(int)(Math.random()*letters.length); } while (used[index]==true); chs[i]=letters[index]; used[index]=true; /**i=0 0<5 index=0 false chs[0]=letters[0]='A' used[0]=true * i=1 1<5 index=3 false chs[1]=letters[3]='D' used[3]=true * i=2 2<5 index=2 false chs[2]=letters[2]='C' used[2]=true * ...... * i=4 4<5 index=0 true * index=2 true * index=5 false chs[4]=letters[5]='F' used[5]=true * */ } return chs; } /**比較使用者輸入的input字元陣列和chs隨機字元陣列*/ private static int[] check(char[]chs,char[]input) { int[]result=new int[2]; for (int i = 0; i < chs.length; i++) { for (int j = 0; j < input.length; j++) { if (chs[i]==input[j]) { result[0]++; if (i==j) { result[1]++; } break; } } } return result; } }