count=0
2)建立 way.txt 檔案,儲存支付狀態(1 為已付費,0 為未付費),檔案內容如下:way=0
3)為了簡化程式碼,本節將多個實現方法寫在同一個類中。建立 BullCows 類,程式碼如下:public class BullCows { /** * 負責呼叫對應的方法,實現整個案例的邏輯關係 * * @param args * @throws IOException */ public static void main(String[] args) throws IOException { while (true) { // 獲取遊戲次數 int count = getCount(); // 獲取付費狀態 boolean flag = getCondition(); // 如果已付費,提示使用者遊戲次數解封可以繼續遊戲 if (flag) { System.out.println("遊戲已經付費,遊戲次數已解封!"); game(); } else { // 未付費且遊戲次數超過5次時,提示試玩結束,要付費 if (count >= 5) { System.out.println("試玩已經結束,請付費!"); getMoney(); } else { // 未付費且遊戲次數未超過5次時,繼續遊戲,遊戲次數加1 System.out.println("----" + "試玩第" + (count + 1) + "次" + "----"); game(); writeCount(); } } } } /** * 獲取已經玩過的次數 * * @return temp count.txt檔案中的遊戲次數 * @throws IOException */ private static int getCount() throws IOException { // 建立Properties物件 Properties prop = new Properties(); // 使用FileReader物件獲取count檔案中的遊戲次數 prop.load(new FileReader("count.txt")); String property = prop.getProperty("count"); int temp = Integer.parseInt(property); return temp; } /** * 支付方法,支付成功則把支付狀態改為“1”並存到資料庫,之後可以無限次玩遊戲 * * @throws IOException */ private static void getMoney() throws IOException { System.out.println("請支付5元!"); // 獲取鍵盤錄入資料 Scanner sc = new Scanner(System.in); int nextInt = sc.nextInt(); if (nextInt == 5) { // 建立Properties物件 Properties prop = new Properties(); prop.setProperty("way", "1"); // 使用FileWriter類將支付狀態寫入到way檔案 prop.store(new FileWriter("way.txt"), null); } } /** * 將試玩的次數寫入文件並儲存 * * @throws IOException */ private static void writeCount() throws IOException { // 建立Properties物件 Properties prop = new Properties(); int count = getCount(); // 寫入檔案 prop.setProperty("count", (count + 1) + ""); prop.store(new FileWriter("count.txt"), null); } /** * 用來獲取每次啟動時的付費狀態 * * @return flag 是否付費 * @throws FileNotFoundException * @throws IOException */ private static boolean getCondition() throws FileNotFoundException, IOException { boolean flag = false; // 建立Properties物件 Properties prop = new Properties(); // 讀取way.txt檔案,獲取支付狀態 prop.load(new FileReader("way.txt")); String property = prop.getProperty("way"); int parseInt = Integer.parseInt(property); // way的值等於1時,為已付費 if (parseInt == 1) { flag = true; } else { flag = false; } return flag; } /** * 實現遊戲產生數位,獲取玩家所猜數位等, 並對玩家每次輸入,都會有相應的提示 */ private static void game() { // 產生亂數1~100 int random = (int) (Math.random() * 100 + 1); // 獲取鍵盤錄入資料 Scanner sc = new Scanner(System.in); System.out.println("歡迎來到猜數位小遊戲!"); // while迴圈進行遊戲 while (true) { System.out.println("請輸入你猜的資料:"); int guess = sc.nextInt(); if (guess > random) { System.out.println("大了"); } else if (guess < random) { System.out.println("小了"); } else { System.out.println("猜對了哦!"); break; } } } }第一次執行時,結果如下:
----試玩第1次----
歡迎來到猜數位小遊戲!
請輸入你猜的資料:
1
小了
請輸入你猜的資料:
5
小了
請輸入你猜的資料:
8
小了
請輸入你猜的資料:
9
小了
請輸入你猜的資料:
10
猜對了哦!
試玩已經結束,請付費!
請支付5元!
5
遊戲已經付費,遊戲次數已解封!
歡迎來到猜數位小遊戲!
請輸入你猜的資料: