📄 score.java
字号:
/**
*游戏得分排行榜类
*@CopyRight:Move2008
*@Author:bedlang
*@Version 1.0 2003/7/22
*/
package mmae.game;
import mmae.util.RecordDB;
public class Score {
private int topX;
private RecordDB db = new RecordDB();
private String dbName;
private int baseValue=0;
public String[] playerName;
public int[] playerScore;
/**
*构造函数,InitTopX为总的排名数,BaseValue为默认的排行分
*/
public Score(String DBName, int InitTopX, int BaseValue)
{
dbName = DBName;
db.open(DBName);
baseValue = BaseValue;
topX = db.getNumRecords();
if (topX<=0) init(InitTopX);
fill();
db.close();
}
//初使化记录库
private void init(int t)
{
topX = t;
for(int i=0;i<t;i++)
db.addRecord("XXX"+String.valueOf((topX-i)*baseValue));
}
//将库中数据充满数组
private void fill()
{
playerName = new String[topX];
playerScore = new int[topX];
String s=null;
for(int i=0;i<topX;i++)
{
s = db.getRecord(i+1);
playerName[i] = db.getField(s,1,"");
playerScore[i] = Integer.valueOf(db.getField(s,2,"")).intValue();
}
}
/**
* 得分Score是否在TopX内
*/
public boolean isHighScore(int Score){
for(int i = 0; i < topX; i++){
if(playerScore[i]<Score){
return true;
}
}
return false;
}
/**
* 插入并保存得分
*/
public void insert(String Name, int Score){
boolean setscore=false;
for(int i=0;i<topX && !setscore;i++){
if(playerScore[i]<Score){
for(int j=topX-1;j>i;j--){
playerName[j] = playerName[j-1];
playerScore[j] = playerScore[j-1];
}
playerName[i] = Name;
playerScore[i] = Score;
setscore=true;
}
}
//保存
db.open(dbName);
for(int i=0;i<topX;i++)
db.setRecord(i+1, playerName[i]+""+playerScore[i]);
db.close();
}
/**
* 得到当前得分的排行人次
*/
public int getTopX()
{
return topX;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -