SE306:Group 3:Subgroup 2a2

From Marks Wiki
Jump to navigation Jump to search

<html> <head>

 <style>
    #bugTable, #workTable {
       
       border: solid 2px black; 
       border-collapse: separate; 
       border-spacing: 0px;
       *border-collapse: collapse; /* ie7 border hack */
    }
    td, th {
       border-color: black;
       border-style: solid;
       padding: 5px;
       margin: 0px;
    }
    td {
       border-width: 1px 1px 0 0;
       *position:relative; /* ie7 border hack */
    }
    th {
       background-color: #a4fbb9;
       border-width: 1px 1px 1px 0;
       *position:relative;
    }
 </style>
 <script>
    String.prototype.isWhiteSpace = function() {
      return this == '\n' || this == ' ' || this == '\t';
    }
    String.prototype.trim = function () {
       var s = this;
       while (s.charAt(0).isWhiteSpace()) s = s.substring(1);
       while (s.charAt(s.length-1).isWhiteSpace()) s = s.substring(0,s.length-1);
       return s;
    }
    function getColour(names) {

var colours = {all:0xDDDDDD, dan:0xDD, joey:0xDD00, katherine:0xDD0000}; var c = 0; for (var i=0;i<names.length;i++) {

          var n = names[i].trim();
          var col = colours[n];

if (col == undefined) continue; c += col; }

       c%=0x1000000;

var s = c.toString(16); while (s.length < 6) {

         s = "0"+s;
       }
       s = s.replace("0","6"); // pastelise the colours

return "#"+s;

    }
    //Go through table and highlight status column
    window.onload = function() {
       var tables = ["workTable", "bugTable"];
       var red = "#FF6666";
       var green = "#66FF66";
       for (var t in tables) {
          var table = document.getElementById(tables[t]);
          var tableRows = table.rows;
          for(var i=1;i<tableRows.length;i++) {
            var nameCell = tableRows[i].cells[1];
            if  (!nameCell) continue;
            var color = getColour(nameCell.innerHTML.toLowerCase().split(","));
            nameCell.style.backgroundColor = color;
            if (t == 1) {
 color = tableRows[i].cells[5].innerHTML.trim() == ""? red : green;
 if (tableRows[i].cells[4]) tableRows[i].cells[4].style.backgroundColor = color;
 if (tableRows[i].cells[5]) tableRows[i].cells[5].style.backgroundColor = color;

}

          }
       }
    }
 </script>

</head> </html>

Work hours

Date Name Start time End time Notes
7/10/08 Joey 1300h 1500h Unpacking the game engine, creating an eclipse project and adding it to version control. Running Elmo for the first time.
16/10/08 Joey, Katherine, Dan 1300h 1530h Discussion of game to implement, and commencement of game development.
20/10/08 Joey 0000h 0300h Developed this bug page
23/10/08 Joey, Katherine, Dan 1400h 1630h Continuation of the development of our Marble Game.
24/10/08 Joey, Katherine 0000h 0400h Fixing bugs and starting report.
24/10/08 Joey 1200h 1300h Locating more bugs

Bugs

BugID Name Module Description Discovered Time Fixed Time
1 Joey Client Client references two different image folders. One of which does not exist. This, for some strange reason disallows the recognition of chits being clicked.
Fixed:Changed the location of both to be consistent at PROJECT_ROOT/images
1030h 10/10/08 1045h 10/10/08
2 Dan Client/Server An exception is caught for "File games.txt" not existing, but then you log in and it sleeps. 1830h 16/10/08
3 Dan Server Connection refused when you start the client and server at the same time 1830h 16/10/08
4 Dan Client/Server An exception is caught after 9 - 10 seconds if you open the client and do not log in 1830h 16/10/08
5 Katherine Client Starting up two clients and logging in with the same username causes 3 versions of each game to show up under the 'new games' list for 1 client. Using the same username also causes other various crashes to occur. 0120h 24/10/08
6 Joey Client The client crashes when run without a server running when defaulting to localhost. However, when specifying the address of another host which doesn't exist, nothing happens and the client logs into a blank server.
Fixed: Changed Network_ClientConnection.java and GameClient.java to check if the host is reachable before displaying login. If not reachable within 2 seconds, show a message to the user that there is no server.
0130h 24/10/08 0200h 24/10/08
7 Joey Client/Server When specifiying an address other than a loopback address i.e. localhost or 127.0.0.1, the client may login but there will be no games displayed. 0220h 24/10/08
8 Joey Server When running twice, an exception is thrown. Should shutdown gracefully and warn the operator that the ports are being used.
Fixed: Simply printed out information in the catch block rather than print stack trace which would confuse the non-expert.
0325h 24/10/08 0338h 24/10/08
9 Joey Networking Specifying a name including message separators % or # result in crashes or odd behavior such as the logging in without any games displayed, or client crashing when chatting. 1300h 24/10/08
10 Joey Client/Networking Including newline characters \n at the end of a sentence when chatting results in the client crashing, throwing an ArrayIndexOutOfBounds exception. 1320h 24/10/08

Limitations

A limitation of game design is that the engine does not support any games other than those which have chits and a limited number of possible moves for each chit, and where the chit may only move position. -joey

A documented bug in the client results in 450x500 being the only possible values for the game screen. -joey

Usability Issues

Slightly confusing naming system of engine components. -Katherine

Eg:

  • clientElmo.Client
  • clientElmo.GameClient
  • elmo.Client