<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://wiki.kram.nz/index.php?action=history&amp;feed=atom&amp;title=SE306%3AGroup_3%3ASubgroup_2a2</id>
	<title>SE306:Group 3:Subgroup 2a2 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.kram.nz/index.php?action=history&amp;feed=atom&amp;title=SE306%3AGroup_3%3ASubgroup_2a2"/>
	<link rel="alternate" type="text/html" href="https://wiki.kram.nz/index.php?title=SE306:Group_3:Subgroup_2a2&amp;action=history"/>
	<updated>2026-04-06T17:07:37Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://wiki.kram.nz/index.php?title=SE306:Group_3:Subgroup_2a2&amp;diff=10070&amp;oldid=prev</id>
		<title>Mark: 42 revision(s)</title>
		<link rel="alternate" type="text/html" href="https://wiki.kram.nz/index.php?title=SE306:Group_3:Subgroup_2a2&amp;diff=10070&amp;oldid=prev"/>
		<updated>2008-11-03T05:21:15Z</updated>

		<summary type="html">&lt;p&gt;42 revision(s)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;!-- this code was &amp;#039;borrowed with permission&amp;#039; from group 6.1 --&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
  &amp;lt;style&amp;gt;&lt;br /&gt;
     #bugTable, #workTable {&lt;br /&gt;
        &lt;br /&gt;
        border: solid 2px black; &lt;br /&gt;
        border-collapse: separate; &lt;br /&gt;
        border-spacing: 0px;&lt;br /&gt;
        *border-collapse: collapse; /* ie7 border hack */&lt;br /&gt;
     }&lt;br /&gt;
     td, th {&lt;br /&gt;
        border-color: black;&lt;br /&gt;
        border-style: solid;&lt;br /&gt;
        padding: 5px;&lt;br /&gt;
        margin: 0px;&lt;br /&gt;
     }&lt;br /&gt;
     td {&lt;br /&gt;
        border-width: 1px 1px 0 0;&lt;br /&gt;
        *position:relative; /* ie7 border hack */&lt;br /&gt;
     }&lt;br /&gt;
     th {&lt;br /&gt;
        background-color: #a4fbb9;&lt;br /&gt;
        border-width: 1px 1px 1px 0;&lt;br /&gt;
        *position:relative;&lt;br /&gt;
     }&lt;br /&gt;
  &amp;lt;/style&amp;gt;&lt;br /&gt;
  &amp;lt;script&amp;gt;&lt;br /&gt;
     String.prototype.isWhiteSpace = function() {&lt;br /&gt;
       return this == &amp;#039;\n&amp;#039; || this == &amp;#039; &amp;#039; || this == &amp;#039;\t&amp;#039;;&lt;br /&gt;
     }&lt;br /&gt;
     String.prototype.trim = function () {&lt;br /&gt;
        var s = this;&lt;br /&gt;
        while (s.charAt(0).isWhiteSpace()) s = s.substring(1);&lt;br /&gt;
        while (s.charAt(s.length-1).isWhiteSpace()) s = s.substring(0,s.length-1);&lt;br /&gt;
        return s;&lt;br /&gt;
     }&lt;br /&gt;
     function getColour(names) {&lt;br /&gt;
	var colours = {all:0xDDDDDD, dan:0xDD, joey:0xDD00, katherine:0xDD0000};&lt;br /&gt;
	var c = 0;&lt;br /&gt;
	for (var i=0;i&amp;lt;names.length;i++) {&lt;br /&gt;
           var n = names[i].trim();&lt;br /&gt;
           var col = colours[n];&lt;br /&gt;
	   if (col == undefined) continue;&lt;br /&gt;
	   c += col;&lt;br /&gt;
	}&lt;br /&gt;
        c%=0x1000000;&lt;br /&gt;
	var s = c.toString(16);&lt;br /&gt;
	while (s.length &amp;lt; 6) {&lt;br /&gt;
          s = &amp;quot;0&amp;quot;+s;&lt;br /&gt;
        }&lt;br /&gt;
        s = s.replace(&amp;quot;0&amp;quot;,&amp;quot;6&amp;quot;); // pastelise the colours&lt;br /&gt;
	return &amp;quot;#&amp;quot;+s;&lt;br /&gt;
     }&lt;br /&gt;
     //Go through table and highlight status column&lt;br /&gt;
     window.onload = function() {&lt;br /&gt;
        var tables = [&amp;quot;workTable&amp;quot;, &amp;quot;bugTable&amp;quot;];&lt;br /&gt;
        var red = &amp;quot;#FF6666&amp;quot;;&lt;br /&gt;
        var green = &amp;quot;#66FF66&amp;quot;;&lt;br /&gt;
        for (var t in tables) {&lt;br /&gt;
           var table = document.getElementById(tables[t]);&lt;br /&gt;
           var tableRows = table.rows;&lt;br /&gt;
           for(var i=1;i&amp;lt;tableRows.length;i++) {&lt;br /&gt;
             var nameCell = tableRows[i].cells[1];&lt;br /&gt;
             if  (!nameCell) continue;&lt;br /&gt;
             var color = getColour(nameCell.innerHTML.toLowerCase().split(&amp;quot;,&amp;quot;));&lt;br /&gt;
             nameCell.style.backgroundColor = color;&lt;br /&gt;
             if (t == 1) {&lt;br /&gt;
  color = tableRows[i].cells[5].innerHTML.trim() == &amp;quot;&amp;quot;? red : green;&lt;br /&gt;
  if (tableRows[i].cells[4]) tableRows[i].cells[4].style.backgroundColor = color;&lt;br /&gt;
  if (tableRows[i].cells[5]) tableRows[i].cells[5].style.backgroundColor = color;&lt;br /&gt;
}&lt;br /&gt;
           }&lt;br /&gt;
        }&lt;br /&gt;
     }&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Work hours===&lt;br /&gt;
