Fix: print ranking list with my rank
This commit is contained in:
@@ -23,8 +23,8 @@ const GAME_SCREEN_SIZE = { x: 1024, y: 768 }
|
||||
let sessionStorageManager = new SessionStorageManager();
|
||||
{
|
||||
if(isDebugMode()) {
|
||||
sessionStorageManager.playerName = "박지상";
|
||||
sessionStorageManager.playerUserID = 24;
|
||||
sessionStorageManager.playerName = "부현율";
|
||||
sessionStorageManager.playerUserID = 8;
|
||||
sessionStorageManager.playingAppName = "space_invaders";
|
||||
sessionStorageManager.score = 1000;
|
||||
sessionStorageManager.highScore = 2000;
|
||||
|
||||
@@ -143,7 +143,6 @@ class DBConnectManager {
|
||||
};
|
||||
let params = "UserID=" + sessionStorageManager.playerUserID
|
||||
+ "&AppName=" + sessionStorageManager.playingAppName;
|
||||
console.log(params);
|
||||
xhr.send(params);
|
||||
}
|
||||
|
||||
@@ -196,6 +195,7 @@ class DBConnectManager {
|
||||
for(let i = 0; i < count; i++) {
|
||||
let record = new RankingRecord(
|
||||
i + 1,
|
||||
jsonData[i]["UserID"],
|
||||
jsonData[i]["Name"],
|
||||
jsonData[i]["HighScore"]
|
||||
);
|
||||
@@ -239,22 +239,22 @@ class DBConnectManager {
|
||||
}
|
||||
|
||||
loadTempRanking(rankingRecordManager) {
|
||||
rankingRecordManager.push(new RankingRecord(1, "강경모", 4400));
|
||||
rankingRecordManager.push(new RankingRecord(2, "강성태", 3400));
|
||||
rankingRecordManager.push(new RankingRecord(3, "김기덕", 2400));
|
||||
rankingRecordManager.push(new RankingRecord(4, "김남희", 1400));
|
||||
rankingRecordManager.push(new RankingRecord(5, "고봉순", 900));
|
||||
rankingRecordManager.push(new RankingRecord(6, "파르마", 800));
|
||||
rankingRecordManager.push(new RankingRecord(7, "박지상", 700));
|
||||
rankingRecordManager.push(new RankingRecord(8, "신현주", 600));
|
||||
rankingRecordManager.push(new RankingRecord(9, "꼬봉이", 500));
|
||||
rankingRecordManager.push(new RankingRecord(10, "거북이", 400));
|
||||
rankingRecordManager.push(new RankingRecord(11, "다람쥐", 300));
|
||||
rankingRecordManager.push(new RankingRecord(12, "사시미", 200));
|
||||
rankingRecordManager.push(new RankingRecord(13, "태권도", 100));
|
||||
rankingRecordManager.push(new RankingRecord(14, "합기도", 40));
|
||||
rankingRecordManager.push(new RankingRecord(15, "우습지", 10));
|
||||
rankingRecordManager.push(new RankingRecord(16, "하하하", 4));
|
||||
rankingRecordManager.push(new RankingRecord(1, 7, "강경모", 4400));
|
||||
rankingRecordManager.push(new RankingRecord(2, 2, "강성태", 3400));
|
||||
rankingRecordManager.push(new RankingRecord(3, 3, "김기덕", 2400));
|
||||
rankingRecordManager.push(new RankingRecord(4, 4, "김남희", 1400));
|
||||
rankingRecordManager.push(new RankingRecord(5, 5, "고봉순", 900));
|
||||
rankingRecordManager.push(new RankingRecord(6, 6, "파르마", 800));
|
||||
rankingRecordManager.push(new RankingRecord(7, 1, "박지상", 700));
|
||||
rankingRecordManager.push(new RankingRecord(8, 8, "신현주", 600));
|
||||
rankingRecordManager.push(new RankingRecord(9, 9, "꼬봉이", 500));
|
||||
rankingRecordManager.push(new RankingRecord(10, 10, "거북이", 400));
|
||||
rankingRecordManager.push(new RankingRecord(11, 11, "다람쥐", 300));
|
||||
rankingRecordManager.push(new RankingRecord(12, 12, "사시미", 200));
|
||||
rankingRecordManager.push(new RankingRecord(13, 13, "태권도", 100));
|
||||
rankingRecordManager.push(new RankingRecord(14, 14, "합기도", 40));
|
||||
rankingRecordManager.push(new RankingRecord(15, 15, "우습지", 10));
|
||||
rankingRecordManager.push(new RankingRecord(16, 16, "하하하", 4));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
class RankingRecord {
|
||||
|
||||
constructor(rank, userName, score) {
|
||||
constructor(rank, userID, userName, score) {
|
||||
this.rank = rank;
|
||||
this.userID = userID;
|
||||
this.userName = userName;
|
||||
this.score = score;
|
||||
}
|
||||
@@ -35,6 +36,10 @@ class RankingRecordManager {
|
||||
return this.rankingRecords[index].rank;
|
||||
}
|
||||
|
||||
getUserIDAt(index) {
|
||||
return this.rankingRecords[index].userID;
|
||||
}
|
||||
|
||||
getUserNameAt(index) {
|
||||
return this.rankingRecords[index].userName;
|
||||
}
|
||||
|
||||
@@ -7,25 +7,87 @@ class RankingBoard {
|
||||
this.dbConnectManager = new DBConnectManager();
|
||||
|
||||
this.requestRanking(DBConnectManager.TYPE_MY_RANKING_HOUR);
|
||||
// this.requestRanking(DBConnectManager.TYPE_MY_RANKING_DAY);
|
||||
// this.requestRanking(DBConnectManager.TYPE_MY_RANKING_MONTH);
|
||||
this.requestRanking(DBConnectManager.TYPE_MY_RANKING_DAY);
|
||||
this.requestRanking(DBConnectManager.TYPE_MY_RANKING_MONTH);
|
||||
}
|
||||
|
||||
|
||||
requestRanking(type, rankingRecordManager) {
|
||||
this.dbConnectManager.requestRanking(type, (type, rankingRecordManager) => {
|
||||
console.log(type);
|
||||
console.log(rankingRecordManager);
|
||||
for(let i = 0; i < rankingRecordManager.count; i++) {
|
||||
if(i > 6)
|
||||
break;
|
||||
let beginIndex = this.getBeginIndex(rankingRecordManager);
|
||||
let endIndex = this.getEndIndex(rankingRecordManager);
|
||||
|
||||
let data = rankingRecordManager.getAt(i);
|
||||
for(let i = 0; i < endIndex - beginIndex; i++) {
|
||||
let index = beginIndex + i;
|
||||
let data = rankingRecordManager.getAt(index);
|
||||
this.printRecord(type, i, data);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
getMyRank(rankingRecordManager) {
|
||||
let playerUserID = Number(sessionStorageManager.playerUserID);
|
||||
|
||||
for(let i = 0; i < rankingRecordManager.count; i++) {
|
||||
let data = rankingRecordManager.getAt(i);
|
||||
let userID = Number(data["userID"]);
|
||||
if(userID === playerUserID)
|
||||
return i + 1;
|
||||
}
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
getBeginIndex(rankingRecordManager) {
|
||||
let rankingRecordCount = rankingRecordManager.count;
|
||||
let myRank = this.getMyRank(rankingRecordManager);
|
||||
let myRankIndex = myRank - 1;
|
||||
|
||||
let startIndex = 0;
|
||||
let endIndex = rankingRecordCount;
|
||||
if(rankingRecordCount > 7) {
|
||||
if(myRank < rankingRecordCount - 3) { // my rank is better than the worst 3
|
||||
if(myRank < 5) {
|
||||
startIndex = 0;
|
||||
endIndex = rankingRecordCount > 7 ? 7 : rankingRecordCount;
|
||||
} else {
|
||||
startIndex = myRankIndex - 3;
|
||||
endIndex = myRankIndex + 4;
|
||||
}
|
||||
} else { // my rank is in the worst 3
|
||||
startIndex = rankingRecordCount > 7 ? rankingRecordCount - 7 : 0;
|
||||
endIndex = rankingRecordCount;
|
||||
}
|
||||
}
|
||||
|
||||
return startIndex;
|
||||
}
|
||||
|
||||
getEndIndex(rankingRecordManager) {
|
||||
let rankingRecordCount = rankingRecordManager.count;
|
||||
let myRank = this.getMyRank(rankingRecordManager);
|
||||
let myRankIndex = myRank - 1;
|
||||
|
||||
let startIndex = 0;
|
||||
let endIndex = rankingRecordCount;
|
||||
if(rankingRecordCount > 7) {
|
||||
if(myRank < rankingRecordCount - 3) { // my rank is better than the worst 3
|
||||
if(myRank < 5) {
|
||||
startIndex = 0;
|
||||
endIndex = rankingRecordCount > 7 ? 7 : rankingRecordCount;
|
||||
} else {
|
||||
startIndex = myRankIndex - 3;
|
||||
endIndex = myRankIndex + 4;
|
||||
}
|
||||
} else { // my rank is in the worst 3
|
||||
startIndex = rankingRecordCount > 7 ? rankingRecordCount - 7 : 0;
|
||||
endIndex = rankingRecordCount;
|
||||
}
|
||||
}
|
||||
|
||||
return endIndex;
|
||||
}
|
||||
|
||||
|
||||
printRecord(type, index, data) {
|
||||
var style = { font: "20px Arial", fill: "#fff", align: "right", boundsAlignH: "right", boundsAlignV: "top" };
|
||||
|
||||
Reference in New Issue
Block a user