⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 billboard.java

📁 一款直版动作过关游戏
💻 JAVA
字号:
import java.io.*;
import javax.microedition.rms.*;

public class BillBoard {  //广告牌

	public static RecordStore rs;
	public static int[] scoreTop3={0,0,0};
	public static String[] userTop3=new String[3];
	public static boolean opened=false;

	//构造函数
	public BillBoard()
	{
		initRs();
	}
	//判断本次分数是否可以进入榜单
	public boolean canIn(int score)
	{
		update();
		boolean tmp=true;
		if(score<=scoreTop3[2])
		{
			tmp=false;
		}
		return tmp;
		
	}
	//显示榜单
	public String showListTop3()
	{
		String tmp="";
		for(int i=0;i<3;i++)
		{
			System.out.print("user="+userTop3[i]);
			System.out.println("  score="+scoreTop3[i]);
			tmp+=userTop3[i]+"    "+scoreTop3[i]+"\n";
		}
		return tmp;
	}
	
	//加入榜单
	public void addToBoard(String userName,int score)
	{
		try {
			ByteArrayOutputStream bo = new ByteArrayOutputStream();
			DataOutputStream doSteam = new DataOutputStream(bo);
			doSteam.writeUTF(userName);
			doSteam.writeInt(score);
			byte data[] = bo.toByteArray();
			rs.addRecord(data, 0, data.length);
			doSteam.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
		update();
	}
	
	//取得前三名并删除后面的纪录
	public void update()
	{
		//新建一个比较器
		RecordComparator recordComparator = new RecordComparator() {//排序
			public int compare(byte[] firstdata, byte[] seconddata) {
				DataInputStream firstSteam = new DataInputStream(new ByteArrayInputStream(firstdata));
				DataInputStream secondSteam = new DataInputStream(new ByteArrayInputStream(seconddata));
				int firstRecord = 0;
				int secondRecord = 0;
				try {
					firstSteam.readUTF();//跳过姓名
					firstRecord = firstSteam.readInt();
					secondSteam.readUTF();//跳过姓名
					secondRecord = secondSteam.readInt();
				} catch (IOException e) {
					e.printStackTrace();
				}
				if (firstRecord == secondRecord) {
					return RecordComparator.EQUIVALENT;
				} else {
					if (firstRecord < secondRecord) {
						return RecordComparator.FOLLOWS;
					} else {
						return RecordComparator.PRECEDES;
					}
				}
			}
		};
		try {
			RecordEnumeration recordEnumeration = rs.enumerateRecords(null,
					recordComparator, false);
			int i = 0;
			while (recordEnumeration.hasNextElement()) {
				byte[] temp = recordEnumeration.nextRecord();
				DataInputStream stream = new DataInputStream(new ByteArrayInputStream(temp));
				if (i < 3) {//只取前三名
					userTop3[i]=stream.readUTF();
					scoreTop3[i]=stream.readInt();
				} else {
					//删除后面的纪录
					rs.deleteRecord(recordEnumeration.nextRecordId());
				}
				i++;
				stream.close();
			}
			
		}catch (RecordStoreNotOpenException e) {
			e.printStackTrace();
		}catch (IOException e) {
			e.printStackTrace();
		} catch (InvalidRecordIDException e) {
			e.printStackTrace();
		} catch (RecordStoreException e) {
			e.printStackTrace();
		}
	}
	
	//初始化rs
	public void initRs()
	{
		rs=openRSAnyway("TOP3");		
		opened=true;		
		for(int i=0;i<3;i++)
		{
			addToBoard("Name",0);
		}
	}
	
	//打开rs
	public RecordStore openRSAnyway(String rsname) {
		RecordStore rs = null;
		//	名稱大於32 個字元就不接受
		if (rsname.length() > 32)
			return null;
		try {
			rs = RecordStore.openRecordStore(rsname, true);
			return rs;
		} catch (Exception e) {
			return null;
		}
	}
	
}
	
	

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -