我正在爲我的遊戲構建排行榜的算法,但現在我被卡住了。創建排行榜?
- 這是一個雙人遊戲。
- 排行榜應該顯示排名前5的選手。
- 評分將被保存到外部.txt文件作爲參考。
另外,我可以補充一點,我仍然不能決定是否應該只考慮排行榜或敗者的贏家分數。
例如: 玩家1是朱麗葉。 玩家2是羅密歐。 在比賽結束時,朱麗葉的得分大於羅密歐的得分。
我是否應該只評估排行榜的朱麗葉分數,或者他們的分數?截至目前,我的算法只考慮贏家的得分。
截至目前,我也只是想用JLabel
來顯示分數,但我不確定這是否是最有效的方法。我正在考慮JTable
。
因此,這裏是我目前的算法:
1)當用戶啓動一個新的匹配/返回菜單/退出遊戲(我提供了4個選項:新的遊戲(分數保留,但該板復位),新比賽(一切都是復位),菜單,退出)
public class Game
{
//This class also holds the code for the operation of the game
if (event.getSource() == newmatch)//or menu or exit
{
if (p1score != 0 || p2score != 0)
{
Leaderboard x;
if (p1score > p2score)
{
x = new Leaderboard (player1name, p1score);
}
else
{
x = new Leaderboard (player2name, p2score);
}
}
else
{
//some code
//This check is whether the game ends up in a draw/or both the users' scores are == 0
}
}
}
2)將姓名&得分Leaderboard
類:
public class Leaderboard {
//This class is where I originally planned to write the code that will perform the evaluation of the scores
String playerid;
int playerscore;
public Leaderboard(String name, int score)
{
playerid = name;
playerscore = score;
}
}
3)接下來的STE這是我很不確定的是創建一個ArrayList
的分數(我錯過了關於球員的名字的部分,因爲我不確定以及我將如何處理它)然後對其進行分類,但是之後的問題將是如何讓比分與球員的名字一致,如果你明白我的意思。
如例如分數:
安娜= 1
帕梅拉= 5
蓋比= 3
排序:5,3,1 帕梅拉具有最高分數,但是我將如何能夠將她的名字和她的得分一起顯示出來?
4)我有一個檢查器,它確定分數的ArrayList
是否爲空,如果是,它會自動顯示玩家的名字和分數(這是第一對玩家)。
這件事情是這樣的:
if (board.isEmpty())
{
label1.setText(winnername);
scorelabel1.setText(winnerscore);
}
else
{
//
}
有一大堆的嗡嗡聲在我的頭上怎麼回事,現在我不知道我應該怎麼繼續。
這顯然是一個初學者的問題,可能需要一個'大'的答案,但我只是要求提供一些提示/建議。
首先 - 創建一個Player類,其中一個包含字符串名稱和int分數,以及任何其他關鍵播放器信息。使其實現「Comparable」接口,並給它一個比較分數的「compareTo(Player other)」方法。 –
@HovercraftFullOfEels好的,我會感謝 – user3026693
也考慮'java.util.Preferences',而不是'.txt'文件。 – trashgod