&lt;br /&gt;
{|id=&amp;quot;workTable&amp;quot;&lt;br /&gt;
!Date&lt;br /&gt;
!Name&lt;br /&gt;
!Start time&lt;br /&gt;
!End time &lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|7/10/08&lt;br /&gt;
|Joey&lt;br /&gt;
|1300h&lt;br /&gt;
|1500h&lt;br /&gt;
|Unpacking the game engine, creating an eclipse project and adding it to version control. Running Elmo for the first time.&lt;br /&gt;
|-&lt;br /&gt;
|16/10/08&lt;br /&gt;
|Joey, Katherine, Dan&lt;br /&gt;
|1300h&lt;br /&gt;
|1530h&lt;br /&gt;
|Discussion of game to implement, and commencement of game development.&lt;br /&gt;
|-&lt;br /&gt;
|20/10/08&lt;br /&gt;
|Joey&lt;br /&gt;
|0000h&lt;br /&gt;
|0300h&lt;br /&gt;
|Developed this bug page&lt;br /&gt;
|-&lt;br /&gt;
|23/10/08&lt;br /&gt;
|Joey, Katherine, Dan&lt;br /&gt;
|1400h&lt;br /&gt;
|1630h&lt;br /&gt;
|Continuation of the development of our Marble Game.&lt;br /&gt;
|-&lt;br /&gt;
|24/10/08&lt;br /&gt;
|Joey, Katherine&lt;br /&gt;
|0000h&lt;br /&gt;
|0400h&lt;br /&gt;
|Fixing bugs and starting report.&lt;br /&gt;
|-&lt;br /&gt;
|24/10/08&lt;br /&gt;
|Joey&lt;br /&gt;
|1200h&lt;br /&gt;
|1300h&lt;br /&gt;
|Locating more bugs&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Bugs===&lt;br /&gt;
&lt;br /&gt;
{|id=&amp;quot;bugTable&amp;quot;&lt;br /&gt;
!BugID&lt;br /&gt;
!Name&lt;br /&gt;
!Module&lt;br /&gt;
!Description&lt;br /&gt;
!Discovered Time&lt;br /&gt;
!Fixed Time&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|Joey&lt;br /&gt;
|Client&lt;br /&gt;
|Client references two different image folders. One of which does not exist. This, for some strange reason disallows the recognition of chits being clicked. &amp;lt;br&amp;gt;&amp;lt;b&amp;gt;Fixed:&amp;lt;/b&amp;gt;&amp;lt;i&amp;gt;Changed the location of both to be consistent at PROJECT_ROOT/images&amp;lt;/i&amp;gt;&lt;br /&gt;
|1030h 10/10/08&lt;br /&gt;
|1045h 10/10/08&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|Dan&lt;br /&gt;
|Client/Server&lt;br /&gt;
|An exception is caught for &amp;quot;File games.txt&amp;quot; not existing, but then you log in and it sleeps.&lt;br /&gt;
|1830h 16/10/08&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|Dan&lt;br /&gt;
|Server&lt;br /&gt;
|Connection refused when you start the client and server at the same time&lt;br /&gt;
|1830h 16/10/08&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|Dan&lt;br /&gt;
|Client/Server&lt;br /&gt;
|An exception is caught after 9 - 10 seconds if you open the client and do not log in&lt;br /&gt;
|1830h 16/10/08&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|Katherine&lt;br /&gt;
|Client&lt;br /&gt;
|Starting up two clients and logging in with the same username causes 3 versions of each game to show up under the &amp;#039;new games&amp;#039; list for 1 client. Using the same username also causes other various crashes to occur.&lt;br /&gt;
|0120h 24/10/08&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6&lt;br /&gt;
|Joey&lt;br /&gt;
|Client&lt;br /&gt;
|The client crashes when run without a server running when defaulting to localhost. However, when specifying the address of another host which doesn&amp;#039;t exist, nothing happens and the client logs into a blank server.&amp;lt;br&amp;gt;&amp;lt;b&amp;gt;Fixed: &amp;lt;/b&amp;gt;&amp;lt;i&amp;gt;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.&amp;lt;/i&amp;gt;&lt;br /&gt;
|0130h 24/10/08&lt;br /&gt;
|0200h 24/10/08&lt;br /&gt;
|-&lt;br /&gt;
|7&lt;br /&gt;
|Joey&lt;br /&gt;
|Client/Server&lt;br /&gt;
|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.&lt;br /&gt;
|0220h 24/10/08&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|8&lt;br /&gt;
|Joey&lt;br /&gt;
|Server&lt;br /&gt;
|When running twice, an exception is thrown. Should shutdown gracefully and warn the operator that the ports are being used.&amp;lt;br&amp;gt;&amp;lt;b&amp;gt;Fixed: &amp;lt;/b&amp;gt;&amp;lt;i&amp;gt;Simply printed out information in the catch block rather than print stack trace which would confuse the non-expert.&amp;lt;/i&amp;gt;&lt;br /&gt;
|0325h 24/10/08&lt;br /&gt;
|0338h 24/10/08&lt;br /&gt;
|-&lt;br /&gt;
|9&lt;br /&gt;
|Joey&lt;br /&gt;
|Networking&lt;br /&gt;
|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.&lt;br /&gt;
|1300h 24/10/08&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|10&lt;br /&gt;
|Joey&lt;br /&gt;
|Client/Networking&lt;br /&gt;
|Including newline characters \n at the end of a sentence when chatting results in the client crashing, throwing an ArrayIndexOutOfBounds exception.&lt;br /&gt;
|1320h 24/10/08&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Limitations===&lt;br /&gt;
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&lt;br /&gt;
&lt;br /&gt;
A documented bug in the client results in 450x500 being the only possible values for the game screen. -joey&lt;br /&gt;
&lt;br /&gt;
===Usability Issues===&lt;br /&gt;
Slightly confusing naming system of engine components. -Katherine&lt;br /&gt;
&lt;br /&gt;
Eg: &lt;br /&gt;
*clientElmo.Client&lt;br /&gt;
*clientElmo.GameClient&lt;br /&gt;
*elmo.Client&lt;/div&gt;</summary>
		<author><name>Mark</name></author>
	</entry>
</feed>