ランキング

fileメソッドを使うと,ファイル読み書きができます.これを用いて ゲームのスコアランキングを作成することができます.

Main

//ランキングファイルのオブジェクトを作成
rankFile=file("rank.json");
//rank.jsonが存在していれば
if (rankFile.exists()) {
    $ranking=rankFile.obj();//$rankingに読み込む
} else {
    $ranking=[20,15,10,5,3];//初期化する
}
//---ゲーム本体
$score=0;
new Label{template:"Score $score",x:200,y:200,size:30};
lb=new Label{text:"Space: get score   X: game over",x:200,y:300,size:20};
while(true) {
    if (getkey("space")==1) {
        $score++;
    }
    if (getkey("x")==1) {
        break;
    }
    update();
}
lb.text="Game Over. R:Replay  C:Clear Ranking";
//----最下位のスコアより高い点数ならランクイン
if ($score>$ranking[$ranking.length-1]) {
    $ranking[$ranking.length-1]=$score;//最下位を今のスコアで上書き.
    $ranking=$ranking.sort(\(a,b) {return b-a;});//降順並び替え
    rankFile.obj($ranking);//rank.txtに$rankingの内容をjsonで保存
}
//----ランキング表示
print ("Ranking:");
for (r of $ranking) {
    print ("Score =",r);
}
while(true) {
    if (getkey("r")==1) {
        loadPage(Main);
    }
    if (getkey("c")==1) {
        rankFile.rm();//ランキングファイルの消去
        loadPage(Main);
    }
    update();
}