Advertisement
Guest User

Untitled

a guest
Dec 1st, 2018
153
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /* ON.LOAD */
  2. "use strict";
  3.  
  4. var div_array = ["menu", "tableRankingDiv", "menu_jogo", "gameDiv", "sidebar", "sb_option", "ajuda1", "replay", "option1", "option1_1", "option1_2", "start_1", "start_2"];
  5.  
  6. window.onload = function() {
  7.     document.getElementById("login").style.display = "block";
  8.     for(var i=0; i < div_array.length; i++){
  9.         document.getElementById(div_array[i]).style.display = "none";
  10.     }
  11. };
  12. /* ------- */
  13.  
  14. /* Variaveis */
  15. var username;
  16. var password;
  17. var game;
  18. var evtSource;
  19. var timeOutMessage;
  20. var timer;
  21. var timeLeft;
  22. var active_player = 0;
  23. var game_active = false;
  24. var player_color = Array();
  25. var loginflag = false;
  26. player_color[1] = "red";
  27. player_color[2] = "blue";
  28. var player_w = 0;
  29. var player_l = 0;
  30. var boardSize;
  31. var ongame = 0;
  32. /* ---------- */
  33.  
  34. /* Server url */
  35. var url = "http://twserver.alunos.dcc.fc.up.pt:8008/";
  36.  
  37. /* JOGO */
  38.  
  39.     function Board(k) {
  40.         this.k = k;
  41.         this.tabuleiro = new Array();
  42.         this.boardDiv;
  43.  
  44.         this.createBoard = function() {
  45.  
  46.             this.boardDiv = document.createElement("div");
  47.             this.boardDiv.className = "boardDiv";
  48.             this.boardDiv.id = "boardDiv";
  49.             this.boardDiv.style.width = "" + (75 * (this.k)) + "px";
  50.             this.boardDiv.style.height = "" + (75 * (this.k)) + "px";
  51.             document.getElementById("gameDiv").appendChild(this.boardDiv);
  52.  
  53.             for(let i=0; i<this.k; i++){
  54.                 this.tabuleiro[i] = new Array();
  55.                 var coluna = document.createElement("div");
  56.                 coluna.className = "coluna";
  57.                 coluna.id = "col_" + i;
  58.                 coluna.title = i;
  59.                 document.getElementById("boardDiv").appendChild(coluna);
  60.                 for(var j=0; j<this.k; j++){
  61.                     this.tabuleiro[i].push(0);
  62.                     var celula = new Cell(i, j);
  63.                     document.getElementById("col_" + i).appendChild(celula.html)
  64.                 }
  65.                 coluna.onclick = function() {
  66.                     if(game_active){
  67.                         if(ongame == 0){
  68.                             for(let j = (game.board.k-1) ; j>=0; j--){
  69.                                 let cell = document.getElementById("piece_" + i + "_" + j);
  70.                                 if(game.board.tabuleiro[i][j]==0){
  71.                                     game.board.tabuleiro[i][j] = active_player;
  72.                                     cell.src = "img/" + player_color[active_player] + "_piece.png";
  73.                                     if(game.n_players == 2){
  74.                                         if (active_player == 1) { active_player = 2; }
  75.                                         else { active_player = 1; }
  76.                                         game.checkForWin();
  77.                                     }
  78.                                     else if(game.n_players == 1){
  79.                                         if (active_player == 1) {
  80.                                             active_player = 2;
  81.                                             if(game_active){
  82.                                                 game.pc.move();
  83.                                                 game.checkForWin();
  84.                                             }
  85.                                         }
  86.                                         else { active_player = 1; }
  87.                                     }
  88.  
  89.                                     game.setUpTurn();
  90.  
  91.                                     return;
  92.                                 }
  93.                             }
  94.                         }
  95.                         else{
  96.                             if(active_player != username)
  97.                                 document.getElementById("messageH1").innerHTML = "Não é a sua vez de jogar.";
  98.                             else{
  99.                                 game.notify(Number(this.title));
  100.                                 for(let j = (game.board.k-1) ; j>=0; j--){
  101.                                     let cell = document.getElementById("piece_" + i + "_" + j);
  102.                                     if(game.board.tabuleiro[i][j]==0){
  103.                                         game.board.tabuleiro[i][j] = active_player;
  104.                                         if(active_player == username){
  105.                                             cell.src = "img/red_piece.png";
  106.                                         }
  107.                                         else if(active_player != 0){
  108.                                             cell.src = "img/blue_piece.png";
  109.                                         }
  110.                                         return;
  111.                                     }
  112.                                 }
  113.                             }
  114.                         }
  115.                     }
  116.                 }
  117.             }
  118.         }
  119.     }
  120.  
  121. function newGame(boardSize, f_player, n_players) {
  122.     game_active = true;
  123.     active_player = f_player;
  124.     game = new Game(boardSize, f_player, n_players);
  125.     game.initiateGame();
  126.     game.setUpTurn();
  127. }
  128.  
  129. function Game(boardSize, f_player, n_players) {
  130.         this.firstPlayer = f_player;
  131.         this.boardSize = boardSize;
  132.         this.n_players=n_players;
  133.         this.game_active;
  134.         this.pc = new PC(1);
  135.  
  136.         this.board;
  137.         this.moves;
  138.  
  139.         var xhr = new XMLHttpRequest();
  140.  
  141.         this.initiateGame = function() {
  142.             this.board = new Board(this.boardSize);
  143.             this.active_player = this.firstPlayer;
  144.             this.moves = 0;
  145.  
  146.             this.game_active = true;
  147.  
  148.             resetGameDiv();
  149.  
  150.             var messageH = document.createElement("h1");
  151.             messageH.id = "messageDiv";
  152.             document.getElementById("gameDiv").appendChild(messageH);
  153.  
  154.             this.board.createBoard();
  155.  
  156.             show("gameDiv");
  157.  
  158.             this.setUpTurn();
  159.         }
  160.  
  161.         this.checkForWin = function() {
  162.             //check left-to-right
  163.             for (var i=1; i<=2; i++) {
  164.                 for (var col = 0; col <=3; col++) {
  165.                     for (var row = 0; row <boardSize; row++) {
  166.                         if (game.board.tabuleiro[row][col] == i) {
  167.                             if ((game.board.tabuleiro[row][col+1] == i) && (game.board.tabuleiro[row][col+2] == i) && (game.board.tabuleiro[row][col+3] == i)) {
  168.                                 game.endGame(i);
  169.                                 return true;
  170.                             }
  171.                         }
  172.                     }
  173.                 }
  174.             }
  175.  
  176.             //check top-to-bottom
  177.             for (var i=1; i<=2; i++) {
  178.                 for (var col = 0; col <boardSize; col++) {
  179.                     for (var row = 0; row <=3; row++) {
  180.                         if (game.board.tabuleiro[row][col] == i) {
  181.                             if ((game.board.tabuleiro[row+1][col] == i) && (game.board.tabuleiro[row+2][col] == i) && (game.board.tabuleiro[row+3][col] == i)) {
  182.                                 game.endGame(i);
  183.                                 return true;
  184.                             }
  185.                         }
  186.                     }
  187.                 }
  188.             }
  189.  
  190.             //check diagnol down
  191.             for (var i=1; i<=2; i++) {
  192.                 for (var col = 0; col <boardSize-3; col++) {
  193.                     for (var row = 0; row <boardSize-3; row++) {
  194.                         if (game.board.tabuleiro[row][col] == i) {
  195.                             if ((game.board.tabuleiro[row+1][col+1] == i) && (game.board.tabuleiro[row+2][col+2] == i) && (game.board.tabuleiro[row+3][col+3] == i)) {
  196.                                 game.endGame(i);
  197.                                 return true;
  198.                             }
  199.                         }
  200.                     }
  201.                 }
  202.             }
  203.  
  204.             //check diagnol up
  205.             for (var i=1; i<=2; i++) {
  206.                 for (var col = 0; col <boardSize-3; col++) {
  207.                     for (var row = 3; row <boardSize; row++) {
  208.                         if (game.board.tabuleiro[row][col] == i) {
  209.                             if ((game.board.tabuleiro[row-1][col+1] == i) && (game.board.tabuleiro[row-2][col+2] == i) && (game.board.tabuleiro[row-3][col+3] == i)) {
  210.                                 game.endGame(i);
  211.                                 return true;
  212.                             }
  213.                         }
  214.                     }
  215.                 }
  216.             }
  217.         }
  218.  
  219.         this.endGame = function(winner) {
  220.             this.game_active = false;
  221.             document.getElementById("messageDiv").innerHTML = "Vencedor: <span style='color:" + player_color[winner] + "'>Jogador " + winner + "</span>";
  222.             clear("boardDiv");
  223.             show("replay");
  224.             if(winner==1){
  225.                 player_w++;
  226.             }
  227.             else if(winner==2){
  228.                 player_l++;
  229.             }
  230.         }
  231.  
  232.         this.setUpTurn = function() {
  233.             if(this.game_active)
  234.                 document.getElementById("messageDiv").innerHTML="-> <span style='color:" + player_color[this.active_player] + "'>Player " + active_player + "</span> <-"
  235.         }
  236. }
  237.  
  238. function PC(dif) {
  239.         this.dif=dif;
  240.  
  241.         this.move = function() {
  242.             var min=100;
  243.             var col_play=0;
  244.             var count=0;
  245.             for(var i=0; i < game.board.tabuleiro.length; i++){
  246.                 count=0;
  247.                 for(var j=game.board.tabuleiro.length - 1; j >= 0; j--){
  248.                     if(game.board.tabuleiro[i][j]!=0)
  249.                         count++;
  250.                 }
  251.                 if(count<min){
  252.                     min=count;
  253.                     col_play=i;
  254.                 }
  255.             }
  256.             document.getElementById("col_" + col_play).click();
  257.         }
  258. }
  259.  
  260. function resetGameDiv(){
  261.     var elem = document.getElementById("gameDiv");
  262.     while (elem.firstChild)
  263.         elem.removeChild(elem.firstChild);
  264.     document.getElementById("gameDiv").style.display="none";
  265. }
  266.  
  267. function Cell(x, y) {
  268.         this.x = x;
  269.         this.y = y;
  270.         this.html = document.createElement("img");
  271.         this.html.className = "piece";
  272.         this.html.id = "piece_" + x + "_" + y;
  273.         this.html.src = "img/void_piece.png";
  274.  
  275.         this.html.onmouseover = function() {
  276.             if(ongame == 0)
  277.                 if(game.board.tabuleiro[x][y]==0){
  278.                     document.getElementById("piece_" + x + "_" + y).src = "img/" + player_color[active_player] + "_piece.png";
  279.                 }
  280.             else{
  281.                 if(active_player == username)
  282.                     document.getElementById("piece_" + x + "_" + y).src = "img/red_piece.png";
  283.                 else
  284.                     document.getElementById("piece_" + x + "_" + y).src = "img/blue_piece.png";
  285.             }
  286.         }
  287.  
  288.         this.html.onmouseleave = function() {
  289.             if(game.board.tabuleiro[x][y]==0){
  290.                 document.getElementById("piece_" + x + "_" + y).src = "img/void_piece.png";
  291.             }
  292.         }
  293. }
  294.  
  295. /* FIM JOGO */
  296.  
  297. /* OPÇÕES */
  298.  
  299.     function logged() {
  300.         show("menu");
  301.         clear("login");
  302.     }
  303.  
  304.     function clear_show(k) {
  305.         if(document.getElementById(k).style.display === "none") {
  306.             document.getElementById(k).style.display = "block";
  307.         }
  308.         else if(document.getElementById(k).style.display === "block"){
  309.             document.getElementById(k).style.display = "none";
  310.         }
  311.     }
  312.  
  313.     function clear(k) {
  314.  
  315.         document.getElementById(k).style.display = "none";
  316.     }
  317.  
  318.     function show(k) {
  319.  
  320.         document.getElementById(k).style.display = "block";
  321.     }
  322.  
  323.     function restartGame() {
  324.         clear("replay");
  325.         resetGameDiv();
  326.         clear("sidebar");
  327.         clear("sb_option");
  328.         show("menu_jogo");
  329.     }
  330.  
  331.     function leaveGame() {
  332.         clear("replay");
  333.         resetGameDiv();
  334.         clear("sidebar");
  335.         clear("sb_option");
  336.         logged();
  337.     }
  338.  
  339.     function jogar() {
  340.         clear("menu");
  341.         show("menu_jogo");
  342.         show("option1");
  343.         clear("option1_1");
  344.         clear("option1_2");
  345.         clear("start_1");
  346.         clear("start_2");
  347.     }
  348.  
  349.     function jogo(k, fst_player, n) {
  350.         clear("menu_jogo");
  351.  
  352.         document.getElementById("record").innerHTML="Vitórias: " + player_w + "<br>Derrotas: " + player_l + "<br>";
  353.  
  354.         show("sb_option");
  355.         clear("menu");
  356.         newGame(k, fst_player, n);
  357.     }
  358.  
  359.     function sairjogo() {
  360.         if(active_player==1){
  361.             document.getElementById("messageDiv").innerHTML = "Vencedor: <span style='color:" + player_color[2] + "'>Jogador 2</span>";
  362.             player_l++;
  363.         }
  364.         else if(active_player==2){
  365.             document.getElementById("messageDiv").innerHTML = "Vencedor: <span style='color:" + player_color[1] + "'>Jogador 1</span>";
  366.             player_w++;
  367.         }
  368.  
  369.         show("replay");
  370.         game.game_active=false;
  371.         clear("boardDiv");
  372.     }
  373.  
  374.     function sidebar() {
  375.  
  376.         clear_show("sidebar");
  377.     }
  378.  
  379.     function sb_instructions() {
  380.         clear_show("ajuda1");
  381.         clear_show("gameDiv");
  382.     }
  383.  
  384.     function option1(k) {
  385.         if(k=="2"){ show("option1_1"); }
  386.         else{ show("option1_2"); }
  387.         clear("option1");
  388.     }
  389.  
  390.     function option1_1(k) {
  391.         if(k==2){
  392.             show("start_1");
  393.         }
  394.         else{
  395.             show("start_2");
  396.         }
  397.         clear("option1_1");
  398.     }
  399.  
  400.     function option1_2(k) {}
  401.  
  402.     function online() {}
  403.  
  404.     function logout() {
  405.         location.reload();
  406.     }
  407.  
  408. /* FIM OPÇÕES */
  409.  
  410. /* SERVER COMMANDS */
  411.  
  412. function register(){
  413.     username = document.getElementById("user").value;
  414.     password = document.getElementById("psw").value;
  415.  
  416.     var js_obj = {"nick": username, "pass": password};
  417.     var json = JSON.stringify(js_obj);
  418.  
  419.     var xhr = new XMLHttpRequest();
  420.  
  421.     xhr.open("POST", url+"register", true);
  422.     xhr.send(json);
  423.  
  424.     xhr.onreadystatechange = function() {
  425.         if(this.readyState != 4)
  426.             return;
  427.         else if(this.status == 200){
  428.             document.getElementById("showLoginDiv").style.display = "block";
  429.             document.getElementById("showLoginText").innerHTML = "Welcome, " + username + "!";
  430.  
  431.             loginflag=true;
  432.  
  433.             if(localStorage[username] == null)
  434.                 localStorage[username] = JSON.stringify({"victories": 0, "games": 0});
  435.  
  436.             logged();
  437.         }
  438.         else if(this.status == 400){
  439.             var login_error = document.createElement("p");
  440.             login_error.id = "badLogin";
  441.             document.getElementById("login").appendChild(login_error);
  442.             document.getElementById("badLogin").innerHTML = JSON.parse(this.responseText).error;
  443.         }
  444.     }
  445. }
  446.  
  447. function join(size){
  448.     boardSize = size;
  449.  
  450.  
  451.     resetGameDiv();
  452.  
  453.     var messageH = document.createElement("h1");
  454.     messageH.id = "messageH1";
  455.     document.getElementById("gameDiv").appendChild(messageH);
  456.  
  457.     var timerH = document.createElement("h2");
  458.     timerH.id = "timerH2";
  459.     document.getElementById("gameDiv").appendChild(timerH);
  460.  
  461.     setTimer();
  462.  
  463.     show("gameDiv");
  464.  
  465.     var js_obj = {"grupo": 42, "nick": username, "pass": password, "size": { "rows": Number(boardSize), "columns": Number(boardSize) } };
  466.     var jSon = JSON.stringify(js_obj);
  467.  
  468.     var xhr = new XMLHttpRequest();
  469.     xhr.open("POST", url+"join", true);
  470.     xhr.send(jSon);
  471.  
  472.     xhr.onreadystatechange = function() {
  473.             if(this.readyState != 4)
  474.                 return;
  475.             else if(this.status == 200){
  476.                 var gameId = JSON.parse(this.responseText)["game"];
  477.  
  478.                 initiateEventSource(gameId);
  479.  
  480.                 messageH.innerHTML = "À espera de jogador...";
  481.  
  482.                 document.getElementById("option1_2").style.display = "none";
  483.             }
  484.             else if(this.status == 400){
  485.                 var json = JSON.parse(this.responseText);
  486.                 if(json["error"]=="Invalid size")
  487.                     messageH.innerHTML = "Erro! Tamanho incorreto.";
  488.                 else
  489.                     messageH.innerHTML = "Erro na ligação! Volte a tentar.";
  490.             }
  491.             else if(this.status >= 500)
  492.                 messageH.innerHTML = "Erro! Má conexão ao servidor.";
  493.  
  494.  
  495.             var back = document.createElement("BUTTON");
  496.             back.id = "returnbutton";
  497.             back.type = "button";
  498.             back.value = "Voltar";
  499.             back.onclick = function(){
  500.                 game_active = false;
  501.                 gameId = null;
  502.                 document.getElementById("gameDiv").removeChild(back);
  503.                 document.getElementById("menu_jogo").style.display = "none";
  504.                 messageH.innerHTML = "";
  505.                 logged();
  506.             }
  507.             document.getElementById("gameDiv").appendChild(back);
  508.         }
  509.  
  510. }
  511.  
  512.  
  513. // ONLINE GAME //
  514.  
  515. function OnlineGame(gameId, boardSize, firstPlayer){
  516.     this.gameId = gameId;
  517.     this.boardSize = boardSize;
  518.     active_player = firstPlayer;
  519.  
  520.     this.turn;
  521.     this.board;
  522.  
  523.     ongame = 1;
  524.  
  525.     this.initiateGame = function(firstPlayer){
  526.         this.board = new Board(this.boardSize, this.boardSize);
  527.  
  528.         this.board.createBoard();
  529.  
  530.         this.turn = firstPlayer;
  531.         this.updateMessageDiv();
  532.     }
  533.  
  534.     this.updateMessageDiv = function(){
  535.         clearTimeout(timeOutMessage);
  536.         document.getElementById("messageH1").innerHTML = "-> Vez de " + active_player + " jogar <-";
  537.     }
  538.  
  539.     this.notify = function(c){
  540.         var xhr = new XMLHttpRequest();
  541.         xhr.open("POST", url+"notify", true);
  542.         xhr.send(JSON.stringify({"nick": username, "pass": password, "game": this.gameId, "column": Number(c)}));
  543.  
  544.         xhr.onreadystatechange = function() {
  545.             if(this.readyState != 4)
  546.                 return;
  547.             else if(this.status == 400){
  548.                 var json = JSON.parse(this.responseText);
  549.                 if(json["error"] == "Not your turn to play"){
  550.                     document.getElementById("messageH1").innerHTML = "Não é a sua vez!";
  551.                     timeOutMessage = setTimeout("game.updateMessageDiv()", 3000);
  552.                 }
  553.                 else{
  554.                     document.getElementById("messageH1").innerHTML = "Jogada inválida!";
  555.                     timeOutMessage = setTimeout("game.updateMessageDiv()", 3000);
  556.                 }
  557.             }
  558.         }
  559.     }
  560.  
  561.     this.move = function(i){
  562.         console.log("move");
  563.         if(game_active){
  564.             for(let j = (game.board.k-1); j>=0; j--){
  565.                 let cell = document.getElementById("piece_" + i + "_" + j);
  566.                 if(game.board.tabuleiro[i][j]==0){
  567.                     game.board.tabuleiro[i][j] = active_player;
  568.                     cell.src = "img/blue_piece.png";
  569.                     console.log(game.board.tabuleiro[i][j]);
  570.                     return;
  571.                 }
  572.             }
  573.         }
  574.     }
  575.  
  576.     this.setUpTurn = function(){
  577.         console.log("setupturn");
  578.         if(game_active)
  579.             document.getElementById("messageDiv").innerHTML="-> Player " + active_player + " <-";
  580.  
  581.         game.updateMessageDiv();
  582.     }
  583.  
  584.     this.endGame = function(winner){
  585.         clearTimeout(timeOutMessage);
  586.         if(winner == username)
  587.             document.getElementById("messageH1").innerHTML = " Parabéns! Ganhou!!! ";
  588.         else
  589.             document.getElementById("messageH1").innerHTML = " Perdeu. ";
  590.  
  591.         game_active = false;
  592.  
  593.         document.getElementById("boardDiv").style.display = "none";
  594.         document.getElementById("timerH2").style.display = "none";
  595.         clearInterval(timer);
  596.         evtSource.close();
  597.     }
  598.  
  599.     this.leave = function(){
  600.         var xhr = new XMLHttpRequest();
  601.  
  602.         xhr.onreadystatechange = function() {
  603.             if(this.readyState != 4)
  604.                 return;
  605.             else if(this.status == 400){
  606.                 clearTimeout(timeOutMessage);
  607.                 document.getElementById("messageH1").innerHTML = "Error! Bad request.";
  608.             }
  609.         }
  610.  
  611.         xhr.open("POST", url+"leave", true);
  612.         xhr.send(JSON.stringify({"nick": username, "pass": password, "game": this.gameId}));
  613.  
  614.         clearInterval(timer);
  615.     }
  616. }
  617.  
  618. function initiateEventSource(gameId){
  619.     evtSource = new EventSource(url + "update?nick=" + username + "&game=" + gameId);
  620.  
  621.     evtSource.onmessage = function(packet){
  622.         var json = JSON.parse(packet.data);
  623.  
  624.         if(json["turn"]!=null){
  625.             if(game_active){
  626.                 active_player = json["turn"];
  627.                 game.updateMessageDiv();
  628.                 if(active_player==username) {
  629.                     setTimer();var x = json["column"];
  630.                     var x = json["column"];
  631.                     game.move(Number(x));
  632.                 }
  633.                 else{
  634.                     clearInterval(timer);
  635.                     document.getElementById("timerH2").innerHTML = "1m 0s"
  636.                 }
  637.             }
  638.             else{
  639.                 game_active = true;
  640.                 active_player = json["turn"];
  641.                 game = new OnlineGame(gameId, boardSize, active_player);
  642.                 game.initiateGame(json["turn"]);
  643.                 if(active_player==username) {
  644.                     setTimer();
  645.                     var x = json["column"];
  646.                     game.move(Number(x));
  647.                 }
  648.                 else{
  649.                     clearInterval(timer);
  650.                     document.getElementById("timerH2").innerHTML = "1m 0s"
  651.                 }
  652.             }
  653.         }
  654.         else if(json["winner"]!=null){
  655.             game.endGame(json["winner"]);
  656.         }
  657.         else if(json["error"]){
  658.             if(json["error"]=="Invalid game reference"){
  659.                 clearTimeout(timeOutMessage);
  660.                 document.getElementById("messageH1").innerHTML = "Erro! Game ID incorreto.";
  661.             }
  662.             else{
  663.                 clearTimeout(timeOutMessage);
  664.                 document.getElementById("messageH1").innerHTML = json["error"];
  665.             }
  666.         }
  667.         else if(json["winner"]==null){
  668.             if(timeLeft<=0){
  669.                 setTimeout(function(){
  670.                     game_active = false;
  671.                     evtSource.close();
  672.                 }
  673.                 ,3000);
  674.             }
  675.             else{
  676.                 game_active = false;
  677.                 evtSource.close();
  678.             }
  679.  
  680.         }
  681.     }
  682. }
  683.  
  684. function showMultiplayerRanks(boardSize){
  685.     var xhr = new XMLHttpRequest();
  686.  
  687.     show("tableRankingDiv");
  688.     clear("menu");
  689.  
  690.     xhr.onreadystatechange = function() {
  691.         if(this.readyState != 4)
  692.             return;
  693.         if(this.status == 200){
  694.             var json = JSON.parse(this.responseText).ranking;
  695.  
  696.             var finalText =
  697.                 "<div class='rankings'>" +
  698.                     "<table>" +
  699.                         "<tr>" +
  700.                             "<th>Player</th>" +
  701.                             "<th>Total of games</th>" +
  702.                             "<th>Victories</th>" +
  703.                             "<th>Loses</th>" +
  704.                             "<th>Victories/Loses Ratio</th>" +
  705.                         "</tr>";
  706.             if(json != null){
  707.                 for(var j=0; j<json.length; j++){
  708.  
  709.                     finalText +=
  710.                         "<tr>" +
  711.                             "<td>" + json[j].nick + "</td>" +
  712.                             "<td>" + json[j].games + "</td>" +
  713.                             "<td>" + json[j].victories + "</td>" +
  714.                             "<td>" + (json[j].games - json[j].victories) + "</td>" +
  715.                             "<td>" + ((json[j].victories / json[j].games)*100).toFixed(2) + "%" + "</td>";
  716.                     finalText += "</tr>";
  717.                 }
  718.             }
  719.             finalText +=
  720.                     "</table>"
  721.                 "</div>";
  722.             var btn = "<button type='button' onclick='leaveRankings()'>Voltar</button>";
  723.  
  724.             finalText += btn;
  725.             document.getElementById("tableRankingDiv").innerHTML = finalText;
  726.  
  727.  
  728.         }
  729.         else if(this.status == 400){
  730.             var json = JSON.parse(this.responseText);
  731.             document.getElementById("tableRankingDiv").innerHTML = json.error;
  732.         }
  733.     }
  734.  
  735.     xhr.open("POST", url+"ranking", true);
  736.     xhr.send(JSON.stringify({"size": {"rows": boardSize, "columns": boardSize}}));
  737. }
  738.  
  739. function leaveRankings(){
  740.     clear("tableRankingDiv");
  741.     show("menu");
  742. }
  743.  
  744. function setTimer(){
  745.     timeLeft = 60000;
  746.     clearInterval(timer);
  747.     timer = setInterval(function() {
  748.  
  749.         // Time calculations for days, hours, minutes and seconds
  750.         var minutes = Math.floor((timeLeft % (1000 * 60 * 60)) / (1000 * 60));
  751.         var seconds = Math.floor((timeLeft % (1000 * 60)) / 1000);
  752.  
  753.         // Display the result in the element with id="demo"
  754.         document.getElementById("timerH2").innerHTML = minutes + "m " + seconds + "s ";
  755.  
  756.         // If the count down is finished, write some text
  757.         if (timeLeft <= 0) {
  758.             clearInterval(timer);
  759.             if(singleORmulti == "single")
  760.                 document.getElementById("timerH2").innerHTML = "Time to play exceeded!";
  761.             else
  762.                 document.getElementById("timerH2").innerHTML = "Time to find an opponent exceeded!";
  763.             document.getElementById("leaveGameDiv").style.display = "none";
  764.             if(document.getElementById("boardDiv")!=null)
  765.                 document.getElementById("boardDiv").style.display = "none";
  766.             gameInProgress = false;
  767.             leaveGame();
  768.         }
  769.  
  770.         timeLeft=timeLeft-1000;
  771.     }, 1000);
  772. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement