the gigantic and terrible monster in the shape of a wolf. He is the eldest child of Loki and the giantess Angrboda. The Asgard gods learned of a prophecy which stated that the wolf and his family would one day be responsible for the destruction of the world.
RR-results Fenrir ================= 1-vs-1 20031005 52 bvh.fnr.Fenrir 0.23 1717.03 2202 20031102 53 bvh.fnr.Fenrir 0.23 1706.36 3807 20031207 50 bvh.fnr.Fenrir 0.23 1713.85 4958 20040107 58 bvh.fnr.Fenrir 0.23 1709.18 5925 20040204 72 bvh.fnr.Fenrir 0.280 1691.69 388 20040303 76 bvh.fnr.Fenrir 0.31 1712.52 594 20040407 82 bvh.fnr.Fenrir 0.33 1707.50 818 20040505 83 bvh.fnr.Fenrir 0.33 1707.76 1424 20040602 80 bvh.fnr.Fenrir 0.35 1721.01 979 20040707 82 bvh.fnr.Fenrir 0.35 1717.63 1897 20040804 82 bvh.fnr.Fenrir 0.35 1718.52 2499 20040901 85 bvh.fnr.Fenrir 0.35 1718.57 3066 20041009 86 bvh.fnr.Fenrir 0.35 1721.43 670 20041027 93 bvh.fnr.Fenrir 0.36l 1713.27 622 Melee 20040114 37 bvh.fnr.Fenrir 0.25 1538.05 324 20040125 38 bvh.fnr.Fenrir 0.25 1538.29 360 20040128 39 bvh.fnr.Fenrir 0.25 1533.34 1708 20040204 30 bvh.fnr.Fenrir 0.28 1598.55 36 20040211 45 bvh.fnr.Fenrir 0.285 1511.91 2484 20040218 51 bvh.fnr.Fenrir 0.292 1498.72 1656 20040225 50 bvh.fnr.Fenrir 0.292 1501.11 4212 20040303 59 bvh.fnr.Fenrir 0.305 1485.86 162 20040407 59 bvh.fnr.Fenrir 0.33 1502.08 1530 20040505 59 bvh.fnr.Fenrir 0.33 1506.40 1800 20040519 59 bvh.fnr.Fenrir 0.33 1509.60 1854 20040922 66 bvh.fnr.Fenrir 0.35 1511.99 11541 RR-results mini.Fenrir ====================== 1-vs-1 20031005 85 bvh.mini.Fenrir 0.34 1657.33 2281 20031102 84 bvh.mini.Fenrir 0.34 1652.77 3886 20031207 81 bvh.mini.Fenrir 0.34 1656.61 5122 20040107 90 bvh.mini.Fenrir 0.34 1657.38 6223 20040204 98 bvh.mini.Fenrir 0.34 1655.93 7210 20040303 110 bvh.mini.Fenrir 0.34 1658.31 8288 20040407 132 bvh.mini.Fenrir 0.36 1640.70 1402 20040505 135 bvh.mini.Fenrir 0.36 1641.84 2107 20040602 138 bvh.mini.Fenrir 0.36 1643.24 2825 20040707 135 bvh.mini.Fenrir 0.36 1640.42 3778 20040804 127 bvh.mini.Fenrir 0.39 1648.56 1550 20040901 130 bvh.mini.Fenrir 0.39 1650.25 2141 20041009 136 bvh.mini.Fenrir 0.39 1647.50 875 20041027 138 bvh.mini.Fenrir 0.39 1646.25 1963 Melee 20040204 39 bvh.mini.Fenrir 0.34 1554.21 144 20040211 42 bvh.mini.Fenrir 0.34 1530.76 2790 20040218 45 bvh.mini.Fenrir 0.34 1531.61 4878 20040225 45 bvh.mini.Fenrir 0.34 1516.71 7452 20040303 54 bvh.mini.Fenrir 0.34 1510.97 8424 20040407 60 bvh.mini.Fenrir 0.35 1498.57 72 20040505 61 bvh.mini.Fenrir 0.35 1498.57 72 20040519 62 bvh.mini.Fenrir 0.35 1498.57 72 20040922 65 bvh.mini.Fenrir 0.39 1513.22 7973
Some preliminary testing against the top bots showed no improvement in the performance of Fenrir v0.192, but hey, they are top bots and Fenrir is not.
The code is not clean. I dislike the usage of the tempory arrays but need them to prevent that my data arrays are resised to the size of the saved arrays (this happens with the commented statements in the read-method).
Here is my code, maybe someone can use it --Loki
/********************************************************************** ** methods for reading/writing data arrays for the pm-gun: **********************************************************************/ private void inlezenDoelData(String naam, Doel d) { // initialise arrays so they have correct=maximum size d.rotatie = new double[PATROONLENGTE]; d.snelheid = new double[PATROONLENGTE]; try { String filenaam; filenaam = Utils.getFilenaam(naam); ObjectInputStream in = new ObjectInputStream( new GZIPInputStream( new FileInputStream( getDataFile( filenaam )))); // use temporary arrays to store data because the commented statements reduce the array // size to the size of the stored arrays instead of the maximum defined above. double temp1[] = new double[FILE_LENGTE]; double temp2[] = new double[FILE_LENGTE]; temp1 = (double[])in.readObject(); temp2 = (double[])in.readObject(); // is there a smarter way to copy the stored data into the final arrays? for (int i=0; i < temp1.length ; i++) { d.rotatie[i] = temp1[i]; d.snelheid[i] = temp2[i]; } // use one of the constructors to initialise StringBuffer with String d.bewegingsPatroon = new StringBuffer( (String)in.readObject() ); // read counter as this can be smaller than max. file size for datafiles saved after short rounds. d.scanTeller = in.readInt(); in.close(); // create separator between saved data and newly aquired data. ++d.scanTeller; d.rotatie[d.scanTeller%PATROONLENGTE] = 0; d.snelheid[d.scanTeller%PATROONLENGTE] = 0; d.bewegingsPatroon.append((char)-99); } catch (Exception e) { d.bewegingsPatroon = new StringBuffer(); // other arrays already initialised d.scanTeller = 0; } } private void opslaanDoelData(Doel d) { try { String filenaam; int lengte; int startpos; double uitvoer[] = new double[lengte]; // after short rounds the counter can be smaller than the max. file size. lengte = Math.min(FILE_LENGTE, d.scanTeller); filenaam = Utils.getFilenaam(d.naam); ObjectOutputStream out = new ObjectOutputStream( new GZIPOutputStream( new RobocodeFileOutputStream( getDataFile( filenaam )))); // save data from end of array and ignore 'initialisation phase' of battle. As saved data is // used during start of fight is may be more logical to save data from the 'initialisation // phase' instead... startpos = Math.min(PATROONLENGTE, d.scanTeller)-lengte; System.arraycopy(d.rotatie, startpos, uitvoer, 0, lengte); out.writeObject(uitvoer); System.arraycopy(d.snelheid, startpos, uitvoer, 0, lengte); out.writeObject(uitvoer); // save StringBuffer as String from given startposition up to endposition. out.writeObject((String)d.bewegingsPatroon.substring(startpos, startpos+lengte)); // save position of 'counter' out.writeInt(lengte); out.flush(); out.close(); } catch (IOException e) { out.close(); } }
I changed it to a monospaced font and made it so it wouldn't try to convert your comments at the top into a bulleted list. -- Kawigi
mmm, v0.3 of Fenrir is plummeting down the ranks. I must have broken something. --Loki