簡體   English   中英

制作將分數寫入Java文件的高分函數

[英]Making a highscore function that writes the score to a file in java

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;


public class GameRunner {

    public static void main(String[] args) {
        Scanner scan = new Scanner (System.in);
        System.out.println("Welcome to blackjack!\nEnter your name please.");

        String name = scan.nextLine();

        System.out.println("Here are your cards " + name);


        Deck theDeck = new Deck(1, true);

        if (mySum > dealerSum && mySum <= 21 || dealerSum > 21){
            System.out.println("You win!");
        }//if
        else if (mySum == dealerSum) {
            System.out.println("It's a draw!");
        }//else
        else {
            System.out.println("Dealer wins!");
        }

    }//main

    public void highScore() throws IOException{
        File myFile=new File("highscore.txt");
        FileWriter fw=new FileWriter(myFile, true);
        String end= "You have beaten the dealer " + "times.";
        fw.write(end);
        fw.close();

    }

}

這不是我的全部代碼,但是我希望它計算用戶獲勝的次數,並在發牌人獲勝時停止,然后將其最高得分的數字寫入文件中。 另外,當我刷新或運行程序時,我的文件沒有顯示,並且在各處搜索它。

確保沖洗。

fw.flush();

以及您之前創建的.txt文件。

myFile.createFile();

請閱讀此內容, http://docs.oracle.com/javase/tutorial/essential/io/file.html

highScore函數似乎可以保存“內容”。 但是您從來沒有真正稱呼它。 即使您調用它,它也只會在其中寫以下行:

您已經擊敗了經銷商。

這沒有道理。 好像您想在“打敗經銷商N次”中寫一個數字N一樣,但是您沒有這樣做。 因此,此代碼看起來不完整,就像您停止在中間編寫代碼一樣。

如果你調用此方法,則文件將被創建。 由於在new File("highscore.txt"); 您使用相對路徑"highscore.txt" ,該文件將在執行目錄中創建。 如果從IDE運行此文件,則執行目錄通常是項目的目錄。 另一種選擇是使用絕對路徑,例如"c:/highscore.txt" ,那么您絕對可以輕松找到它。

上面所說的答案是絕對正確的,但是您也可以靜態保存它,並且如果您想通過使用函數中的簡單字符來顯示自己被咬的次數,則可以增加計數器的數量。 Nd清除文件文本為新文本或僅通過替換字符串功能替換數字

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM