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

📄 score.java

📁 使用java编的俄罗斯方块
💻 JAVA
字号:
package tetrics;

import java.io.*;
import java.util.StringTokenizer;

/**
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2004</p>
 * <p>Company: </p>
 * @author not attributable
 * @version 1.0
 */

public class Score {

  int[] m_nScore = new int[10];
  String[] m_sName = new String[10];

  public Score() {
    for (int i = 0; i < 10; i++) {
      m_nScore[i] = 0;
      m_sName[i] = "None";
    }
    readFromFile();

  }

  private void readFromFile() {
    String ObjStr = "";
    try {
      Reader in = new FileReader("res/a.txt");
      char[] buff = new char[4096];
      int nch;
      while ( (nch = in.read(buff, 0, buff.length)) != -1) {
        ObjStr = ObjStr + (new String(buff, 0, nch));
      }
    }
    catch (Exception e) {
      e.printStackTrace();
    }
    parseStr(ObjStr);
  }

  private void parseStr(String s) {
    StringTokenizer st = new StringTokenizer(s, "|");
    for (int i = 0; i < 10; i++) {
      if (st.hasMoreTokens()) {
        String sStr = st.nextToken();
        StringTokenizer stt = new StringTokenizer(sStr, "@");
        m_sName[i] = stt.nextToken();
        try {
          m_nScore[i] = Integer.parseInt(stt.nextToken());
        }
        catch (Exception e) {
          m_nScore[i] = 0;
        }
      }
      else {
        m_sName[i] = "None";
        m_nScore[i] = 0;
      }
    }
  }

  private void sortScore() {
    int nTempScore = 0;
    String sTempName = "None";
    for (int i = 0; i < 10; i++) {
      for (int j = i; j < 10; j++) {
        if (m_nScore[i] < m_nScore[j]) {
          nTempScore = m_nScore[j];
          sTempName = m_sName[j];
          m_nScore[j] = m_nScore[i];
          m_sName[j] = m_sName[i];
          m_nScore[i] = nTempScore;
          m_sName[i] = sTempName;
        }
      }
    }
  }

  private void saveToFile() {
    //first to create a string with some order
    sortScore();
    String sStr = "";
    for (int i = 0; i < 10; i++) {
      if (m_sName[i].trim().equals("")) {
        m_sName[i] = "none";
      }
      sStr += m_sName[i].trim() + "@" + m_nScore[i] + "|";
//            System.out.println(sStr);
    }
    try {
      File f = new File("res/a.txt");
      if (!f.exists()) {
        f.createNewFile();
      }
      Writer wr = new FileWriter(f);
      wr.write(sStr);
      wr.flush();
    }
    catch (Exception e) {
      e.printStackTrace();
    }
  }

  public boolean isScoreTop(int nScore) {
    boolean bIsTop = false;
    for (int i = 0; i < 10; i++) {
      if (m_nScore[i] < nScore) {
        bIsTop = true;
      }
    }
    return bIsTop;
  }

  public void insertNameScore(String sName, int nScore) {
    if (!isScoreTop(nScore)) {
      return;
    }
    sortScore();
    m_nScore[9] = nScore;
    m_sName[9] = sName;
    sortScore();
    saveToFile();
  }

  public int[] getScore() {
    return m_nScore;
  }

  public String[] getName() {
    return m_sName;
  }

}

⌨️ 快捷键说明

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