From fa96aae6e612877e020b2be72161dc82a5de7ded Mon Sep 17 00:00:00 2001 From: kara-mosr Date: Mon, 2 Feb 2026 13:11:57 +0100 Subject: [PATCH 01/13] Bots Aleatoires + Simu parties + csv de resultats --- build/fr/iut_fbleau/HexGame/HexBoard.class | Bin 5569 -> 5632 bytes build/fr/iut_fbleau/HexGame/HexFrame.class | Bin 0 -> 3281 bytes build/fr/iut_fbleau/HexGame/HexPanel$1.class | Bin 0 -> 716 bytes build/fr/iut_fbleau/HexGame/HexPanel.class | Bin 0 -> 4430 bytes .../iut_fbleau/HexGame/HexSimMain$Args.class | Bin 0 -> 591 bytes .../iut_fbleau/HexGame/HexSimMain$Stats.class | Bin 0 -> 2212 bytes build/fr/iut_fbleau/HexGame/HexSimMain.class | Bin 0 -> 6583 bytes build/fr/iut_fbleau/HexGame/RandomBot.class | Bin 0 -> 1327 bytes javaAPI/fr/iut_fbleau.tar | Bin 0 -> 51200 bytes javaAPI/fr/iut_fbleau/HexGame/HexBoard.java | 6 + javaAPI/fr/iut_fbleau/HexGame/HexFrame.java | 52 + javaAPI/fr/iut_fbleau/HexGame/HexPanel.java | 166 + javaAPI/fr/iut_fbleau/HexGame/HexSimMain.java | 204 + javaAPI/fr/iut_fbleau/HexGame/RandomBot.java | 44 + results.csv | 10001 ++++++++++++++++ 15 files changed, 10473 insertions(+) create mode 100644 build/fr/iut_fbleau/HexGame/HexFrame.class create mode 100644 build/fr/iut_fbleau/HexGame/HexPanel$1.class create mode 100644 build/fr/iut_fbleau/HexGame/HexPanel.class create mode 100644 build/fr/iut_fbleau/HexGame/HexSimMain$Args.class create mode 100644 build/fr/iut_fbleau/HexGame/HexSimMain$Stats.class create mode 100644 build/fr/iut_fbleau/HexGame/HexSimMain.class create mode 100644 build/fr/iut_fbleau/HexGame/RandomBot.class create mode 100644 javaAPI/fr/iut_fbleau.tar create mode 100644 javaAPI/fr/iut_fbleau/HexGame/HexFrame.java create mode 100644 javaAPI/fr/iut_fbleau/HexGame/HexPanel.java create mode 100644 javaAPI/fr/iut_fbleau/HexGame/HexSimMain.java create mode 100644 javaAPI/fr/iut_fbleau/HexGame/RandomBot.java create mode 100644 results.csv diff --git a/build/fr/iut_fbleau/HexGame/HexBoard.class b/build/fr/iut_fbleau/HexGame/HexBoard.class index 8c58a16a3f59b755c1e3f8d957435672ab73ccaa..654424d125f8c32a0420c50ec87a355c79af4d24 100644 GIT binary patch delta 685 zcmX@8-Jnx{>ff$?3=9nB439Y(JQ?!17z`Qm*%=DB7?>FfxfpC1ir5*7IT%W~7}yv} zIT;KY%GenkKy*1fLj_22B{xF|Lluaq1`##v47DKXI*?pF$jAnEhDI(1QHCZE(F`J5 zKys}hqK&Jbp`8KD?*Q>TK|~jb=;mVRVdxcNU|^WY&M--cfstV%7lRT*DM)S#h?oi@ zrh$m*AYuk5!%T)*AYwKb(6!G=kW2S zr?&RmP2zomp%cH%)F}5m(vFu!V03!#0NP zj0{ZCo;(bW3{E@@J`BD*3_BP$FfzzYUdSqG9gtJW!?2UVn}=Z+h}g}rhlgP=hzMth zU}xCJ!w|&~&BG7`GARs1#4yCNGwkPKIKXglGC!*r=OGS;!#oT}7>-WXV^wiK#={W6 z5Xi%D9Hi+4Lo5%&NrqEA3~>y>><~cawC`OWG8MHM&Zrv++Cc^j0{pJ_ZH`J_aU+eg;N{ I31D(E02X$jlmGw# delta 659 zcmZqBIjCKK>ff$?3=9nB439V&JQ;Gi7z`Qm*ctM<7?>FfxEO303fUQoI2ek#7}yv} zI2jBXO4%74Ky(>9Lpexs1vf(oLnVl)0uj~h3^gF>T98~F$jEwjh6XMMQHDkk(F7uz zL2@l1qLr(jp^X8|ZwK)^Ktv~q=;C7NX6O-OU|^WQ&M;AkfstVX7lRT*2}o`-h?oK* zrh^Bs0tf5%bs?=5sMDU|7h`u!xJnn4y4! zVKEnju@u7+5N|05!!izr_#ubdKCm&>-#kgj24AW1>wUfh`=S*f| z(O_Q3uzs>Giz?%W$-yi(j2kCUU=df@#ITu%VGBbr55rc5ZHx>|(VjdEjtovb3_c9L zJPg|z)-y85Oy0;UX&sPL$-}UN!JCI+Cy3a^u$zZr4~Ph7h+t>f%fk@G5Y5971TrZM zM8q(}vNP=CVc5@bV6r@`80SF_hC@6IhZ&AcwqsRsKgz=pz!1p8a15mBI72KC!wH6y zJPdIR!R!pDcoy< zSF&obUF2c7#Bh1?byfwAD-2h87_Kl}oBW?ulKBe5_07_3Um2NiFx=cM%wfpHb_?Wy zdy~DmG#MXEF5%kB@{o~1b@D_m)yYBJE{sB(r*n64GIKCwO%4`q(#~dJU|?d%VYth{ iz`(`8$Z(tCKEoXbNrqkq1_nL`CWbx+MuvVcISBy&x|s6- diff --git a/build/fr/iut_fbleau/HexGame/HexFrame.class b/build/fr/iut_fbleau/HexGame/HexFrame.class new file mode 100644 index 0000000000000000000000000000000000000000..29f983f61d3234468606b585d44b4b63a693b593 GIT binary patch literal 3281 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 RgCm1410#bUm<$4wkpMqPb`Jmm literal 0 HcmV?d00001 diff --git a/build/fr/iut_fbleau/HexGame/HexPanel$1.class b/build/fr/iut_fbleau/HexGame/HexPanel$1.class new file mode 100644 index 0000000000000000000000000000000000000000..3166fc2f1730c9874d98aab011e54db8e76ffecd GIT binary patch literal 716 zcmX^0Z`VEs1_pBm4Ne9&1~D!Mb_Q`S1_=g95Fy3IAj}}m&LG3iAjinSR+5oftYW~( zpx~2Mq@P(@5}%folbTqn?~z*Jo|u~oq5~51Qgf^s8Q5$x^D;~97#Wl`2r1SKV`N}) z&QD2YWZ?J7%uDqv%}q)z3Q0`LNo8c<$;~e{iEiUoMFD~I>;9%ec2`aKPDDf~TGpO(|sDcPJ26aXT1^oV2F=S-m z@yyFhEppCDEG|whW@L~C*^KU7$CSi^lGGwb208rZF*2Cr2|cI$#G({yaClVc7nf(| zrR#h7BqpWifCGYA0~8#R*sKSK79#^odTL1oBLlOBrYD3G$;iN+k(if~0|{?N238GE zPt7m}1qL<-b_NCpMgaj(=rAxaFflMNa4~Q*Ff#BkFfb@FFhNALw6`)aYHep=+6Yq3 zz{|kEz{bGHz`&r+z{tSIzzSI~W<*7{CAkhJB=L literal 0 HcmV?d00001 diff --git a/build/fr/iut_fbleau/HexGame/HexPanel.class b/build/fr/iut_fbleau/HexGame/HexPanel.class new file mode 100644 index 0000000000000000000000000000000000000000..78b3803bf1b302f7fcfb9e0fba99111ca13499b9 GIT binary patch literal 4430 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 GSU3U5XiD$^ literal 0 HcmV?d00001 diff --git a/build/fr/iut_fbleau/HexGame/HexSimMain$Args.class b/build/fr/iut_fbleau/HexGame/HexSimMain$Args.class new file mode 100644 index 0000000000000000000000000000000000000000..cdd9d64cddccaf9251b4dd26b8c04e75f213fe12 GIT binary patch literal 591 zcmX^0Z`VEs1_pBmEiML51}RPk4hCruA;ZNW%OD40$%6<55TVGv!R@Gx+*GpO@0XfSB(aIT00n6wlc74 zF>hsH(_-Apz`hZzS(Jf+L5hKmfq}t_frY`Efs4V0L6E_gL4v`KL6*Uuftf*!fq{XE YL7YJXOiMDTfStz3z`-ENpv=Gp0C59zzW@LL literal 0 HcmV?d00001 diff --git a/build/fr/iut_fbleau/HexGame/HexSimMain$Stats.class b/build/fr/iut_fbleau/HexGame/HexSimMain$Stats.class new file mode 100644 index 0000000000000000000000000000000000000000..dc3104d5c4aaa5dcb1c9e83a44795e9491348af3 GIT binary patch literal 2212 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 { + int size = 11; + if (args.length >= 1) { + try { size = Integer.parseInt(args[0]); } catch (NumberFormatException ignored) {} + } + + HexBoard board = new HexBoard(size); + + JFrame frame = new JFrame("Hex - " + size + "x" + size); + frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + frame.setLayout(new BorderLayout()); + + JLabel statusLabel = new JLabel("", SwingConstants.CENTER); + statusLabel.setFont(statusLabel.getFont().deriveFont(Font.BOLD, 18f)); + statusLabel.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)); + + HexPanel panel = new HexPanel(board, statusLabel); + + frame.add(statusLabel, BorderLayout.NORTH); + frame.add(panel, BorderLayout.CENTER); + + // Taille confortable + frame.pack(); + frame.setLocationRelativeTo(null); + frame.setVisible(true); + + // Message initial + updateStatus(board, statusLabel); + }); + } + + static void updateStatus(HexBoard board, JLabel statusLabel) { + if (board.isGameOver()) { + Result r = board.getResult(); // résultat du point de vue PLAYER1 + Player winner = (r == Result.WIN) ? Player.PLAYER1 : Player.PLAYER2; + statusLabel.setText("" + winner + " a gagné !"); + } else { + statusLabel.setText("C'est à " + board.getCurrentPlayer() + " de jouer"); + } + } +} diff --git a/javaAPI/fr/iut_fbleau/HexGame/HexPanel.java b/javaAPI/fr/iut_fbleau/HexGame/HexPanel.java new file mode 100644 index 0000000..ab60f2d --- /dev/null +++ b/javaAPI/fr/iut_fbleau/HexGame/HexPanel.java @@ -0,0 +1,166 @@ +package fr.iut_fbleau.HexGame; + +import fr.iut_fbleau.GameAPI.Player; + +import javax.swing.*; +import java.awt.*; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; +import java.awt.geom.Path2D; + +/** + * Panel Swing qui dessine un plateau Hex en hexagones et gère les clics. + * + * Grille "flat-top" (hexagones à sommet plat en haut), + * avec décalage vertical d'une demi-hauteur une colonne sur deux. + */ +public class HexPanel extends JPanel { + + private final HexBoard board; + private final JLabel statusLabel; + + // Rayon (distance centre -> sommet) + private final int s = 26; + private final int margin = 40; + // pointy-top : largeur = sqrt(3)*s, hauteur = 2*s + private final double hexW = Math.sqrt(3) * s; + private final double hexVStep = 1.5 * s; // distance verticale entre centres + + + private Shape[][] hexShapes; + + public HexPanel(HexBoard board, JLabel statusLabel) { + this.board = board; + this.statusLabel = statusLabel; + this.hexShapes = new Shape[board.getSize()][board.getSize()]; + + setBackground(Color.WHITE); + + addMouseListener(new MouseAdapter() { + @Override + public void mouseClicked(MouseEvent e) { + handleClick(e.getX(), e.getY()); + } + }); + } + + @Override + public Dimension getPreferredSize() { + int n = board.getSize(); + + // largeur : n * hexW + décalage max (hexW/2) + marges + int w = margin * 2 + (int) (n * hexW + hexW / 2); + + // hauteur : (n-1)*1.5*s + 2*s + marges + int h = margin * 2 + (int) ((n - 1) * hexVStep + 2 * s); + + return new Dimension(w, h); + } + + + private void handleClick(int x, int y) { + if (board.isGameOver()) return; + + int n = board.getSize(); + for (int row = 0; row < n; row++) { + for (int col = 0; col < n; col++) { + Shape sh = hexShapes[row][col]; + if (sh != null && sh.contains(x, y)) { + HexPly ply = new HexPly(board.getCurrentPlayer(), row, col); + if (board.isLegal(ply)) { + board.doPly(ply); + HexFrame.updateStatus(board, statusLabel); + repaint(); + } else { + Toolkit.getDefaultToolkit().beep(); + } + return; + } + } + } + } + + @Override + protected void paintComponent(Graphics g) { + super.paintComponent(g); + + Graphics2D g2 = (Graphics2D) g.create(); + g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); + + // Bordures objectifs (bleu gauche/droite, rouge haut/bas) + drawGoalBorders(g2); + + int n = board.getSize(); + + // IMPORTANT : boucles cohérentes -> row puis col + for (int row = 0; row < n; row++) { + for (int col = 0; col < n; col++) { + + Shape hex = createHexShape(row, col); + hexShapes[row][col] = hex; + + Player p = board.getCellPlayer(row, col); + g2.setColor(colorForCell(p)); + g2.fill(hex); + + g2.setColor(new Color(120, 120, 120)); + g2.setStroke(new BasicStroke(1.2f)); + g2.draw(hex); + } + } + + g2.dispose(); + } + + private Color colorForCell(Player p) { + if (p == Player.PLAYER1) return new Color(30, 90, 160); // bleu + if (p == Player.PLAYER2) return new Color(220, 50, 50); // rouge + return new Color(190, 190, 190); // gris + } + + /** + * Pointy-top + décalage par ligne : + * + * centreX = margin + hexW/2 + col*hexW + (row%2)*(hexW/2) + * centreY = margin + s + row*(1.5*s) + */ + private Shape createHexShape(int row, int col) { + double cx = margin + (hexW / 2.0) + col * hexW + ((row % 2) * (hexW / 2.0)); + double cy = margin + s + row * hexVStep; + + Path2D.Double path = new Path2D.Double(); + for (int i = 0; i < 6; i++) { + double angle = Math.toRadians(i * 60); // pointy-top + double x = cx + s * Math.cos(angle); + double y = cy + s * Math.sin(angle); + if (i == 0) path.moveTo(x, y); + else path.lineTo(x, y); + } + path.closePath(); + return path; + } + + + private void drawGoalBorders(Graphics2D g2) { + int n = board.getSize(); + + double leftX = margin - 12; + double rightX = margin + (hexW / 2.0) + (n - 1) * hexW + (hexW / 2.0) + (hexW / 2.0) + 12; + // explication: largeur n colonnes + potentiel décalage d'une demi-largeur + + double topY = margin - 12; + double bottomY = margin + s + (n - 1) * hexVStep + s + 12; + + g2.setStroke(new BasicStroke(6f, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND)); + + // Bleu: gauche / droite (objectif PLAYER1) + g2.setColor(new Color(30, 90, 160)); + g2.drawLine((int) leftX, (int) topY, (int) leftX, (int) bottomY); + g2.drawLine((int) rightX, (int) topY, (int) rightX, (int) bottomY); + + // Rouge: haut / bas (objectif PLAYER2) + g2.setColor(new Color(220, 50, 50)); + g2.drawLine((int) leftX, (int) topY, (int) rightX, (int) topY); + g2.drawLine((int) leftX, (int) bottomY, (int) rightX, (int) bottomY); + } +} diff --git a/javaAPI/fr/iut_fbleau/HexGame/HexSimMain.java b/javaAPI/fr/iut_fbleau/HexGame/HexSimMain.java new file mode 100644 index 0000000..c90002d --- /dev/null +++ b/javaAPI/fr/iut_fbleau/HexGame/HexSimMain.java @@ -0,0 +1,204 @@ +package fr.iut_fbleau.HexGame; + +import fr.iut_fbleau.GameAPI.*; + +import java.io.BufferedWriter; +import java.io.FileWriter; +import java.io.IOException; +import java.util.EnumMap; +import java.util.Random; + +/** + * Lance un grand nombre de parties Hex entre 2 bots aléatoires et affiche des stats. + * + * Exemples : + * java fr.iut_fbleau.HexGame.HexSimMain + * java fr.iut_fbleau.HexGame.HexSimMain --games 10000 --size 7 --seed 123 + * java fr.iut_fbleau.HexGame.HexSimMain --games 5000 --size 11 --csv results.csv + */ +public class HexSimMain { + + private static class Stats { + long win = 0; + long draw = 0; + long loss = 0; + + long totalMoves = 0; + long minMoves = Long.MAX_VALUE; + long maxMoves = Long.MIN_VALUE; + + void record(Result r, int moves) { + if (r == Result.WIN) win++; + else if (r == Result.DRAW) draw++; + else if (r == Result.LOSS) loss++; + totalMoves += moves; + minMoves = Math.min(minMoves, moves); + maxMoves = Math.max(maxMoves, moves); + } + + long games() { return win + draw + loss; } + + double winRate() { return games() == 0 ? 0.0 : (double) win / games(); } + double drawRate() { return games() == 0 ? 0.0 : (double) draw / games(); } + double lossRate() { return games() == 0 ? 0.0 : (double) loss / games(); } + double avgMoves() { return games() == 0 ? 0.0 : (double) totalMoves / games(); } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("Games: ").append(games()).append("\n"); + sb.append("WIN: ").append(win).append(String.format(" (%.2f%%)\n", 100.0 * winRate())); + sb.append("DRAW: ").append(draw).append(String.format(" (%.2f%%)\n", 100.0 * drawRate())); + sb.append("LOSS: ").append(loss).append(String.format(" (%.2f%%)\n", 100.0 * lossRate())); + sb.append(String.format("Moves: avg=%.2f, min=%d, max=%d\n", avgMoves(), minMoves, maxMoves)); + return sb.toString(); + } + } + + private static class Args { + int size = 7; + int games = 1000; + long seed = System.currentTimeMillis(); + int progressEvery = 0; // 0 = pas de progress + String csvPath = null; // si non null, export par partie + } + + public static void main(String[] args) { + Args a = parseArgs(args); + + System.out.println("Hex random-vs-random simulation"); + System.out.println(" size=" + a.size + " games=" + a.games + " seed=" + a.seed + + (a.csvPath != null ? " csv=" + a.csvPath : "")); + + Random master = new Random(a.seed); + Stats stats = new Stats(); + + BufferedWriter csv = null; + try { + if (a.csvPath != null) { + csv = new BufferedWriter(new FileWriter(a.csvPath)); + csv.write("game_index,result_p1,moves\n"); + } + + for (int i = 0; i < a.games; i++) { + // Nouveau plateau, nouveaux bots (seeds dérivés du seed principal) + HexBoard board = new HexBoard(a.size); + + EnumMap players = new EnumMap<>(Player.class); + players.put(Player.PLAYER1, new RandomBot(Player.PLAYER1, new Random(master.nextLong()))); + players.put(Player.PLAYER2, new RandomBot(Player.PLAYER2, new Random(master.nextLong()))); + + int moves = runOneGame(board, players); + + Result res = board.getResult(); + stats.record(res, moves); + + if (csv != null) { + csv.write(i + "," + res + "," + moves + "\n"); + } + + if (a.progressEvery > 0 && (i + 1) % a.progressEvery == 0) { + System.out.println("Progress: " + (i + 1) + "/" + a.games); + } + } + + System.out.println("\n=== SUMMARY (Result is from PLAYER1 perspective) ==="); + System.out.println(stats); + + } catch (IOException e) { + System.err.println("I/O error: " + e.getMessage()); + e.printStackTrace(); + } finally { + if (csv != null) { + try { csv.close(); } catch (IOException ignored) {} + } + } + } + + /** + * Boucle de jeu (même logique que AbstractGame.run, mais on compte les coups). + * On ne modifie pas GameAPI. + */ + private static int runOneGame(IBoard board, EnumMap players) { + int moves = 0; + int guardMaxMoves = ((HexBoard) board).getSize() * ((HexBoard) board).getSize(); // au pire : plateau rempli + + while (!board.isGameOver()) { + AbstractGamePlayer p = players.get(board.getCurrentPlayer()); + IBoard safe = board.safeCopy(); + AbstractPly ply = p.giveYourMove(safe); + + if (!board.isLegal(ply)) { + throw new IllegalStateException("Illegal move: " + ply + " by " + board.getCurrentPlayer()); + } + board.doPly(ply); + moves++; + + if (moves > guardMaxMoves) { + throw new IllegalStateException("Too many moves (" + moves + "), something is wrong."); + } + } + return moves; + } + + private static Args parseArgs(String[] args) { + Args a = new Args(); + for (int i = 0; i < args.length; i++) { + String s = args[i]; + switch (s) { + case "--size": + a.size = Integer.parseInt(nextArg(args, ++i, "--size requires a value")); + break; + case "--games": + a.games = Integer.parseInt(nextArg(args, ++i, "--games requires a value")); + break; + case "--seed": + a.seed = Long.parseLong(nextArg(args, ++i, "--seed requires a value")); + break; + case "--progress": + a.progressEvery = Integer.parseInt(nextArg(args, ++i, "--progress requires a value")); + break; + case "--csv": + a.csvPath = nextArg(args, ++i, "--csv requires a value"); + break; + case "--help": + case "-h": + printHelpAndExit(); + break; + default: + // compat: si l'utilisateur donne juste un nombre, on l'interprète comme size ou games + // ex: "7 10000" + if (isInt(s)) { + int v = Integer.parseInt(s); + if (a.size == 7) a.size = v; + else a.games = v; + } else { + System.err.println("Unknown arg: " + s); + printHelpAndExit(); + } + } + } + return a; + } + + private static String nextArg(String[] args, int idx, String errMsg) { + if (idx < 0 || idx >= args.length) throw new IllegalArgumentException(errMsg); + return args[idx]; + } + + private static boolean isInt(String s) { + try { Integer.parseInt(s); return true; } catch (NumberFormatException e) { return false; } + } + + private static void printHelpAndExit() { + System.out.println("Usage: java fr.iut_fbleau.HexGame.HexSimMain [options]\n" + + "Options:\n" + + " --size N Board size (default 7)\n" + + " --games N Number of games (default 1000)\n" + + " --seed N Random seed (default current time)\n" + + " --progress N Print progress every N games (default 0)\n" + + " --csv FILE Write per-game results to CSV\n" + + " -h, --help Show this help\n"); + System.exit(0); + } +} diff --git a/javaAPI/fr/iut_fbleau/HexGame/RandomBot.java b/javaAPI/fr/iut_fbleau/HexGame/RandomBot.java new file mode 100644 index 0000000..0bc5843 --- /dev/null +++ b/javaAPI/fr/iut_fbleau/HexGame/RandomBot.java @@ -0,0 +1,44 @@ +package fr.iut_fbleau.HexGame; + +import fr.iut_fbleau.GameAPI.AbstractGamePlayer; +import fr.iut_fbleau.GameAPI.AbstractPly; +import fr.iut_fbleau.GameAPI.IBoard; +import fr.iut_fbleau.GameAPI.Player; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.Random; + +/** + * Bot non intelligent : joue un coup légal au hasard. + */ +public class RandomBot extends AbstractGamePlayer { + + private final Random rng; + + public RandomBot(Player me, Random rng) { + super(me); + this.rng = rng; + } + + public RandomBot(Player me, long seed) { + this(me, new Random(seed)); + } + + @Override + public AbstractPly giveYourMove(IBoard board) { + // On récupère tous les coups légaux via l'itérateur fourni par le plateau. + List legal = new ArrayList<>(); + Iterator it = board.iterator(); + while (it.hasNext()) { + legal.add(it.next()); + } + + if (legal.isEmpty()) { + throw new IllegalStateException("No legal move available (board is full?)"); + } + + return legal.get(rng.nextInt(legal.size())); + } +} diff --git a/results.csv b/results.csv new file mode 100644 index 0000000..236f2b9 --- /dev/null +++ b/results.csv @@ -0,0 +1,10001 @@ +game_index,result_p1,moves +0,LOSS,116 +1,LOSS,110 +2,LOSS,114 +3,LOSS,108 +4,WIN,111 +5,WIN,99 +6,WIN,111 +7,WIN,115 +8,WIN,121 +9,LOSS,104 +10,WIN,103 +11,WIN,109 +12,WIN,85 +13,LOSS,114 +14,LOSS,116 +15,WIN,121 +16,WIN,121 +17,LOSS,118 +18,LOSS,114 +19,WIN,109 +20,LOSS,116 +21,LOSS,90 +22,LOSS,100 +23,WIN,119 +24,LOSS,108 +25,WIN,91 +26,LOSS,112 +27,LOSS,106 +28,WIN,119 +29,LOSS,108 +30,LOSS,106 +31,WIN,109 +32,LOSS,106 +33,LOSS,108 +34,WIN,103 +35,WIN,111 +36,WIN,89 +37,LOSS,104 +38,WIN,121 +39,LOSS,102 +40,WIN,119 +41,WIN,111 +42,WIN,117 +43,WIN,119 +44,WIN,107 +45,LOSS,110 +46,LOSS,120 +47,WIN,119 +48,WIN,87 +49,WIN,81 +50,WIN,109 +51,LOSS,114 +52,WIN,117 +53,WIN,115 +54,WIN,99 +55,WIN,93 +56,WIN,99 +57,WIN,115 +58,LOSS,108 +59,LOSS,118 +60,LOSS,92 +61,LOSS,118 +62,WIN,111 +63,WIN,121 +64,WIN,117 +65,WIN,119 +66,WIN,97 +67,WIN,121 +68,LOSS,106 +69,WIN,117 +70,WIN,117 +71,LOSS,78 +72,WIN,117 +73,LOSS,108 +74,WIN,111 +75,LOSS,94 +76,LOSS,82 +77,LOSS,94 +78,WIN,105 +79,LOSS,110 +80,LOSS,118 +81,LOSS,108 +82,WIN,113 +83,LOSS,118 +84,WIN,107 +85,LOSS,90 +86,WIN,113 +87,WIN,93 +88,LOSS,114 +89,WIN,103 +90,LOSS,106 +91,LOSS,106 +92,LOSS,112 +93,WIN,99 +94,WIN,121 +95,WIN,115 +96,WIN,105 +97,WIN,97 +98,WIN,99 +99,LOSS,120 +100,LOSS,116 +101,WIN,115 +102,LOSS,118 +103,WIN,121 +104,LOSS,118 +105,LOSS,100 +106,LOSS,108 +107,LOSS,106 +108,WIN,115 +109,LOSS,116 +110,WIN,117 +111,LOSS,94 +112,LOSS,104 +113,WIN,111 +114,WIN,111 +115,WIN,119 +116,WIN,121 +117,LOSS,64 +118,LOSS,114 +119,LOSS,120 +120,WIN,111 +121,WIN,117 +122,LOSS,116 +123,LOSS,82 +124,WIN,107 +125,LOSS,112 +126,LOSS,92 +127,LOSS,110 +128,WIN,109 +129,LOSS,106 +130,WIN,85 +131,LOSS,114 +132,LOSS,88 +133,WIN,91 +134,LOSS,120 +135,LOSS,118 +136,LOSS,112 +137,WIN,117 +138,WIN,97 +139,WIN,121 +140,LOSS,116 +141,WIN,115 +142,WIN,107 +143,LOSS,116 +144,WIN,115 +145,WIN,97 +146,LOSS,108 +147,LOSS,110 +148,LOSS,104 +149,WIN,119 +150,WIN,119 +151,WIN,115 +152,LOSS,120 +153,LOSS,118 +154,LOSS,118 +155,WIN,111 +156,WIN,115 +157,LOSS,98 +158,WIN,111 +159,LOSS,106 +160,WIN,93 +161,LOSS,98 +162,WIN,119 +163,LOSS,104 +164,LOSS,112 +165,LOSS,112 +166,WIN,101 +167,WIN,113 +168,LOSS,114 +169,LOSS,118 +170,LOSS,118 +171,WIN,117 +172,LOSS,98 +173,LOSS,120 +174,WIN,115 +175,LOSS,102 +176,WIN,105 +177,WIN,101 +178,LOSS,120 +179,WIN,113 +180,LOSS,110 +181,WIN,91 +182,WIN,117 +183,WIN,113 +184,WIN,95 +185,LOSS,98 +186,WIN,117 +187,WIN,87 +188,LOSS,120 +189,LOSS,108 +190,WIN,115 +191,WIN,115 +192,WIN,89 +193,LOSS,86 +194,WIN,111 +195,LOSS,116 +196,LOSS,110 +197,LOSS,104 +198,LOSS,102 +199,LOSS,114 +200,LOSS,112 +201,WIN,67 +202,LOSS,116 +203,WIN,109 +204,LOSS,94 +205,LOSS,108 +206,LOSS,118 +207,LOSS,114 +208,WIN,113 +209,WIN,121 +210,LOSS,102 +211,WIN,99 +212,WIN,89 +213,WIN,113 +214,LOSS,112 +215,LOSS,110 +216,LOSS,108 +217,LOSS,120 +218,WIN,121 +219,LOSS,106 +220,WIN,93 +221,WIN,107 +222,LOSS,118 +223,WIN,121 +224,LOSS,104 +225,LOSS,120 +226,LOSS,96 +227,WIN,107 +228,LOSS,116 +229,WIN,61 +230,LOSS,104 +231,WIN,89 +232,LOSS,102 +233,WIN,119 +234,LOSS,116 +235,WIN,89 +236,WIN,95 +237,WIN,119 +238,LOSS,112 +239,LOSS,108 +240,LOSS,96 +241,WIN,101 +242,WIN,79 +243,WIN,121 +244,WIN,119 +245,LOSS,98 +246,WIN,113 +247,WIN,113 +248,LOSS,110 +249,LOSS,104 +250,WIN,109 +251,WIN,117 +252,LOSS,110 +253,WIN,115 +254,LOSS,118 +255,WIN,99 +256,LOSS,114 +257,WIN,97 +258,LOSS,96 +259,WIN,113 +260,WIN,111 +261,LOSS,102 +262,LOSS,116 +263,LOSS,118 +264,LOSS,92 +265,LOSS,120 +266,WIN,109 +267,WIN,107 +268,LOSS,114 +269,LOSS,112 +270,LOSS,118 +271,WIN,81 +272,WIN,111 +273,LOSS,114 +274,WIN,103 +275,WIN,119 +276,WIN,109 +277,LOSS,104 +278,LOSS,72 +279,WIN,109 +280,WIN,117 +281,LOSS,110 +282,WIN,119 +283,WIN,117 +284,WIN,121 +285,WIN,119 +286,LOSS,86 +287,LOSS,120 +288,LOSS,94 +289,LOSS,104 +290,WIN,107 +291,LOSS,96 +292,LOSS,102 +293,WIN,91 +294,LOSS,116 +295,WIN,119 +296,LOSS,110 +297,LOSS,112 +298,WIN,113 +299,WIN,83 +300,LOSS,108 +301,LOSS,116 +302,LOSS,120 +303,LOSS,102 +304,WIN,99 +305,WIN,97 +306,WIN,121 +307,WIN,115 +308,WIN,107 +309,LOSS,110 +310,WIN,105 +311,LOSS,108 +312,LOSS,96 +313,WIN,113 +314,LOSS,108 +315,WIN,97 +316,WIN,121 +317,LOSS,116 +318,LOSS,96 +319,WIN,121 +320,LOSS,104 +321,WIN,81 +322,LOSS,120 +323,LOSS,96 +324,WIN,111 +325,LOSS,98 +326,LOSS,108 +327,WIN,121 +328,LOSS,84 +329,LOSS,104 +330,LOSS,114 +331,WIN,113 +332,LOSS,104 +333,LOSS,118 +334,WIN,113 +335,WIN,89 +336,LOSS,112 +337,LOSS,120 +338,LOSS,80 +339,LOSS,116 +340,WIN,113 +341,LOSS,112 +342,LOSS,120 +343,WIN,57 +344,LOSS,114 +345,LOSS,116 +346,LOSS,120 +347,WIN,103 +348,WIN,115 +349,WIN,115 +350,LOSS,120 +351,LOSS,118 +352,WIN,111 +353,WIN,85 +354,WIN,99 +355,LOSS,102 +356,WIN,93 +357,LOSS,106 +358,WIN,93 +359,WIN,109 +360,WIN,97 +361,WIN,109 +362,WIN,115 +363,WIN,105 +364,WIN,111 +365,LOSS,94 +366,WIN,97 +367,LOSS,114 +368,LOSS,104 +369,WIN,113 +370,WIN,119 +371,WIN,109 +372,LOSS,110 +373,WIN,107 +374,WIN,103 +375,WIN,121 +376,LOSS,98 +377,LOSS,88 +378,LOSS,116 +379,WIN,111 +380,LOSS,86 +381,WIN,81 +382,LOSS,116 +383,WIN,77 +384,LOSS,98 +385,LOSS,120 +386,WIN,109 +387,WIN,111 +388,WIN,121 +389,LOSS,102 +390,LOSS,114 +391,WIN,121 +392,LOSS,118 +393,LOSS,114 +394,LOSS,116 +395,LOSS,94 +396,WIN,101 +397,LOSS,110 +398,LOSS,96 +399,WIN,119 +400,WIN,113 +401,LOSS,108 +402,LOSS,116 +403,WIN,95 +404,WIN,113 +405,WIN,119 +406,LOSS,108 +407,LOSS,106 +408,LOSS,96 +409,LOSS,90 +410,LOSS,102 +411,LOSS,104 +412,WIN,115 +413,WIN,111 +414,LOSS,120 +415,LOSS,94 +416,WIN,99 +417,WIN,117 +418,LOSS,110 +419,LOSS,120 +420,LOSS,116 +421,LOSS,118 +422,LOSS,94 +423,LOSS,112 +424,WIN,101 +425,WIN,121 +426,WIN,101 +427,LOSS,110 +428,LOSS,118 +429,WIN,117 +430,LOSS,112 +431,WIN,81 +432,WIN,121 +433,LOSS,94 +434,WIN,97 +435,LOSS,106 +436,WIN,109 +437,LOSS,110 +438,WIN,113 +439,WIN,121 +440,LOSS,90 +441,WIN,117 +442,WIN,117 +443,LOSS,106 +444,WIN,111 +445,LOSS,118 +446,LOSS,100 +447,LOSS,114 +448,WIN,113 +449,WIN,85 +450,WIN,91 +451,LOSS,100 +452,LOSS,104 +453,WIN,107 +454,LOSS,118 +455,WIN,121 +456,WIN,103 +457,WIN,91 +458,LOSS,116 +459,LOSS,120 +460,LOSS,102 +461,LOSS,110 +462,LOSS,102 +463,WIN,121 +464,LOSS,112 +465,LOSS,104 +466,LOSS,120 +467,LOSS,112 +468,WIN,121 +469,LOSS,104 +470,LOSS,112 +471,LOSS,112 +472,WIN,87 +473,WIN,103 +474,LOSS,112 +475,WIN,113 +476,LOSS,106 +477,WIN,115 +478,WIN,103 +479,WIN,113 +480,WIN,121 +481,WIN,115 +482,LOSS,108 +483,LOSS,116 +484,LOSS,104 +485,LOSS,86 +486,LOSS,114 +487,LOSS,82 +488,WIN,93 +489,LOSS,80 +490,LOSS,120 +491,WIN,113 +492,WIN,115 +493,LOSS,118 +494,WIN,113 +495,WIN,105 +496,LOSS,114 +497,LOSS,120 +498,LOSS,90 +499,LOSS,88 +500,WIN,111 +501,WIN,103 +502,LOSS,120 +503,WIN,93 +504,WIN,115 +505,LOSS,112 +506,WIN,115 +507,LOSS,112 +508,LOSS,118 +509,LOSS,116 +510,LOSS,106 +511,WIN,101 +512,LOSS,108 +513,WIN,105 +514,WIN,105 +515,WIN,117 +516,WIN,121 +517,WIN,119 +518,WIN,111 +519,WIN,121 +520,WIN,113 +521,LOSS,94 +522,LOSS,98 +523,WIN,107 +524,WIN,111 +525,WIN,105 +526,WIN,101 +527,LOSS,112 +528,LOSS,82 +529,LOSS,110 +530,LOSS,114 +531,WIN,91 +532,LOSS,104 +533,LOSS,114 +534,LOSS,110 +535,WIN,119 +536,WIN,115 +537,WIN,121 +538,LOSS,110 +539,WIN,91 +540,WIN,119 +541,WIN,87 +542,WIN,109 +543,LOSS,116 +544,WIN,111 +545,WIN,107 +546,LOSS,102 +547,WIN,117 +548,WIN,111 +549,WIN,121 +550,LOSS,92 +551,WIN,117 +552,WIN,103 +553,LOSS,98 +554,LOSS,106 +555,LOSS,112 +556,WIN,99 +557,WIN,119 +558,WIN,115 +559,WIN,79 +560,WIN,99 +561,WIN,101 +562,LOSS,114 +563,LOSS,108 +564,LOSS,110 +565,WIN,103 +566,LOSS,108 +567,LOSS,110 +568,LOSS,116 +569,WIN,83 +570,WIN,115 +571,LOSS,98 +572,WIN,117 +573,LOSS,118 +574,LOSS,110 +575,WIN,115 +576,WIN,91 +577,WIN,121 +578,WIN,105 +579,LOSS,98 +580,WIN,113 +581,LOSS,100 +582,LOSS,118 +583,LOSS,108 +584,WIN,87 +585,WIN,119 +586,LOSS,118 +587,LOSS,110 +588,LOSS,98 +589,WIN,105 +590,WIN,105 +591,LOSS,102 +592,WIN,101 +593,LOSS,104 +594,LOSS,116 +595,LOSS,118 +596,LOSS,114 +597,WIN,121 +598,WIN,107 +599,WIN,95 +600,LOSS,102 +601,WIN,119 +602,WIN,101 +603,WIN,111 +604,LOSS,120 +605,LOSS,106 +606,WIN,107 +607,WIN,93 +608,WIN,113 +609,LOSS,114 +610,WIN,79 +611,WIN,71 +612,WIN,107 +613,WIN,115 +614,LOSS,116 +615,WIN,111 +616,WIN,119 +617,LOSS,112 +618,WIN,113 +619,WIN,107 +620,LOSS,114 +621,WIN,113 +622,LOSS,114 +623,LOSS,120 +624,WIN,113 +625,LOSS,112 +626,WIN,105 +627,WIN,103 +628,WIN,119 +629,LOSS,104 +630,WIN,105 +631,LOSS,96 +632,WIN,121 +633,WIN,119 +634,WIN,103 +635,LOSS,118 +636,WIN,113 +637,LOSS,98 +638,WIN,97 +639,WIN,113 +640,LOSS,104 +641,LOSS,116 +642,LOSS,112 +643,LOSS,98 +644,LOSS,96 +645,LOSS,114 +646,WIN,109 +647,WIN,105 +648,LOSS,96 +649,LOSS,94 +650,LOSS,114 +651,LOSS,108 +652,LOSS,120 +653,LOSS,120 +654,WIN,121 +655,WIN,121 +656,WIN,119 +657,WIN,121 +658,LOSS,106 +659,LOSS,116 +660,WIN,117 +661,LOSS,120 +662,WIN,115 +663,WIN,113 +664,WIN,111 +665,LOSS,108 +666,LOSS,114 +667,LOSS,94 +668,WIN,117 +669,LOSS,118 +670,LOSS,118 +671,WIN,115 +672,LOSS,118 +673,LOSS,120 +674,WIN,89 +675,WIN,109 +676,WIN,115 +677,LOSS,110 +678,WIN,105 +679,LOSS,118 +680,WIN,117 +681,WIN,107 +682,LOSS,88 +683,LOSS,116 +684,WIN,97 +685,WIN,105 +686,LOSS,108 +687,WIN,103 +688,WIN,113 +689,LOSS,110 +690,WIN,115 +691,WIN,117 +692,WIN,117 +693,WIN,107 +694,LOSS,112 +695,LOSS,120 +696,LOSS,106 +697,LOSS,116 +698,LOSS,116 +699,WIN,103 +700,LOSS,102 +701,LOSS,110 +702,LOSS,82 +703,LOSS,100 +704,WIN,109 +705,WIN,113 +706,WIN,91 +707,WIN,119 +708,WIN,115 +709,WIN,115 +710,LOSS,102 +711,WIN,77 +712,LOSS,120 +713,WIN,115 +714,WIN,105 +715,LOSS,114 +716,WIN,95 +717,WIN,121 +718,WIN,119 +719,LOSS,108 +720,WIN,119 +721,LOSS,116 +722,LOSS,102 +723,WIN,121 +724,LOSS,120 +725,LOSS,82 +726,LOSS,118 +727,WIN,107 +728,WIN,115 +729,WIN,101 +730,WIN,97 +731,WIN,117 +732,LOSS,118 +733,WIN,109 +734,WIN,89 +735,WIN,113 +736,WIN,111 +737,WIN,119 +738,LOSS,100 +739,WIN,89 +740,LOSS,114 +741,WIN,117 +742,LOSS,116 +743,LOSS,106 +744,WIN,103 +745,LOSS,120 +746,WIN,109 +747,LOSS,120 +748,LOSS,118 +749,WIN,101 +750,LOSS,106 +751,LOSS,114 +752,LOSS,96 +753,LOSS,118 +754,WIN,109 +755,WIN,93 +756,WIN,97 +757,LOSS,116 +758,LOSS,104 +759,LOSS,114 +760,WIN,119 +761,LOSS,112 +762,WIN,105 +763,WIN,113 +764,LOSS,110 +765,WIN,75 +766,LOSS,96 +767,WIN,105 +768,LOSS,106 +769,WIN,109 +770,WIN,119 +771,WIN,117 +772,WIN,121 +773,LOSS,98 +774,WIN,121 +775,LOSS,102 +776,LOSS,110 +777,WIN,119 +778,LOSS,120 +779,WIN,115 +780,LOSS,112 +781,LOSS,120 +782,WIN,95 +783,WIN,91 +784,LOSS,106 +785,WIN,99 +786,LOSS,116 +787,WIN,85 +788,WIN,119 +789,WIN,113 +790,WIN,115 +791,WIN,119 +792,WIN,111 +793,LOSS,92 +794,LOSS,106 +795,LOSS,108 +796,LOSS,92 +797,WIN,105 +798,WIN,111 +799,LOSS,102 +800,WIN,111 +801,WIN,113 +802,WIN,97 +803,LOSS,98 +804,LOSS,114 +805,WIN,117 +806,LOSS,96 +807,WIN,119 +808,LOSS,118 +809,LOSS,116 +810,LOSS,104 +811,WIN,107 +812,WIN,107 +813,WIN,119 +814,LOSS,104 +815,LOSS,112 +816,LOSS,108 +817,WIN,117 +818,WIN,93 +819,LOSS,112 +820,LOSS,106 +821,WIN,113 +822,LOSS,118 +823,WIN,119 +824,LOSS,96 +825,LOSS,112 +826,LOSS,102 +827,WIN,107 +828,LOSS,112 +829,WIN,117 +830,WIN,107 +831,LOSS,110 +832,WIN,107 +833,WIN,95 +834,LOSS,92 +835,WIN,117 +836,WIN,117 +837,WIN,117 +838,WIN,113 +839,LOSS,120 +840,WIN,107 +841,WIN,121 +842,WIN,83 +843,LOSS,106 +844,WIN,101 +845,WIN,111 +846,LOSS,110 +847,LOSS,102 +848,WIN,97 +849,LOSS,118 +850,LOSS,116 +851,WIN,103 +852,LOSS,120 +853,WIN,119 +854,WIN,117 +855,WIN,119 +856,LOSS,102 +857,WIN,93 +858,LOSS,112 +859,WIN,117 +860,WIN,119 +861,WIN,107 +862,LOSS,118 +863,LOSS,112 +864,WIN,83 +865,LOSS,118 +866,LOSS,112 +867,WIN,87 +868,WIN,111 +869,LOSS,110 +870,LOSS,116 +871,LOSS,108 +872,LOSS,114 +873,WIN,107 +874,LOSS,118 +875,WIN,87 +876,LOSS,102 +877,LOSS,102 +878,LOSS,118 +879,WIN,97 +880,LOSS,112 +881,LOSS,114 +882,WIN,93 +883,WIN,113 +884,LOSS,104 +885,WIN,121 +886,LOSS,108 +887,WIN,111 +888,LOSS,98 +889,LOSS,96 +890,WIN,109 +891,LOSS,104 +892,LOSS,110 +893,LOSS,100 +894,WIN,101 +895,WIN,113 +896,LOSS,108 +897,LOSS,114 +898,WIN,113 +899,WIN,119 +900,LOSS,108 +901,LOSS,112 +902,WIN,121 +903,LOSS,120 +904,LOSS,94 +905,WIN,119 +906,LOSS,92 +907,LOSS,90 +908,WIN,119 +909,WIN,91 +910,WIN,121 +911,LOSS,108 +912,WIN,105 +913,WIN,119 +914,LOSS,106 +915,WIN,117 +916,WIN,83 +917,WIN,93 +918,LOSS,120 +919,LOSS,114 +920,LOSS,120 +921,LOSS,108 +922,WIN,105 +923,WIN,117 +924,LOSS,100 +925,LOSS,110 +926,LOSS,82 +927,WIN,91 +928,WIN,117 +929,LOSS,98 +930,LOSS,118 +931,WIN,121 +932,LOSS,110 +933,LOSS,106 +934,WIN,111 +935,WIN,101 +936,LOSS,102 +937,WIN,121 +938,LOSS,94 +939,WIN,105 +940,WIN,111 +941,LOSS,110 +942,LOSS,114 +943,LOSS,92 +944,WIN,117 +945,LOSS,120 +946,WIN,111 +947,LOSS,116 +948,WIN,79 +949,LOSS,100 +950,LOSS,114 +951,LOSS,114 +952,WIN,121 +953,WIN,99 +954,WIN,103 +955,LOSS,116 +956,WIN,101 +957,LOSS,112 +958,WIN,119 +959,WIN,97 +960,WIN,119 +961,WIN,105 +962,WIN,109 +963,WIN,109 +964,WIN,111 +965,WIN,109 +966,WIN,115 +967,WIN,117 +968,WIN,99 +969,LOSS,118 +970,WIN,105 +971,WIN,121 +972,LOSS,120 +973,LOSS,114 +974,LOSS,120 +975,WIN,99 +976,WIN,113 +977,WIN,107 +978,LOSS,110 +979,WIN,117 +980,WIN,89 +981,WIN,117 +982,WIN,95 +983,LOSS,114 +984,WIN,119 +985,LOSS,112 +986,LOSS,80 +987,LOSS,118 +988,LOSS,94 +989,WIN,117 +990,WIN,121 +991,WIN,105 +992,WIN,105 +993,LOSS,76 +994,LOSS,110 +995,LOSS,102 +996,WIN,117 +997,WIN,105 +998,LOSS,102 +999,LOSS,114 +1000,LOSS,116 +1001,WIN,121 +1002,LOSS,110 +1003,WIN,107 +1004,LOSS,84 +1005,LOSS,116 +1006,LOSS,118 +1007,WIN,101 +1008,WIN,121 +1009,WIN,89 +1010,WIN,121 +1011,LOSS,118 +1012,LOSS,120 +1013,LOSS,106 +1014,LOSS,102 +1015,WIN,109 +1016,LOSS,84 +1017,LOSS,104 +1018,LOSS,118 +1019,WIN,99 +1020,WIN,109 +1021,LOSS,104 +1022,WIN,119 +1023,LOSS,112 +1024,LOSS,110 +1025,WIN,119 +1026,WIN,105 +1027,WIN,107 +1028,LOSS,106 +1029,LOSS,120 +1030,WIN,121 +1031,WIN,111 +1032,LOSS,104 +1033,LOSS,106 +1034,WIN,117 +1035,WIN,87 +1036,WIN,121 +1037,WIN,99 +1038,WIN,91 +1039,WIN,101 +1040,WIN,109 +1041,LOSS,118 +1042,LOSS,104 +1043,LOSS,112 +1044,LOSS,108 +1045,WIN,119 +1046,WIN,97 +1047,WIN,115 +1048,WIN,119 +1049,WIN,97 +1050,LOSS,110 +1051,LOSS,116 +1052,WIN,121 +1053,WIN,107 +1054,WIN,117 +1055,WIN,99 +1056,LOSS,92 +1057,LOSS,114 +1058,WIN,103 +1059,WIN,117 +1060,LOSS,94 +1061,WIN,105 +1062,WIN,117 +1063,WIN,107 +1064,WIN,117 +1065,LOSS,110 +1066,LOSS,120 +1067,LOSS,110 +1068,LOSS,120 +1069,WIN,93 +1070,WIN,111 +1071,WIN,109 +1072,WIN,111 +1073,LOSS,118 +1074,WIN,81 +1075,WIN,119 +1076,LOSS,104 +1077,LOSS,116 +1078,LOSS,74 +1079,LOSS,110 +1080,LOSS,118 +1081,WIN,105 +1082,WIN,97 +1083,WIN,113 +1084,LOSS,96 +1085,LOSS,106 +1086,LOSS,112 +1087,WIN,121 +1088,LOSS,110 +1089,LOSS,90 +1090,LOSS,90 +1091,WIN,91 +1092,LOSS,110 +1093,LOSS,106 +1094,WIN,83 +1095,WIN,107 +1096,WIN,119 +1097,WIN,117 +1098,WIN,121 +1099,WIN,117 +1100,LOSS,110 +1101,LOSS,114 +1102,WIN,113 +1103,WIN,107 +1104,WIN,103 +1105,LOSS,80 +1106,WIN,119 +1107,LOSS,106 +1108,WIN,103 +1109,WIN,97 +1110,LOSS,110 +1111,WIN,93 +1112,WIN,119 +1113,LOSS,102 +1114,LOSS,98 +1115,WIN,91 +1116,WIN,85 +1117,WIN,113 +1118,WIN,87 +1119,LOSS,120 +1120,WIN,97 +1121,LOSS,110 +1122,WIN,95 +1123,WIN,83 +1124,WIN,109 +1125,WIN,119 +1126,LOSS,106 +1127,LOSS,112 +1128,WIN,109 +1129,WIN,99 +1130,WIN,99 +1131,LOSS,120 +1132,WIN,105 +1133,LOSS,108 +1134,WIN,121 +1135,WIN,121 +1136,LOSS,110 +1137,WIN,119 +1138,WIN,89 +1139,WIN,97 +1140,LOSS,118 +1141,WIN,121 +1142,LOSS,116 +1143,WIN,119 +1144,WIN,97 +1145,WIN,91 +1146,WIN,95 +1147,LOSS,96 +1148,WIN,109 +1149,WIN,121 +1150,LOSS,104 +1151,WIN,115 +1152,LOSS,102 +1153,WIN,109 +1154,LOSS,114 +1155,LOSS,120 +1156,LOSS,102 +1157,LOSS,120 +1158,WIN,111 +1159,WIN,95 +1160,WIN,107 +1161,WIN,97 +1162,LOSS,116 +1163,LOSS,112 +1164,WIN,121 +1165,WIN,117 +1166,LOSS,114 +1167,WIN,115 +1168,WIN,111 +1169,LOSS,104 +1170,LOSS,104 +1171,LOSS,112 +1172,WIN,103 +1173,WIN,121 +1174,WIN,121 +1175,WIN,111 +1176,WIN,93 +1177,WIN,99 +1178,LOSS,106 +1179,WIN,119 +1180,LOSS,106 +1181,WIN,113 +1182,LOSS,112 +1183,WIN,119 +1184,LOSS,106 +1185,WIN,107 +1186,LOSS,110 +1187,LOSS,108 +1188,LOSS,102 +1189,WIN,113 +1190,LOSS,90 +1191,LOSS,116 +1192,WIN,89 +1193,LOSS,90 +1194,WIN,119 +1195,LOSS,116 +1196,LOSS,120 +1197,LOSS,92 +1198,WIN,115 +1199,LOSS,110 +1200,WIN,101 +1201,LOSS,112 +1202,WIN,103 +1203,LOSS,120 +1204,LOSS,112 +1205,LOSS,106 +1206,LOSS,120 +1207,WIN,107 +1208,WIN,113 +1209,LOSS,118 +1210,WIN,121 +1211,WIN,103 +1212,LOSS,94 +1213,LOSS,100 +1214,WIN,97 +1215,LOSS,114 +1216,LOSS,108 +1217,WIN,99 +1218,LOSS,112 +1219,LOSS,86 +1220,WIN,119 +1221,LOSS,114 +1222,WIN,107 +1223,LOSS,114 +1224,LOSS,106 +1225,WIN,103 +1226,LOSS,100 +1227,WIN,79 +1228,LOSS,118 +1229,LOSS,102 +1230,WIN,115 +1231,WIN,95 +1232,WIN,121 +1233,LOSS,118 +1234,LOSS,118 +1235,WIN,113 +1236,WIN,85 +1237,WIN,121 +1238,LOSS,120 +1239,WIN,121 +1240,WIN,107 +1241,WIN,119 +1242,WIN,121 +1243,LOSS,120 +1244,LOSS,110 +1245,WIN,97 +1246,WIN,113 +1247,LOSS,118 +1248,WIN,109 +1249,LOSS,118 +1250,WIN,115 +1251,WIN,111 +1252,LOSS,118 +1253,LOSS,100 +1254,LOSS,106 +1255,LOSS,102 +1256,LOSS,110 +1257,WIN,105 +1258,LOSS,118 +1259,WIN,107 +1260,LOSS,108 +1261,WIN,89 +1262,LOSS,94 +1263,LOSS,102 +1264,WIN,117 +1265,WIN,111 +1266,WIN,119 +1267,LOSS,108 +1268,LOSS,84 +1269,WIN,105 +1270,WIN,107 +1271,LOSS,96 +1272,LOSS,100 +1273,WIN,121 +1274,WIN,107 +1275,LOSS,116 +1276,LOSS,116 +1277,WIN,113 +1278,WIN,69 +1279,WIN,111 +1280,WIN,119 +1281,WIN,115 +1282,WIN,95 +1283,WIN,109 +1284,LOSS,112 +1285,WIN,85 +1286,LOSS,94 +1287,LOSS,78 +1288,WIN,101 +1289,WIN,113 +1290,LOSS,110 +1291,LOSS,104 +1292,LOSS,106 +1293,WIN,97 +1294,LOSS,106 +1295,WIN,107 +1296,LOSS,70 +1297,WIN,91 +1298,LOSS,120 +1299,WIN,107 +1300,LOSS,110 +1301,LOSS,114 +1302,WIN,115 +1303,LOSS,108 +1304,WIN,111 +1305,WIN,105 +1306,WIN,117 +1307,LOSS,114 +1308,WIN,105 +1309,WIN,103 +1310,WIN,91 +1311,LOSS,92 +1312,LOSS,112 +1313,LOSS,108 +1314,WIN,103 +1315,LOSS,108 +1316,LOSS,84 +1317,WIN,101 +1318,LOSS,116 +1319,LOSS,120 +1320,LOSS,104 +1321,WIN,89 +1322,WIN,119 +1323,WIN,111 +1324,LOSS,100 +1325,LOSS,82 +1326,LOSS,100 +1327,WIN,117 +1328,LOSS,98 +1329,LOSS,112 +1330,WIN,117 +1331,WIN,105 +1332,WIN,119 +1333,WIN,115 +1334,LOSS,100 +1335,WIN,107 +1336,WIN,121 +1337,LOSS,86 +1338,WIN,103 +1339,WIN,115 +1340,LOSS,118 +1341,WIN,121 +1342,WIN,121 +1343,WIN,101 +1344,LOSS,108 +1345,LOSS,108 +1346,LOSS,108 +1347,WIN,97 +1348,LOSS,112 +1349,WIN,121 +1350,LOSS,120 +1351,WIN,121 +1352,WIN,99 +1353,WIN,119 +1354,WIN,115 +1355,WIN,117 +1356,LOSS,106 +1357,LOSS,118 +1358,LOSS,120 +1359,WIN,113 +1360,LOSS,106 +1361,WIN,99 +1362,WIN,107 +1363,WIN,113 +1364,WIN,119 +1365,WIN,109 +1366,LOSS,114 +1367,LOSS,120 +1368,LOSS,108 +1369,WIN,107 +1370,WIN,119 +1371,LOSS,108 +1372,WIN,113 +1373,LOSS,118 +1374,WIN,97 +1375,LOSS,100 +1376,WIN,121 +1377,WIN,107 +1378,LOSS,104 +1379,LOSS,110 +1380,WIN,109 +1381,WIN,115 +1382,LOSS,90 +1383,WIN,107 +1384,LOSS,116 +1385,WIN,99 +1386,LOSS,108 +1387,WIN,99 +1388,WIN,111 +1389,LOSS,104 +1390,WIN,91 +1391,WIN,113 +1392,LOSS,120 +1393,LOSS,108 +1394,LOSS,114 +1395,WIN,95 +1396,LOSS,110 +1397,LOSS,112 +1398,LOSS,110 +1399,WIN,115 +1400,LOSS,108 +1401,WIN,103 +1402,LOSS,110 +1403,WIN,103 +1404,LOSS,116 +1405,WIN,101 +1406,WIN,109 +1407,LOSS,96 +1408,LOSS,118 +1409,WIN,101 +1410,WIN,75 +1411,LOSS,108 +1412,WIN,91 +1413,LOSS,104 +1414,WIN,105 +1415,LOSS,116 +1416,LOSS,116 +1417,LOSS,116 +1418,WIN,83 +1419,WIN,93 +1420,WIN,101 +1421,WIN,107 +1422,WIN,113 +1423,LOSS,98 +1424,LOSS,84 +1425,LOSS,110 +1426,WIN,109 +1427,LOSS,118 +1428,LOSS,100 +1429,LOSS,108 +1430,LOSS,108 +1431,LOSS,120 +1432,LOSS,116 +1433,LOSS,108 +1434,WIN,115 +1435,WIN,113 +1436,WIN,117 +1437,LOSS,118 +1438,WIN,115 +1439,LOSS,110 +1440,WIN,107 +1441,WIN,105 +1442,WIN,107 +1443,LOSS,70 +1444,WIN,111 +1445,WIN,109 +1446,WIN,111 +1447,WIN,115 +1448,LOSS,110 +1449,LOSS,84 +1450,LOSS,114 +1451,WIN,87 +1452,LOSS,104 +1453,LOSS,118 +1454,LOSS,100 +1455,WIN,105 +1456,WIN,109 +1457,WIN,117 +1458,LOSS,118 +1459,WIN,105 +1460,WIN,117 +1461,LOSS,114 +1462,LOSS,118 +1463,LOSS,110 +1464,WIN,103 +1465,WIN,115 +1466,WIN,121 +1467,WIN,121 +1468,WIN,115 +1469,WIN,101 +1470,LOSS,120 +1471,WIN,117 +1472,LOSS,112 +1473,LOSS,92 +1474,WIN,115 +1475,LOSS,92 +1476,LOSS,106 +1477,WIN,109 +1478,WIN,111 +1479,LOSS,120 +1480,WIN,97 +1481,WIN,105 +1482,WIN,109 +1483,WIN,109 +1484,WIN,89 +1485,LOSS,102 +1486,WIN,113 +1487,LOSS,90 +1488,WIN,113 +1489,WIN,101 +1490,WIN,109 +1491,LOSS,90 +1492,LOSS,108 +1493,WIN,113 +1494,WIN,97 +1495,LOSS,116 +1496,WIN,115 +1497,LOSS,116 +1498,WIN,55 +1499,LOSS,98 +1500,WIN,97 +1501,WIN,111 +1502,LOSS,98 +1503,WIN,117 +1504,LOSS,104 +1505,WIN,83 +1506,WIN,121 +1507,LOSS,110 +1508,WIN,91 +1509,LOSS,100 +1510,WIN,119 +1511,WIN,79 +1512,LOSS,102 +1513,WIN,117 +1514,WIN,119 +1515,WIN,115 +1516,LOSS,116 +1517,WIN,121 +1518,LOSS,86 +1519,LOSS,102 +1520,WIN,101 +1521,LOSS,114 +1522,WIN,99 +1523,WIN,103 +1524,LOSS,106 +1525,LOSS,88 +1526,WIN,113 +1527,LOSS,112 +1528,LOSS,118 +1529,LOSS,114 +1530,WIN,109 +1531,LOSS,80 +1532,WIN,119 +1533,WIN,105 +1534,WIN,115 +1535,LOSS,76 +1536,WIN,119 +1537,WIN,117 +1538,WIN,119 +1539,LOSS,104 +1540,LOSS,112 +1541,LOSS,106 +1542,WIN,115 +1543,LOSS,100 +1544,WIN,119 +1545,LOSS,108 +1546,WIN,111 +1547,LOSS,110 +1548,LOSS,102 +1549,WIN,101 +1550,WIN,121 +1551,LOSS,102 +1552,WIN,115 +1553,WIN,67 +1554,WIN,97 +1555,LOSS,110 +1556,WIN,119 +1557,LOSS,110 +1558,LOSS,116 +1559,LOSS,114 +1560,LOSS,100 +1561,WIN,99 +1562,LOSS,114 +1563,LOSS,100 +1564,WIN,101 +1565,LOSS,110 +1566,LOSS,114 +1567,LOSS,114 +1568,WIN,113 +1569,WIN,121 +1570,LOSS,106 +1571,WIN,119 +1572,WIN,93 +1573,LOSS,110 +1574,WIN,115 +1575,WIN,101 +1576,LOSS,114 +1577,WIN,109 +1578,WIN,113 +1579,WIN,115 +1580,WIN,113 +1581,WIN,111 +1582,LOSS,112 +1583,WIN,117 +1584,WIN,99 +1585,LOSS,114 +1586,LOSS,106 +1587,LOSS,100 +1588,WIN,101 +1589,WIN,111 +1590,WIN,97 +1591,WIN,111 +1592,WIN,93 +1593,WIN,103 +1594,LOSS,108 +1595,WIN,93 +1596,LOSS,110 +1597,LOSS,98 +1598,WIN,113 +1599,WIN,107 +1600,WIN,121 +1601,WIN,105 +1602,LOSS,114 +1603,WIN,111 +1604,WIN,105 +1605,WIN,87 +1606,WIN,93 +1607,WIN,117 +1608,LOSS,92 +1609,LOSS,112 +1610,WIN,99 +1611,WIN,117 +1612,LOSS,114 +1613,WIN,105 +1614,LOSS,106 +1615,WIN,117 +1616,LOSS,110 +1617,LOSS,110 +1618,LOSS,120 +1619,WIN,113 +1620,WIN,107 +1621,LOSS,108 +1622,WIN,113 +1623,LOSS,104 +1624,LOSS,102 +1625,WIN,113 +1626,LOSS,98 +1627,LOSS,106 +1628,WIN,97 +1629,WIN,103 +1630,LOSS,110 +1631,WIN,107 +1632,WIN,81 +1633,WIN,81 +1634,LOSS,120 +1635,WIN,115 +1636,LOSS,106 +1637,WIN,121 +1638,WIN,105 +1639,WIN,85 +1640,WIN,107 +1641,WIN,119 +1642,WIN,107 +1643,WIN,119 +1644,LOSS,102 +1645,WIN,111 +1646,WIN,103 +1647,LOSS,114 +1648,WIN,121 +1649,LOSS,98 +1650,LOSS,104 +1651,LOSS,112 +1652,WIN,99 +1653,WIN,103 +1654,LOSS,104 +1655,WIN,117 +1656,LOSS,92 +1657,WIN,107 +1658,WIN,93 +1659,WIN,111 +1660,LOSS,104 +1661,LOSS,120 +1662,LOSS,108 +1663,LOSS,100 +1664,WIN,113 +1665,WIN,117 +1666,WIN,105 +1667,WIN,111 +1668,LOSS,94 +1669,LOSS,108 +1670,WIN,121 +1671,LOSS,110 +1672,LOSS,118 +1673,WIN,111 +1674,LOSS,92 +1675,WIN,117 +1676,WIN,115 +1677,LOSS,114 +1678,LOSS,86 +1679,LOSS,110 +1680,LOSS,120 +1681,LOSS,96 +1682,LOSS,114 +1683,LOSS,90 +1684,LOSS,74 +1685,WIN,115 +1686,LOSS,84 +1687,WIN,95 +1688,LOSS,88 +1689,WIN,65 +1690,LOSS,116 +1691,LOSS,90 +1692,WIN,107 +1693,LOSS,90 +1694,WIN,113 +1695,WIN,119 +1696,WIN,117 +1697,WIN,105 +1698,LOSS,120 +1699,LOSS,120 +1700,LOSS,120 +1701,WIN,115 +1702,LOSS,112 +1703,LOSS,120 +1704,WIN,121 +1705,WIN,115 +1706,WIN,107 +1707,LOSS,118 +1708,LOSS,108 +1709,LOSS,106 +1710,WIN,113 +1711,WIN,117 +1712,LOSS,120 +1713,LOSS,120 +1714,WIN,87 +1715,WIN,99 +1716,LOSS,116 +1717,WIN,111 +1718,LOSS,110 +1719,LOSS,106 +1720,WIN,87 +1721,WIN,107 +1722,LOSS,118 +1723,WIN,115 +1724,LOSS,116 +1725,LOSS,114 +1726,WIN,111 +1727,LOSS,94 +1728,WIN,81 +1729,LOSS,114 +1730,WIN,95 +1731,LOSS,92 +1732,WIN,121 +1733,LOSS,118 +1734,WIN,105 +1735,WIN,117 +1736,LOSS,106 +1737,WIN,119 +1738,WIN,117 +1739,WIN,113 +1740,LOSS,86 +1741,WIN,111 +1742,WIN,103 +1743,WIN,107 +1744,WIN,115 +1745,WIN,111 +1746,WIN,109 +1747,WIN,121 +1748,LOSS,100 +1749,WIN,107 +1750,LOSS,102 +1751,LOSS,96 +1752,WIN,111 +1753,LOSS,98 +1754,LOSS,88 +1755,WIN,87 +1756,WIN,93 +1757,LOSS,104 +1758,LOSS,80 +1759,LOSS,106 +1760,LOSS,112 +1761,WIN,121 +1762,LOSS,118 +1763,LOSS,110 +1764,WIN,91 +1765,WIN,67 +1766,WIN,113 +1767,WIN,103 +1768,LOSS,118 +1769,LOSS,78 +1770,WIN,107 +1771,WIN,103 +1772,LOSS,114 +1773,LOSS,106 +1774,WIN,117 +1775,WIN,95 +1776,WIN,117 +1777,WIN,121 +1778,LOSS,98 +1779,LOSS,104 +1780,WIN,105 +1781,LOSS,80 +1782,LOSS,80 +1783,WIN,85 +1784,LOSS,116 +1785,LOSS,118 +1786,WIN,121 +1787,LOSS,104 +1788,LOSS,120 +1789,WIN,107 +1790,WIN,105 +1791,WIN,97 +1792,WIN,113 +1793,LOSS,106 +1794,WIN,71 +1795,LOSS,116 +1796,LOSS,118 +1797,WIN,103 +1798,LOSS,114 +1799,WIN,91 +1800,WIN,119 +1801,LOSS,112 +1802,LOSS,112 +1803,LOSS,106 +1804,WIN,115 +1805,WIN,121 +1806,LOSS,104 +1807,WIN,105 +1808,LOSS,92 +1809,WIN,103 +1810,WIN,119 +1811,WIN,85 +1812,WIN,101 +1813,LOSS,86 +1814,LOSS,118 +1815,WIN,83 +1816,LOSS,118 +1817,LOSS,90 +1818,WIN,115 +1819,WIN,83 +1820,LOSS,118 +1821,LOSS,112 +1822,LOSS,112 +1823,WIN,121 +1824,WIN,119 +1825,WIN,97 +1826,WIN,115 +1827,WIN,117 +1828,LOSS,110 +1829,LOSS,92 +1830,WIN,103 +1831,WIN,101 +1832,LOSS,114 +1833,LOSS,118 +1834,LOSS,112 +1835,WIN,117 +1836,WIN,107 +1837,WIN,119 +1838,LOSS,112 +1839,WIN,97 +1840,WIN,111 +1841,LOSS,104 +1842,WIN,115 +1843,WIN,105 +1844,LOSS,114 +1845,WIN,89 +1846,WIN,119 +1847,LOSS,118 +1848,WIN,79 +1849,WIN,107 +1850,WIN,111 +1851,LOSS,80 +1852,WIN,119 +1853,LOSS,110 +1854,WIN,111 +1855,LOSS,96 +1856,LOSS,120 +1857,WIN,115 +1858,LOSS,102 +1859,WIN,103 +1860,LOSS,120 +1861,LOSS,88 +1862,WIN,99 +1863,WIN,103 +1864,WIN,101 +1865,LOSS,116 +1866,WIN,97 +1867,WIN,111 +1868,LOSS,106 +1869,WIN,103 +1870,WIN,103 +1871,LOSS,96 +1872,WIN,119 +1873,WIN,95 +1874,LOSS,110 +1875,WIN,101 +1876,LOSS,118 +1877,WIN,97 +1878,LOSS,104 +1879,WIN,97 +1880,WIN,121 +1881,WIN,115 +1882,WIN,117 +1883,WIN,111 +1884,WIN,89 +1885,LOSS,110 +1886,LOSS,114 +1887,LOSS,112 +1888,WIN,119 +1889,WIN,113 +1890,WIN,115 +1891,LOSS,110 +1892,WIN,107 +1893,WIN,117 +1894,LOSS,120 +1895,LOSS,116 +1896,LOSS,114 +1897,LOSS,88 +1898,WIN,107 +1899,WIN,97 +1900,WIN,101 +1901,LOSS,94 +1902,WIN,109 +1903,LOSS,100 +1904,LOSS,116 +1905,LOSS,104 +1906,WIN,101 +1907,WIN,119 +1908,WIN,119 +1909,LOSS,116 +1910,LOSS,114 +1911,WIN,115 +1912,WIN,107 +1913,WIN,119 +1914,WIN,115 +1915,WIN,85 +1916,LOSS,112 +1917,WIN,107 +1918,LOSS,120 +1919,WIN,119 +1920,LOSS,102 +1921,WIN,121 +1922,WIN,109 +1923,WIN,97 +1924,WIN,103 +1925,WIN,101 +1926,LOSS,112 +1927,LOSS,120 +1928,WIN,111 +1929,WIN,119 +1930,LOSS,104 +1931,LOSS,112 +1932,LOSS,118 +1933,WIN,121 +1934,LOSS,118 +1935,WIN,119 +1936,LOSS,120 +1937,WIN,117 +1938,LOSS,84 +1939,WIN,109 +1940,LOSS,114 +1941,LOSS,114 +1942,WIN,109 +1943,WIN,111 +1944,WIN,107 +1945,WIN,103 +1946,WIN,101 +1947,WIN,115 +1948,LOSS,110 +1949,WIN,103 +1950,WIN,113 +1951,LOSS,108 +1952,WIN,91 +1953,LOSS,98 +1954,LOSS,118 +1955,LOSS,64 +1956,LOSS,120 +1957,LOSS,94 +1958,LOSS,116 +1959,WIN,119 +1960,WIN,111 +1961,WIN,111 +1962,LOSS,110 +1963,WIN,89 +1964,WIN,95 +1965,WIN,115 +1966,WIN,117 +1967,WIN,107 +1968,LOSS,120 +1969,LOSS,88 +1970,LOSS,104 +1971,WIN,121 +1972,LOSS,102 +1973,LOSS,106 +1974,LOSS,108 +1975,WIN,105 +1976,LOSS,104 +1977,LOSS,112 +1978,LOSS,96 +1979,WIN,113 +1980,LOSS,94 +1981,WIN,103 +1982,LOSS,118 +1983,WIN,113 +1984,WIN,119 +1985,LOSS,108 +1986,LOSS,114 +1987,WIN,95 +1988,WIN,87 +1989,WIN,99 +1990,WIN,105 +1991,WIN,105 +1992,LOSS,116 +1993,WIN,111 +1994,LOSS,102 +1995,LOSS,112 +1996,WIN,107 +1997,WIN,115 +1998,WIN,121 +1999,WIN,121 +2000,LOSS,92 +2001,WIN,91 +2002,LOSS,110 +2003,LOSS,114 +2004,WIN,121 +2005,LOSS,88 +2006,LOSS,116 +2007,LOSS,118 +2008,WIN,119 +2009,WIN,87 +2010,WIN,111 +2011,WIN,107 +2012,WIN,99 +2013,WIN,119 +2014,WIN,97 +2015,WIN,111 +2016,WIN,115 +2017,WIN,103 +2018,WIN,101 +2019,LOSS,116 +2020,WIN,81 +2021,LOSS,104 +2022,LOSS,114 +2023,LOSS,114 +2024,LOSS,104 +2025,LOSS,108 +2026,WIN,117 +2027,LOSS,106 +2028,LOSS,94 +2029,WIN,119 +2030,LOSS,118 +2031,LOSS,98 +2032,LOSS,100 +2033,LOSS,112 +2034,WIN,105 +2035,WIN,117 +2036,LOSS,94 +2037,LOSS,76 +2038,LOSS,86 +2039,LOSS,110 +2040,WIN,119 +2041,WIN,109 +2042,LOSS,90 +2043,LOSS,112 +2044,WIN,113 +2045,WIN,107 +2046,WIN,103 +2047,WIN,113 +2048,WIN,117 +2049,WIN,113 +2050,LOSS,120 +2051,WIN,111 +2052,WIN,111 +2053,WIN,117 +2054,WIN,121 +2055,LOSS,112 +2056,WIN,119 +2057,WIN,121 +2058,LOSS,106 +2059,WIN,119 +2060,LOSS,114 +2061,WIN,111 +2062,LOSS,90 +2063,LOSS,108 +2064,LOSS,102 +2065,WIN,115 +2066,LOSS,116 +2067,LOSS,108 +2068,LOSS,116 +2069,LOSS,116 +2070,LOSS,118 +2071,LOSS,94 +2072,WIN,121 +2073,LOSS,112 +2074,WIN,109 +2075,LOSS,116 +2076,LOSS,118 +2077,WIN,119 +2078,LOSS,98 +2079,WIN,117 +2080,LOSS,86 +2081,WIN,101 +2082,LOSS,82 +2083,WIN,113 +2084,LOSS,118 +2085,LOSS,114 +2086,WIN,111 +2087,WIN,121 +2088,WIN,113 +2089,WIN,107 +2090,LOSS,120 +2091,LOSS,104 +2092,LOSS,90 +2093,WIN,109 +2094,WIN,103 +2095,WIN,115 +2096,LOSS,84 +2097,WIN,113 +2098,WIN,119 +2099,WIN,99 +2100,LOSS,98 +2101,LOSS,82 +2102,LOSS,110 +2103,WIN,109 +2104,LOSS,68 +2105,WIN,99 +2106,LOSS,108 +2107,LOSS,116 +2108,WIN,107 +2109,WIN,109 +2110,WIN,79 +2111,LOSS,116 +2112,WIN,113 +2113,LOSS,120 +2114,WIN,89 +2115,LOSS,118 +2116,LOSS,114 +2117,WIN,107 +2118,WIN,93 +2119,LOSS,80 +2120,LOSS,110 +2121,LOSS,120 +2122,LOSS,120 +2123,LOSS,120 +2124,WIN,115 +2125,LOSS,90 +2126,LOSS,106 +2127,WIN,115 +2128,LOSS,92 +2129,LOSS,98 +2130,WIN,121 +2131,LOSS,120 +2132,LOSS,114 +2133,LOSS,104 +2134,WIN,101 +2135,WIN,115 +2136,WIN,109 +2137,LOSS,118 +2138,LOSS,120 +2139,WIN,115 +2140,LOSS,98 +2141,WIN,103 +2142,LOSS,96 +2143,WIN,119 +2144,LOSS,102 +2145,LOSS,118 +2146,WIN,113 +2147,WIN,97 +2148,WIN,105 +2149,WIN,93 +2150,LOSS,108 +2151,LOSS,110 +2152,LOSS,78 +2153,WIN,91 +2154,LOSS,114 +2155,LOSS,100 +2156,WIN,117 +2157,WIN,73 +2158,WIN,117 +2159,WIN,95 +2160,WIN,119 +2161,WIN,109 +2162,LOSS,114 +2163,LOSS,110 +2164,LOSS,112 +2165,WIN,111 +2166,LOSS,108 +2167,WIN,113 +2168,WIN,113 +2169,LOSS,80 +2170,WIN,69 +2171,WIN,101 +2172,WIN,113 +2173,WIN,121 +2174,WIN,117 +2175,LOSS,118 +2176,WIN,105 +2177,WIN,121 +2178,WIN,67 +2179,WIN,109 +2180,LOSS,116 +2181,WIN,121 +2182,WIN,93 +2183,WIN,117 +2184,LOSS,118 +2185,WIN,93 +2186,WIN,95 +2187,WIN,99 +2188,WIN,117 +2189,LOSS,108 +2190,LOSS,84 +2191,LOSS,120 +2192,WIN,119 +2193,WIN,119 +2194,LOSS,118 +2195,WIN,119 +2196,LOSS,98 +2197,LOSS,120 +2198,WIN,99 +2199,LOSS,100 +2200,LOSS,88 +2201,WIN,117 +2202,LOSS,106 +2203,LOSS,108 +2204,WIN,103 +2205,WIN,107 +2206,WIN,117 +2207,WIN,119 +2208,WIN,119 +2209,WIN,111 +2210,LOSS,104 +2211,LOSS,116 +2212,WIN,101 +2213,WIN,117 +2214,WIN,99 +2215,LOSS,110 +2216,WIN,77 +2217,WIN,109 +2218,LOSS,92 +2219,WIN,97 +2220,LOSS,104 +2221,LOSS,106 +2222,WIN,109 +2223,WIN,121 +2224,LOSS,112 +2225,WIN,105 +2226,LOSS,112 +2227,LOSS,118 +2228,LOSS,116 +2229,LOSS,114 +2230,LOSS,118 +2231,WIN,115 +2232,WIN,97 +2233,WIN,117 +2234,LOSS,110 +2235,LOSS,116 +2236,WIN,117 +2237,WIN,113 +2238,WIN,97 +2239,WIN,111 +2240,WIN,91 +2241,WIN,99 +2242,WIN,105 +2243,WIN,117 +2244,WIN,111 +2245,WIN,121 +2246,LOSS,108 +2247,LOSS,116 +2248,LOSS,104 +2249,LOSS,108 +2250,LOSS,108 +2251,WIN,111 +2252,WIN,89 +2253,LOSS,98 +2254,WIN,115 +2255,WIN,115 +2256,WIN,103 +2257,WIN,107 +2258,LOSS,106 +2259,LOSS,112 +2260,LOSS,108 +2261,LOSS,116 +2262,WIN,121 +2263,LOSS,112 +2264,LOSS,120 +2265,WIN,113 +2266,LOSS,118 +2267,WIN,111 +2268,WIN,107 +2269,WIN,115 +2270,WIN,117 +2271,WIN,97 +2272,WIN,101 +2273,WIN,117 +2274,WIN,115 +2275,WIN,93 +2276,WIN,119 +2277,WIN,107 +2278,WIN,113 +2279,LOSS,104 +2280,LOSS,118 +2281,WIN,119 +2282,WIN,107 +2283,LOSS,98 +2284,WIN,107 +2285,WIN,109 +2286,LOSS,106 +2287,LOSS,112 +2288,WIN,103 +2289,WIN,117 +2290,WIN,107 +2291,LOSS,108 +2292,WIN,121 +2293,WIN,121 +2294,WIN,109 +2295,WIN,111 +2296,WIN,113 +2297,LOSS,116 +2298,WIN,91 +2299,LOSS,104 +2300,WIN,117 +2301,WIN,121 +2302,LOSS,96 +2303,LOSS,116 +2304,WIN,97 +2305,WIN,113 +2306,LOSS,114 +2307,LOSS,112 +2308,WIN,85 +2309,WIN,121 +2310,WIN,103 +2311,LOSS,116 +2312,LOSS,120 +2313,WIN,113 +2314,LOSS,114 +2315,WIN,115 +2316,LOSS,116 +2317,LOSS,116 +2318,LOSS,120 +2319,LOSS,102 +2320,WIN,91 +2321,LOSS,118 +2322,WIN,91 +2323,WIN,113 +2324,WIN,89 +2325,LOSS,120 +2326,WIN,115 +2327,WIN,115 +2328,LOSS,116 +2329,LOSS,118 +2330,LOSS,104 +2331,LOSS,118 +2332,WIN,115 +2333,WIN,109 +2334,LOSS,96 +2335,WIN,99 +2336,LOSS,112 +2337,LOSS,120 +2338,LOSS,90 +2339,LOSS,108 +2340,WIN,85 +2341,WIN,109 +2342,LOSS,120 +2343,LOSS,98 +2344,LOSS,108 +2345,WIN,101 +2346,LOSS,116 +2347,WIN,109 +2348,WIN,115 +2349,LOSS,120 +2350,LOSS,92 +2351,WIN,115 +2352,WIN,109 +2353,LOSS,112 +2354,LOSS,102 +2355,WIN,89 +2356,LOSS,104 +2357,LOSS,116 +2358,WIN,103 +2359,LOSS,116 +2360,WIN,105 +2361,LOSS,104 +2362,WIN,107 +2363,WIN,121 +2364,LOSS,118 +2365,LOSS,98 +2366,WIN,107 +2367,WIN,111 +2368,WIN,105 +2369,LOSS,94 +2370,LOSS,112 +2371,WIN,117 +2372,WIN,101 +2373,LOSS,110 +2374,LOSS,88 +2375,WIN,105 +2376,LOSS,110 +2377,LOSS,118 +2378,WIN,81 +2379,WIN,103 +2380,WIN,107 +2381,LOSS,102 +2382,LOSS,102 +2383,WIN,111 +2384,WIN,119 +2385,WIN,121 +2386,WIN,117 +2387,LOSS,120 +2388,WIN,113 +2389,LOSS,110 +2390,LOSS,88 +2391,WIN,115 +2392,LOSS,114 +2393,WIN,99 +2394,LOSS,114 +2395,LOSS,104 +2396,WIN,59 +2397,LOSS,118 +2398,LOSS,100 +2399,LOSS,120 +2400,WIN,103 +2401,LOSS,118 +2402,WIN,97 +2403,LOSS,114 +2404,LOSS,106 +2405,WIN,105 +2406,LOSS,98 +2407,LOSS,114 +2408,LOSS,98 +2409,LOSS,108 +2410,WIN,103 +2411,LOSS,94 +2412,LOSS,116 +2413,LOSS,110 +2414,LOSS,98 +2415,LOSS,98 +2416,LOSS,108 +2417,WIN,115 +2418,LOSS,116 +2419,WIN,115 +2420,LOSS,106 +2421,LOSS,118 +2422,LOSS,112 +2423,LOSS,118 +2424,WIN,113 +2425,LOSS,114 +2426,WIN,117 +2427,LOSS,88 +2428,WIN,109 +2429,WIN,117 +2430,WIN,105 +2431,LOSS,116 +2432,LOSS,102 +2433,WIN,111 +2434,WIN,89 +2435,WIN,107 +2436,LOSS,98 +2437,LOSS,118 +2438,WIN,109 +2439,LOSS,104 +2440,LOSS,114 +2441,LOSS,62 +2442,LOSS,116 +2443,WIN,115 +2444,WIN,99 +2445,WIN,117 +2446,WIN,93 +2447,WIN,117 +2448,LOSS,96 +2449,WIN,119 +2450,WIN,119 +2451,WIN,105 +2452,LOSS,86 +2453,LOSS,112 +2454,WIN,115 +2455,LOSS,112 +2456,WIN,87 +2457,WIN,107 +2458,LOSS,100 +2459,WIN,111 +2460,WIN,117 +2461,WIN,117 +2462,WIN,117 +2463,LOSS,94 +2464,LOSS,106 +2465,WIN,103 +2466,WIN,107 +2467,LOSS,110 +2468,LOSS,96 +2469,LOSS,114 +2470,WIN,111 +2471,LOSS,110 +2472,LOSS,98 +2473,WIN,121 +2474,LOSS,106 +2475,WIN,117 +2476,LOSS,120 +2477,LOSS,104 +2478,WIN,119 +2479,WIN,83 +2480,LOSS,102 +2481,WIN,115 +2482,WIN,117 +2483,WIN,93 +2484,LOSS,112 +2485,WIN,121 +2486,WIN,115 +2487,WIN,121 +2488,WIN,115 +2489,LOSS,106 +2490,WIN,97 +2491,WIN,119 +2492,LOSS,102 +2493,LOSS,110 +2494,LOSS,114 +2495,WIN,117 +2496,LOSS,104 +2497,WIN,121 +2498,WIN,91 +2499,LOSS,82 +2500,WIN,111 +2501,WIN,111 +2502,WIN,109 +2503,LOSS,108 +2504,WIN,109 +2505,WIN,121 +2506,LOSS,102 +2507,LOSS,114 +2508,WIN,109 +2509,LOSS,112 +2510,WIN,107 +2511,LOSS,100 +2512,LOSS,110 +2513,LOSS,76 +2514,LOSS,114 +2515,WIN,87 +2516,LOSS,114 +2517,WIN,111 +2518,WIN,121 +2519,WIN,93 +2520,LOSS,118 +2521,WIN,105 +2522,LOSS,98 +2523,LOSS,102 +2524,WIN,91 +2525,LOSS,112 +2526,LOSS,120 +2527,WIN,117 +2528,WIN,111 +2529,WIN,103 +2530,WIN,91 +2531,LOSS,120 +2532,LOSS,98 +2533,LOSS,114 +2534,WIN,113 +2535,LOSS,120 +2536,WIN,121 +2537,LOSS,106 +2538,LOSS,100 +2539,WIN,111 +2540,WIN,119 +2541,WIN,105 +2542,LOSS,98 +2543,WIN,99 +2544,LOSS,98 +2545,LOSS,106 +2546,WIN,97 +2547,WIN,119 +2548,WIN,89 +2549,WIN,115 +2550,WIN,101 +2551,WIN,113 +2552,WIN,117 +2553,LOSS,120 +2554,LOSS,108 +2555,LOSS,112 +2556,LOSS,118 +2557,LOSS,116 +2558,WIN,119 +2559,WIN,107 +2560,LOSS,116 +2561,WIN,101 +2562,WIN,93 +2563,LOSS,120 +2564,LOSS,114 +2565,LOSS,114 +2566,LOSS,114 +2567,WIN,111 +2568,LOSS,118 +2569,LOSS,92 +2570,LOSS,120 +2571,LOSS,118 +2572,LOSS,102 +2573,LOSS,96 +2574,WIN,117 +2575,LOSS,112 +2576,LOSS,102 +2577,WIN,117 +2578,LOSS,114 +2579,WIN,121 +2580,WIN,91 +2581,LOSS,114 +2582,WIN,119 +2583,LOSS,116 +2584,WIN,107 +2585,LOSS,110 +2586,WIN,107 +2587,LOSS,118 +2588,WIN,101 +2589,WIN,99 +2590,WIN,121 +2591,LOSS,110 +2592,WIN,111 +2593,WIN,113 +2594,WIN,113 +2595,LOSS,116 +2596,WIN,113 +2597,LOSS,102 +2598,WIN,121 +2599,WIN,111 +2600,LOSS,112 +2601,WIN,89 +2602,WIN,101 +2603,LOSS,102 +2604,LOSS,118 +2605,LOSS,120 +2606,WIN,105 +2607,LOSS,110 +2608,WIN,115 +2609,WIN,113 +2610,WIN,101 +2611,LOSS,110 +2612,LOSS,108 +2613,WIN,121 +2614,WIN,115 +2615,WIN,107 +2616,WIN,95 +2617,LOSS,106 +2618,WIN,101 +2619,LOSS,86 +2620,WIN,95 +2621,WIN,115 +2622,WIN,87 +2623,LOSS,120 +2624,WIN,113 +2625,WIN,97 +2626,LOSS,102 +2627,WIN,107 +2628,WIN,117 +2629,WIN,115 +2630,WIN,117 +2631,WIN,121 +2632,LOSS,120 +2633,LOSS,114 +2634,WIN,115 +2635,WIN,117 +2636,WIN,115 +2637,WIN,121 +2638,LOSS,118 +2639,LOSS,102 +2640,LOSS,112 +2641,LOSS,106 +2642,WIN,109 +2643,LOSS,114 +2644,LOSS,106 +2645,WIN,117 +2646,WIN,119 +2647,LOSS,108 +2648,LOSS,92 +2649,WIN,103 +2650,WIN,105 +2651,WIN,115 +2652,LOSS,106 +2653,LOSS,120 +2654,LOSS,118 +2655,LOSS,66 +2656,LOSS,92 +2657,LOSS,102 +2658,LOSS,118 +2659,LOSS,108 +2660,WIN,117 +2661,WIN,119 +2662,WIN,89 +2663,WIN,93 +2664,WIN,107 +2665,LOSS,100 +2666,WIN,121 +2667,LOSS,114 +2668,WIN,107 +2669,WIN,115 +2670,LOSS,116 +2671,LOSS,118 +2672,WIN,91 +2673,LOSS,104 +2674,LOSS,118 +2675,WIN,101 +2676,LOSS,106 +2677,LOSS,112 +2678,LOSS,104 +2679,LOSS,104 +2680,WIN,119 +2681,WIN,97 +2682,WIN,105 +2683,LOSS,112 +2684,WIN,95 +2685,WIN,107 +2686,LOSS,108 +2687,LOSS,110 +2688,LOSS,114 +2689,LOSS,108 +2690,WIN,93 +2691,LOSS,86 +2692,LOSS,112 +2693,WIN,87 +2694,WIN,115 +2695,LOSS,120 +2696,WIN,107 +2697,WIN,111 +2698,LOSS,96 +2699,LOSS,96 +2700,LOSS,108 +2701,WIN,111 +2702,WIN,111 +2703,WIN,91 +2704,LOSS,112 +2705,WIN,103 +2706,WIN,87 +2707,WIN,99 +2708,LOSS,112 +2709,LOSS,98 +2710,LOSS,112 +2711,LOSS,106 +2712,LOSS,110 +2713,LOSS,112 +2714,LOSS,118 +2715,WIN,109 +2716,LOSS,114 +2717,WIN,105 +2718,LOSS,104 +2719,LOSS,106 +2720,LOSS,120 +2721,LOSS,108 +2722,LOSS,108 +2723,WIN,107 +2724,WIN,113 +2725,LOSS,108 +2726,WIN,111 +2727,WIN,99 +2728,WIN,75 +2729,LOSS,106 +2730,WIN,119 +2731,LOSS,106 +2732,LOSS,112 +2733,WIN,109 +2734,WIN,119 +2735,WIN,115 +2736,LOSS,116 +2737,LOSS,106 +2738,WIN,91 +2739,LOSS,120 +2740,LOSS,120 +2741,LOSS,120 +2742,LOSS,114 +2743,LOSS,116 +2744,LOSS,102 +2745,LOSS,108 +2746,LOSS,116 +2747,WIN,119 +2748,WIN,115 +2749,WIN,121 +2750,WIN,115 +2751,WIN,115 +2752,WIN,103 +2753,LOSS,114 +2754,LOSS,116 +2755,LOSS,90 +2756,WIN,109 +2757,WIN,95 +2758,LOSS,106 +2759,WIN,107 +2760,WIN,121 +2761,LOSS,106 +2762,LOSS,112 +2763,WIN,117 +2764,LOSS,110 +2765,LOSS,116 +2766,LOSS,94 +2767,LOSS,102 +2768,WIN,109 +2769,WIN,83 +2770,LOSS,120 +2771,LOSS,116 +2772,LOSS,100 +2773,WIN,121 +2774,WIN,119 +2775,WIN,103 +2776,LOSS,120 +2777,WIN,113 +2778,WIN,113 +2779,WIN,109 +2780,LOSS,112 +2781,WIN,103 +2782,WIN,121 +2783,LOSS,112 +2784,WIN,97 +2785,LOSS,104 +2786,WIN,101 +2787,LOSS,118 +2788,LOSS,108 +2789,LOSS,112 +2790,LOSS,116 +2791,LOSS,116 +2792,LOSS,106 +2793,LOSS,102 +2794,WIN,97 +2795,WIN,101 +2796,WIN,99 +2797,WIN,115 +2798,WIN,109 +2799,WIN,107 +2800,LOSS,100 +2801,WIN,109 +2802,LOSS,120 +2803,WIN,115 +2804,WIN,111 +2805,LOSS,108 +2806,WIN,95 +2807,LOSS,108 +2808,LOSS,108 +2809,LOSS,98 +2810,LOSS,112 +2811,LOSS,118 +2812,WIN,111 +2813,WIN,99 +2814,LOSS,114 +2815,LOSS,90 +2816,LOSS,100 +2817,WIN,115 +2818,LOSS,100 +2819,LOSS,114 +2820,WIN,115 +2821,WIN,117 +2822,WIN,119 +2823,LOSS,118 +2824,LOSS,102 +2825,LOSS,116 +2826,WIN,107 +2827,WIN,109 +2828,LOSS,112 +2829,WIN,109 +2830,WIN,121 +2831,WIN,85 +2832,LOSS,96 +2833,WIN,115 +2834,LOSS,120 +2835,WIN,105 +2836,LOSS,118 +2837,LOSS,118 +2838,WIN,111 +2839,LOSS,114 +2840,LOSS,114 +2841,LOSS,108 +2842,LOSS,118 +2843,WIN,113 +2844,WIN,99 +2845,WIN,101 +2846,WIN,91 +2847,LOSS,104 +2848,LOSS,104 +2849,WIN,111 +2850,WIN,111 +2851,LOSS,112 +2852,LOSS,94 +2853,WIN,111 +2854,WIN,97 +2855,LOSS,114 +2856,LOSS,104 +2857,LOSS,88 +2858,LOSS,108 +2859,WIN,121 +2860,WIN,99 +2861,WIN,121 +2862,LOSS,108 +2863,WIN,109 +2864,LOSS,118 +2865,LOSS,120 +2866,WIN,119 +2867,LOSS,106 +2868,WIN,121 +2869,WIN,121 +2870,LOSS,106 +2871,WIN,105 +2872,WIN,117 +2873,LOSS,108 +2874,WIN,117 +2875,WIN,105 +2876,LOSS,96 +2877,WIN,95 +2878,LOSS,110 +2879,LOSS,78 +2880,LOSS,102 +2881,WIN,111 +2882,WIN,87 +2883,WIN,111 +2884,LOSS,116 +2885,LOSS,110 +2886,LOSS,108 +2887,WIN,109 +2888,LOSS,100 +2889,WIN,99 +2890,LOSS,118 +2891,WIN,103 +2892,WIN,101 +2893,LOSS,116 +2894,WIN,97 +2895,LOSS,106 +2896,LOSS,116 +2897,LOSS,112 +2898,WIN,111 +2899,LOSS,110 +2900,LOSS,112 +2901,WIN,103 +2902,LOSS,106 +2903,LOSS,100 +2904,LOSS,112 +2905,WIN,117 +2906,LOSS,98 +2907,WIN,121 +2908,WIN,107 +2909,WIN,101 +2910,LOSS,116 +2911,LOSS,118 +2912,LOSS,120 +2913,WIN,83 +2914,LOSS,104 +2915,LOSS,80 +2916,WIN,95 +2917,LOSS,120 +2918,LOSS,114 +2919,WIN,91 +2920,LOSS,114 +2921,LOSS,118 +2922,WIN,111 +2923,LOSS,120 +2924,WIN,119 +2925,WIN,121 +2926,WIN,107 +2927,LOSS,116 +2928,WIN,115 +2929,LOSS,118 +2930,WIN,113 +2931,WIN,103 +2932,WIN,97 +2933,LOSS,120 +2934,WIN,107 +2935,LOSS,98 +2936,LOSS,98 +2937,WIN,101 +2938,WIN,101 +2939,WIN,89 +2940,WIN,111 +2941,LOSS,92 +2942,WIN,107 +2943,WIN,119 +2944,LOSS,110 +2945,LOSS,86 +2946,WIN,111 +2947,WIN,111 +2948,LOSS,106 +2949,WIN,97 +2950,LOSS,118 +2951,LOSS,94 +2952,WIN,111 +2953,LOSS,102 +2954,LOSS,112 +2955,LOSS,108 +2956,LOSS,112 +2957,WIN,103 +2958,WIN,121 +2959,LOSS,102 +2960,WIN,85 +2961,LOSS,92 +2962,LOSS,108 +2963,LOSS,116 +2964,LOSS,88 +2965,LOSS,96 +2966,LOSS,98 +2967,WIN,121 +2968,LOSS,80 +2969,LOSS,108 +2970,WIN,109 +2971,WIN,111 +2972,LOSS,104 +2973,WIN,99 +2974,LOSS,102 +2975,LOSS,104 +2976,WIN,103 +2977,WIN,113 +2978,LOSS,114 +2979,LOSS,116 +2980,WIN,111 +2981,WIN,115 +2982,LOSS,82 +2983,WIN,111 +2984,WIN,99 +2985,LOSS,110 +2986,WIN,93 +2987,LOSS,84 +2988,WIN,115 +2989,WIN,105 +2990,WIN,121 +2991,WIN,119 +2992,LOSS,116 +2993,WIN,107 +2994,WIN,105 +2995,LOSS,86 +2996,WIN,91 +2997,WIN,109 +2998,LOSS,112 +2999,LOSS,116 +3000,WIN,87 +3001,LOSS,104 +3002,LOSS,108 +3003,WIN,119 +3004,WIN,103 +3005,LOSS,112 +3006,WIN,119 +3007,WIN,105 +3008,LOSS,114 +3009,WIN,119 +3010,WIN,111 +3011,WIN,103 +3012,WIN,91 +3013,WIN,109 +3014,WIN,111 +3015,LOSS,102 +3016,WIN,115 +3017,WIN,79 +3018,LOSS,114 +3019,LOSS,100 +3020,WIN,89 +3021,WIN,119 +3022,LOSS,104 +3023,LOSS,110 +3024,WIN,75 +3025,WIN,107 +3026,WIN,109 +3027,LOSS,110 +3028,LOSS,116 +3029,WIN,89 +3030,WIN,105 +3031,WIN,93 +3032,LOSS,116 +3033,LOSS,114 +3034,LOSS,92 +3035,WIN,109 +3036,WIN,113 +3037,WIN,95 +3038,LOSS,82 +3039,WIN,117 +3040,WIN,101 +3041,LOSS,120 +3042,LOSS,82 +3043,LOSS,108 +3044,LOSS,114 +3045,WIN,113 +3046,LOSS,116 +3047,WIN,115 +3048,LOSS,106 +3049,WIN,109 +3050,LOSS,94 +3051,LOSS,120 +3052,WIN,115 +3053,LOSS,120 +3054,LOSS,108 +3055,LOSS,94 +3056,LOSS,112 +3057,LOSS,96 +3058,WIN,119 +3059,LOSS,116 +3060,LOSS,106 +3061,WIN,97 +3062,WIN,117 +3063,WIN,97 +3064,WIN,103 +3065,LOSS,96 +3066,LOSS,98 +3067,WIN,121 +3068,LOSS,114 +3069,LOSS,120 +3070,WIN,109 +3071,LOSS,116 +3072,WIN,83 +3073,WIN,107 +3074,LOSS,108 +3075,LOSS,104 +3076,WIN,97 +3077,WIN,119 +3078,LOSS,112 +3079,LOSS,106 +3080,WIN,121 +3081,WIN,93 +3082,LOSS,120 +3083,LOSS,108 +3084,LOSS,112 +3085,WIN,119 +3086,WIN,113 +3087,WIN,121 +3088,WIN,105 +3089,WIN,91 +3090,WIN,119 +3091,LOSS,98 +3092,LOSS,100 +3093,LOSS,98 +3094,WIN,105 +3095,LOSS,96 +3096,WIN,91 +3097,WIN,103 +3098,WIN,107 +3099,LOSS,98 +3100,LOSS,106 +3101,WIN,111 +3102,LOSS,110 +3103,LOSS,102 +3104,LOSS,84 +3105,WIN,121 +3106,WIN,87 +3107,LOSS,118 +3108,WIN,119 +3109,WIN,115 +3110,WIN,117 +3111,LOSS,118 +3112,LOSS,116 +3113,LOSS,116 +3114,WIN,119 +3115,LOSS,104 +3116,LOSS,108 +3117,WIN,113 +3118,WIN,89 +3119,WIN,101 +3120,WIN,109 +3121,LOSS,110 +3122,LOSS,106 +3123,LOSS,98 +3124,WIN,117 +3125,LOSS,114 +3126,LOSS,114 +3127,LOSS,104 +3128,WIN,113 +3129,WIN,115 +3130,WIN,119 +3131,LOSS,108 +3132,LOSS,110 +3133,LOSS,108 +3134,LOSS,102 +3135,WIN,119 +3136,LOSS,112 +3137,LOSS,110 +3138,WIN,113 +3139,WIN,121 +3140,WIN,121 +3141,WIN,83 +3142,LOSS,120 +3143,WIN,107 +3144,WIN,121 +3145,WIN,115 +3146,LOSS,118 +3147,LOSS,110 +3148,LOSS,106 +3149,WIN,101 +3150,WIN,109 +3151,WIN,89 +3152,WIN,119 +3153,LOSS,120 +3154,WIN,109 +3155,WIN,109 +3156,LOSS,108 +3157,WIN,97 +3158,LOSS,104 +3159,WIN,107 +3160,LOSS,112 +3161,WIN,107 +3162,WIN,103 +3163,LOSS,98 +3164,LOSS,120 +3165,LOSS,106 +3166,WIN,113 +3167,LOSS,96 +3168,LOSS,116 +3169,WIN,107 +3170,LOSS,104 +3171,WIN,107 +3172,WIN,107 +3173,WIN,121 +3174,LOSS,92 +3175,WIN,87 +3176,LOSS,118 +3177,WIN,121 +3178,LOSS,120 +3179,LOSS,120 +3180,WIN,107 +3181,WIN,113 +3182,WIN,107 +3183,LOSS,104 +3184,WIN,115 +3185,LOSS,110 +3186,WIN,115 +3187,WIN,119 +3188,WIN,117 +3189,LOSS,110 +3190,WIN,121 +3191,WIN,89 +3192,WIN,107 +3193,WIN,99 +3194,WIN,111 +3195,WIN,121 +3196,WIN,109 +3197,WIN,115 +3198,WIN,85 +3199,WIN,99 +3200,LOSS,104 +3201,LOSS,120 +3202,WIN,107 +3203,WIN,115 +3204,LOSS,120 +3205,WIN,93 +3206,LOSS,118 +3207,LOSS,72 +3208,LOSS,108 +3209,WIN,101 +3210,WIN,111 +3211,LOSS,118 +3212,LOSS,118 +3213,WIN,111 +3214,WIN,117 +3215,WIN,105 +3216,WIN,107 +3217,WIN,109 +3218,LOSS,106 +3219,WIN,121 +3220,LOSS,112 +3221,LOSS,106 +3222,WIN,115 +3223,LOSS,98 +3224,LOSS,96 +3225,WIN,121 +3226,LOSS,104 +3227,WIN,91 +3228,LOSS,120 +3229,WIN,103 +3230,LOSS,118 +3231,LOSS,84 +3232,WIN,95 +3233,LOSS,112 +3234,WIN,115 +3235,WIN,75 +3236,WIN,119 +3237,WIN,117 +3238,WIN,101 +3239,LOSS,100 +3240,WIN,87 +3241,WIN,113 +3242,WIN,105 +3243,WIN,119 +3244,LOSS,90 +3245,LOSS,110 +3246,WIN,85 +3247,LOSS,106 +3248,WIN,95 +3249,WIN,121 +3250,WIN,105 +3251,WIN,107 +3252,LOSS,98 +3253,LOSS,110 +3254,WIN,115 +3255,LOSS,104 +3256,LOSS,116 +3257,WIN,91 +3258,LOSS,96 +3259,LOSS,90 +3260,LOSS,102 +3261,WIN,91 +3262,WIN,107 +3263,LOSS,112 +3264,LOSS,96 +3265,LOSS,118 +3266,LOSS,100 +3267,WIN,111 +3268,LOSS,114 +3269,WIN,99 +3270,WIN,105 +3271,WIN,95 +3272,WIN,111 +3273,LOSS,102 +3274,WIN,111 +3275,WIN,113 +3276,WIN,99 +3277,LOSS,106 +3278,WIN,107 +3279,LOSS,110 +3280,LOSS,114 +3281,WIN,113 +3282,WIN,113 +3283,LOSS,118 +3284,LOSS,96 +3285,WIN,107 +3286,WIN,107 +3287,LOSS,112 +3288,LOSS,116 +3289,LOSS,96 +3290,WIN,113 +3291,LOSS,116 +3292,WIN,119 +3293,LOSS,118 +3294,WIN,101 +3295,WIN,109 +3296,WIN,97 +3297,LOSS,92 +3298,WIN,103 +3299,WIN,121 +3300,WIN,105 +3301,WIN,81 +3302,LOSS,118 +3303,LOSS,106 +3304,LOSS,106 +3305,WIN,119 +3306,LOSS,116 +3307,LOSS,114 +3308,WIN,85 +3309,WIN,115 +3310,WIN,109 +3311,WIN,103 +3312,WIN,117 +3313,LOSS,116 +3314,WIN,113 +3315,WIN,121 +3316,LOSS,98 +3317,LOSS,114 +3318,WIN,111 +3319,LOSS,116 +3320,LOSS,108 +3321,WIN,121 +3322,WIN,121 +3323,LOSS,102 +3324,WIN,121 +3325,LOSS,118 +3326,LOSS,114 +3327,WIN,117 +3328,LOSS,98 +3329,WIN,109 +3330,WIN,115 +3331,LOSS,114 +3332,WIN,119 +3333,WIN,95 +3334,LOSS,96 +3335,WIN,101 +3336,WIN,115 +3337,WIN,73 +3338,WIN,111 +3339,WIN,107 +3340,LOSS,118 +3341,WIN,115 +3342,LOSS,90 +3343,WIN,115 +3344,WIN,95 +3345,LOSS,90 +3346,LOSS,120 +3347,LOSS,116 +3348,WIN,95 +3349,LOSS,116 +3350,WIN,119 +3351,WIN,109 +3352,LOSS,106 +3353,WIN,121 +3354,LOSS,96 +3355,LOSS,100 +3356,LOSS,112 +3357,WIN,117 +3358,WIN,117 +3359,WIN,121 +3360,WIN,99 +3361,LOSS,110 +3362,LOSS,110 +3363,LOSS,84 +3364,WIN,121 +3365,WIN,91 +3366,LOSS,110 +3367,WIN,103 +3368,LOSS,120 +3369,WIN,103 +3370,LOSS,116 +3371,WIN,95 +3372,LOSS,120 +3373,WIN,107 +3374,WIN,91 +3375,LOSS,108 +3376,WIN,121 +3377,WIN,113 +3378,LOSS,120 +3379,LOSS,102 +3380,WIN,91 +3381,LOSS,114 +3382,WIN,85 +3383,WIN,93 +3384,WIN,121 +3385,WIN,121 +3386,LOSS,74 +3387,LOSS,120 +3388,LOSS,90 +3389,WIN,119 +3390,LOSS,108 +3391,WIN,119 +3392,WIN,113 +3393,WIN,115 +3394,WIN,109 +3395,WIN,107 +3396,WIN,113 +3397,WIN,111 +3398,LOSS,114 +3399,WIN,119 +3400,LOSS,114 +3401,LOSS,106 +3402,LOSS,114 +3403,LOSS,90 +3404,LOSS,108 +3405,LOSS,108 +3406,LOSS,116 +3407,LOSS,106 +3408,LOSS,112 +3409,WIN,107 +3410,WIN,109 +3411,LOSS,116 +3412,WIN,119 +3413,LOSS,96 +3414,LOSS,110 +3415,LOSS,78 +3416,LOSS,118 +3417,WIN,97 +3418,WIN,113 +3419,WIN,121 +3420,LOSS,102 +3421,WIN,111 +3422,WIN,99 +3423,WIN,107 +3424,LOSS,102 +3425,LOSS,108 +3426,WIN,113 +3427,WIN,113 +3428,WIN,109 +3429,LOSS,120 +3430,WIN,111 +3431,LOSS,92 +3432,LOSS,102 +3433,WIN,109 +3434,LOSS,86 +3435,WIN,97 +3436,WIN,119 +3437,WIN,105 +3438,LOSS,120 +3439,WIN,87 +3440,WIN,109 +3441,LOSS,100 +3442,LOSS,66 +3443,LOSS,112 +3444,LOSS,116 +3445,LOSS,110 +3446,LOSS,104 +3447,WIN,105 +3448,WIN,87 +3449,WIN,119 +3450,LOSS,104 +3451,WIN,109 +3452,WIN,105 +3453,LOSS,114 +3454,WIN,113 +3455,LOSS,106 +3456,LOSS,116 +3457,LOSS,100 +3458,LOSS,112 +3459,WIN,107 +3460,WIN,117 +3461,LOSS,110 +3462,WIN,103 +3463,LOSS,96 +3464,LOSS,110 +3465,LOSS,108 +3466,LOSS,84 +3467,LOSS,102 +3468,LOSS,118 +3469,WIN,119 +3470,WIN,119 +3471,LOSS,118 +3472,WIN,103 +3473,WIN,87 +3474,LOSS,104 +3475,WIN,107 +3476,WIN,115 +3477,LOSS,112 +3478,WIN,119 +3479,WIN,111 +3480,WIN,105 +3481,WIN,105 +3482,WIN,105 +3483,LOSS,110 +3484,WIN,115 +3485,WIN,93 +3486,LOSS,82 +3487,LOSS,106 +3488,LOSS,102 +3489,LOSS,102 +3490,WIN,103 +3491,LOSS,72 +3492,WIN,109 +3493,LOSS,114 +3494,LOSS,110 +3495,WIN,111 +3496,WIN,101 +3497,WIN,113 +3498,LOSS,104 +3499,LOSS,116 +3500,LOSS,90 +3501,LOSS,110 +3502,WIN,99 +3503,LOSS,114 +3504,WIN,97 +3505,WIN,121 +3506,LOSS,116 +3507,WIN,107 +3508,WIN,101 +3509,LOSS,110 +3510,WIN,117 +3511,WIN,119 +3512,LOSS,106 +3513,WIN,95 +3514,WIN,111 +3515,LOSS,114 +3516,LOSS,114 +3517,WIN,117 +3518,LOSS,118 +3519,WIN,121 +3520,LOSS,96 +3521,LOSS,116 +3522,WIN,105 +3523,LOSS,98 +3524,WIN,113 +3525,LOSS,110 +3526,WIN,87 +3527,LOSS,98 +3528,WIN,113 +3529,LOSS,76 +3530,WIN,107 +3531,WIN,109 +3532,WIN,97 +3533,WIN,103 +3534,WIN,111 +3535,LOSS,116 +3536,WIN,103 +3537,LOSS,112 +3538,LOSS,108 +3539,WIN,97 +3540,LOSS,110 +3541,LOSS,120 +3542,LOSS,118 +3543,WIN,117 +3544,WIN,93 +3545,LOSS,110 +3546,WIN,113 +3547,WIN,117 +3548,WIN,117 +3549,LOSS,86 +3550,LOSS,106 +3551,WIN,93 +3552,WIN,105 +3553,LOSS,112 +3554,WIN,109 +3555,LOSS,114 +3556,WIN,105 +3557,WIN,89 +3558,LOSS,78 +3559,LOSS,110 +3560,LOSS,108 +3561,WIN,105 +3562,LOSS,112 +3563,LOSS,118 +3564,WIN,79 +3565,LOSS,120 +3566,WIN,117 +3567,LOSS,116 +3568,LOSS,112 +3569,LOSS,96 +3570,WIN,109 +3571,WIN,111 +3572,LOSS,116 +3573,WIN,103 +3574,WIN,103 +3575,WIN,95 +3576,WIN,119 +3577,LOSS,120 +3578,WIN,115 +3579,LOSS,106 +3580,WIN,113 +3581,WIN,121 +3582,WIN,101 +3583,LOSS,98 +3584,LOSS,110 +3585,LOSS,112 +3586,WIN,113 +3587,LOSS,100 +3588,WIN,107 +3589,LOSS,110 +3590,WIN,117 +3591,WIN,91 +3592,LOSS,106 +3593,WIN,87 +3594,WIN,117 +3595,WIN,111 +3596,WIN,105 +3597,LOSS,110 +3598,WIN,109 +3599,LOSS,94 +3600,WIN,121 +3601,WIN,109 +3602,WIN,111 +3603,LOSS,120 +3604,LOSS,102 +3605,WIN,115 +3606,LOSS,104 +3607,WIN,117 +3608,LOSS,114 +3609,WIN,115 +3610,WIN,119 +3611,WIN,103 +3612,LOSS,118 +3613,WIN,105 +3614,LOSS,120 +3615,WIN,121 +3616,LOSS,108 +3617,LOSS,116 +3618,LOSS,116 +3619,WIN,109 +3620,WIN,97 +3621,WIN,111 +3622,WIN,103 +3623,LOSS,110 +3624,LOSS,100 +3625,WIN,77 +3626,LOSS,110 +3627,LOSS,98 +3628,WIN,119 +3629,LOSS,110 +3630,WIN,109 +3631,LOSS,92 +3632,LOSS,88 +3633,LOSS,80 +3634,LOSS,102 +3635,LOSS,104 +3636,LOSS,118 +3637,LOSS,118 +3638,LOSS,104 +3639,LOSS,120 +3640,LOSS,118 +3641,LOSS,120 +3642,WIN,91 +3643,LOSS,106 +3644,WIN,121 +3645,WIN,101 +3646,LOSS,100 +3647,WIN,107 +3648,WIN,111 +3649,LOSS,106 +3650,WIN,101 +3651,LOSS,120 +3652,LOSS,108 +3653,LOSS,118 +3654,LOSS,104 +3655,WIN,121 +3656,WIN,93 +3657,LOSS,120 +3658,WIN,111 +3659,WIN,121 +3660,LOSS,118 +3661,LOSS,112 +3662,WIN,71 +3663,WIN,95 +3664,LOSS,116 +3665,WIN,119 +3666,WIN,107 +3667,LOSS,114 +3668,WIN,99 +3669,WIN,103 +3670,LOSS,112 +3671,WIN,113 +3672,LOSS,106 +3673,WIN,97 +3674,WIN,121 +3675,WIN,117 +3676,WIN,111 +3677,WIN,83 +3678,LOSS,114 +3679,LOSS,110 +3680,WIN,103 +3681,LOSS,106 +3682,LOSS,112 +3683,LOSS,116 +3684,WIN,107 +3685,WIN,111 +3686,WIN,117 +3687,WIN,99 +3688,WIN,105 +3689,LOSS,62 +3690,WIN,105 +3691,LOSS,114 +3692,WIN,97 +3693,LOSS,110 +3694,WIN,93 +3695,WIN,107 +3696,WIN,111 +3697,WIN,71 +3698,WIN,105 +3699,LOSS,114 +3700,WIN,91 +3701,WIN,107 +3702,LOSS,108 +3703,WIN,121 +3704,WIN,117 +3705,LOSS,120 +3706,LOSS,84 +3707,WIN,89 +3708,LOSS,98 +3709,WIN,119 +3710,WIN,107 +3711,LOSS,116 +3712,LOSS,96 +3713,LOSS,108 +3714,WIN,105 +3715,LOSS,114 +3716,LOSS,118 +3717,WIN,117 +3718,LOSS,102 +3719,WIN,113 +3720,WIN,99 +3721,WIN,99 +3722,LOSS,100 +3723,LOSS,92 +3724,WIN,101 +3725,WIN,93 +3726,LOSS,118 +3727,LOSS,102 +3728,LOSS,96 +3729,LOSS,116 +3730,LOSS,110 +3731,WIN,101 +3732,WIN,91 +3733,LOSS,88 +3734,WIN,109 +3735,LOSS,106 +3736,LOSS,96 +3737,LOSS,110 +3738,LOSS,102 +3739,WIN,119 +3740,WIN,101 +3741,LOSS,78 +3742,WIN,105 +3743,WIN,117 +3744,WIN,121 +3745,LOSS,116 +3746,WIN,115 +3747,WIN,95 +3748,WIN,91 +3749,LOSS,110 +3750,LOSS,116 +3751,WIN,105 +3752,LOSS,92 +3753,WIN,95 +3754,WIN,97 +3755,WIN,81 +3756,LOSS,110 +3757,LOSS,114 +3758,WIN,119 +3759,WIN,107 +3760,WIN,111 +3761,WIN,113 +3762,WIN,105 +3763,WIN,101 +3764,WIN,109 +3765,WIN,105 +3766,WIN,121 +3767,LOSS,114 +3768,WIN,113 +3769,LOSS,94 +3770,WIN,103 +3771,WIN,117 +3772,LOSS,108 +3773,WIN,113 +3774,WIN,73 +3775,WIN,91 +3776,LOSS,114 +3777,LOSS,114 +3778,LOSS,100 +3779,WIN,121 +3780,WIN,87 +3781,LOSS,106 +3782,LOSS,106 +3783,WIN,107 +3784,WIN,111 +3785,WIN,107 +3786,WIN,119 +3787,WIN,81 +3788,LOSS,112 +3789,WIN,87 +3790,WIN,105 +3791,WIN,87 +3792,WIN,111 +3793,LOSS,102 +3794,LOSS,96 +3795,WIN,117 +3796,WIN,105 +3797,LOSS,100 +3798,LOSS,102 +3799,WIN,99 +3800,WIN,85 +3801,WIN,105 +3802,LOSS,116 +3803,WIN,79 +3804,LOSS,110 +3805,WIN,115 +3806,WIN,119 +3807,WIN,121 +3808,WIN,115 +3809,WIN,111 +3810,WIN,83 +3811,LOSS,110 +3812,LOSS,118 +3813,LOSS,104 +3814,LOSS,114 +3815,WIN,103 +3816,WIN,121 +3817,WIN,109 +3818,WIN,121 +3819,LOSS,104 +3820,LOSS,90 +3821,LOSS,114 +3822,WIN,117 +3823,WIN,105 +3824,WIN,119 +3825,LOSS,112 +3826,LOSS,86 +3827,WIN,117 +3828,WIN,111 +3829,LOSS,120 +3830,WIN,87 +3831,WIN,89 +3832,WIN,99 +3833,WIN,117 +3834,LOSS,120 +3835,LOSS,106 +3836,WIN,115 +3837,WIN,111 +3838,LOSS,116 +3839,WIN,107 +3840,LOSS,108 +3841,LOSS,108 +3842,WIN,99 +3843,WIN,115 +3844,WIN,119 +3845,WIN,119 +3846,WIN,121 +3847,LOSS,114 +3848,LOSS,120 +3849,LOSS,112 +3850,LOSS,102 +3851,LOSS,120 +3852,WIN,95 +3853,LOSS,118 +3854,LOSS,108 +3855,LOSS,84 +3856,LOSS,70 +3857,LOSS,98 +3858,LOSS,118 +3859,WIN,113 +3860,WIN,85 +3861,LOSS,114 +3862,LOSS,116 +3863,LOSS,120 +3864,LOSS,114 +3865,WIN,99 +3866,WIN,121 +3867,LOSS,118 +3868,LOSS,114 +3869,LOSS,84 +3870,LOSS,120 +3871,WIN,107 +3872,WIN,95 +3873,LOSS,102 +3874,LOSS,106 +3875,LOSS,120 +3876,WIN,103 +3877,LOSS,90 +3878,LOSS,116 +3879,LOSS,116 +3880,WIN,113 +3881,LOSS,110 +3882,LOSS,106 +3883,WIN,119 +3884,LOSS,114 +3885,LOSS,120 +3886,LOSS,114 +3887,LOSS,98 +3888,LOSS,112 +3889,WIN,111 +3890,LOSS,106 +3891,WIN,109 +3892,LOSS,120 +3893,WIN,111 +3894,WIN,117 +3895,LOSS,108 +3896,LOSS,120 +3897,WIN,111 +3898,WIN,91 +3899,WIN,119 +3900,WIN,103 +3901,LOSS,114 +3902,WIN,115 +3903,LOSS,112 +3904,LOSS,66 +3905,LOSS,110 +3906,LOSS,112 +3907,LOSS,94 +3908,LOSS,120 +3909,WIN,103 +3910,LOSS,108 +3911,WIN,95 +3912,WIN,113 +3913,LOSS,118 +3914,LOSS,94 +3915,WIN,99 +3916,LOSS,102 +3917,WIN,107 +3918,LOSS,76 +3919,WIN,97 +3920,WIN,95 +3921,LOSS,98 +3922,WIN,107 +3923,WIN,119 +3924,WIN,105 +3925,WIN,115 +3926,LOSS,114 +3927,WIN,119 +3928,LOSS,114 +3929,LOSS,104 +3930,LOSS,82 +3931,WIN,119 +3932,WIN,119 +3933,WIN,121 +3934,WIN,93 +3935,LOSS,120 +3936,WIN,117 +3937,LOSS,112 +3938,LOSS,106 +3939,WIN,103 +3940,WIN,111 +3941,LOSS,104 +3942,LOSS,104 +3943,LOSS,116 +3944,WIN,81 +3945,LOSS,114 +3946,WIN,115 +3947,LOSS,102 +3948,WIN,119 +3949,WIN,99 +3950,WIN,113 +3951,WIN,87 +3952,LOSS,110 +3953,LOSS,102 +3954,WIN,117 +3955,WIN,75 +3956,WIN,101 +3957,LOSS,104 +3958,LOSS,112 +3959,WIN,103 +3960,WIN,113 +3961,WIN,119 +3962,WIN,105 +3963,WIN,117 +3964,WIN,119 +3965,WIN,109 +3966,WIN,101 +3967,WIN,103 +3968,LOSS,118 +3969,WIN,109 +3970,LOSS,116 +3971,WIN,97 +3972,LOSS,108 +3973,LOSS,94 +3974,LOSS,98 +3975,WIN,121 +3976,LOSS,106 +3977,WIN,119 +3978,WIN,117 +3979,WIN,99 +3980,WIN,101 +3981,WIN,105 +3982,LOSS,114 +3983,WIN,119 +3984,WIN,109 +3985,WIN,97 +3986,WIN,103 +3987,LOSS,116 +3988,WIN,103 +3989,LOSS,114 +3990,LOSS,118 +3991,LOSS,86 +3992,WIN,93 +3993,LOSS,118 +3994,WIN,101 +3995,LOSS,110 +3996,WIN,101 +3997,WIN,97 +3998,WIN,109 +3999,LOSS,80 +4000,LOSS,114 +4001,LOSS,104 +4002,WIN,97 +4003,WIN,111 +4004,WIN,93 +4005,WIN,119 +4006,LOSS,104 +4007,LOSS,98 +4008,WIN,89 +4009,WIN,83 +4010,WIN,99 +4011,WIN,99 +4012,LOSS,110 +4013,WIN,101 +4014,WIN,121 +4015,WIN,119 +4016,LOSS,104 +4017,LOSS,100 +4018,WIN,93 +4019,WIN,91 +4020,WIN,117 +4021,LOSS,110 +4022,LOSS,110 +4023,WIN,95 +4024,WIN,115 +4025,WIN,103 +4026,LOSS,120 +4027,WIN,117 +4028,WIN,121 +4029,LOSS,94 +4030,WIN,107 +4031,LOSS,118 +4032,LOSS,120 +4033,WIN,113 +4034,WIN,121 +4035,WIN,111 +4036,LOSS,112 +4037,WIN,113 +4038,WIN,99 +4039,WIN,107 +4040,WIN,111 +4041,WIN,119 +4042,WIN,103 +4043,LOSS,114 +4044,LOSS,116 +4045,LOSS,120 +4046,WIN,119 +4047,LOSS,110 +4048,LOSS,94 +4049,LOSS,116 +4050,LOSS,112 +4051,LOSS,110 +4052,WIN,91 +4053,WIN,115 +4054,WIN,121 +4055,LOSS,112 +4056,WIN,109 +4057,WIN,111 +4058,WIN,105 +4059,LOSS,100 +4060,LOSS,106 +4061,WIN,83 +4062,WIN,85 +4063,LOSS,118 +4064,WIN,113 +4065,LOSS,104 +4066,LOSS,92 +4067,WIN,119 +4068,WIN,95 +4069,LOSS,114 +4070,WIN,113 +4071,WIN,109 +4072,LOSS,102 +4073,WIN,103 +4074,LOSS,100 +4075,LOSS,110 +4076,WIN,113 +4077,WIN,103 +4078,WIN,113 +4079,WIN,117 +4080,WIN,105 +4081,LOSS,112 +4082,WIN,105 +4083,WIN,115 +4084,LOSS,116 +4085,WIN,109 +4086,WIN,105 +4087,LOSS,102 +4088,LOSS,120 +4089,LOSS,102 +4090,LOSS,110 +4091,WIN,117 +4092,WIN,103 +4093,WIN,119 +4094,WIN,101 +4095,WIN,89 +4096,LOSS,100 +4097,WIN,109 +4098,WIN,115 +4099,WIN,115 +4100,WIN,87 +4101,WIN,107 +4102,LOSS,104 +4103,LOSS,102 +4104,LOSS,110 +4105,LOSS,98 +4106,WIN,121 +4107,WIN,117 +4108,WIN,97 +4109,LOSS,112 +4110,LOSS,120 +4111,LOSS,112 +4112,LOSS,102 +4113,LOSS,98 +4114,LOSS,118 +4115,LOSS,118 +4116,LOSS,84 +4117,WIN,105 +4118,WIN,109 +4119,WIN,105 +4120,LOSS,112 +4121,LOSS,102 +4122,LOSS,114 +4123,WIN,105 +4124,LOSS,86 +4125,LOSS,116 +4126,WIN,115 +4127,LOSS,118 +4128,LOSS,118 +4129,WIN,105 +4130,LOSS,78 +4131,WIN,97 +4132,LOSS,110 +4133,WIN,109 +4134,WIN,119 +4135,LOSS,118 +4136,LOSS,104 +4137,WIN,89 +4138,LOSS,114 +4139,LOSS,114 +4140,WIN,99 +4141,LOSS,116 +4142,LOSS,84 +4143,WIN,79 +4144,LOSS,120 +4145,LOSS,106 +4146,LOSS,100 +4147,LOSS,112 +4148,WIN,111 +4149,LOSS,106 +4150,WIN,107 +4151,WIN,121 +4152,LOSS,104 +4153,WIN,109 +4154,LOSS,108 +4155,LOSS,102 +4156,LOSS,104 +4157,LOSS,116 +4158,LOSS,84 +4159,WIN,117 +4160,LOSS,116 +4161,WIN,85 +4162,WIN,115 +4163,WIN,115 +4164,WIN,105 +4165,WIN,117 +4166,WIN,117 +4167,LOSS,120 +4168,WIN,119 +4169,LOSS,114 +4170,WIN,117 +4171,WIN,113 +4172,LOSS,96 +4173,WIN,119 +4174,LOSS,104 +4175,LOSS,90 +4176,WIN,115 +4177,LOSS,120 +4178,LOSS,110 +4179,WIN,115 +4180,LOSS,116 +4181,WIN,121 +4182,WIN,105 +4183,WIN,121 +4184,WIN,113 +4185,WIN,107 +4186,WIN,121 +4187,WIN,117 +4188,LOSS,118 +4189,WIN,89 +4190,LOSS,116 +4191,LOSS,116 +4192,WIN,97 +4193,WIN,111 +4194,WIN,109 +4195,WIN,121 +4196,LOSS,88 +4197,LOSS,108 +4198,WIN,97 +4199,LOSS,114 +4200,WIN,113 +4201,LOSS,120 +4202,LOSS,104 +4203,WIN,121 +4204,LOSS,116 +4205,WIN,113 +4206,LOSS,112 +4207,WIN,97 +4208,WIN,119 +4209,WIN,109 +4210,LOSS,90 +4211,WIN,101 +4212,WIN,119 +4213,WIN,117 +4214,LOSS,94 +4215,WIN,89 +4216,WIN,83 +4217,WIN,97 +4218,WIN,105 +4219,WIN,99 +4220,LOSS,108 +4221,LOSS,118 +4222,WIN,97 +4223,LOSS,102 +4224,WIN,101 +4225,LOSS,94 +4226,WIN,119 +4227,LOSS,118 +4228,LOSS,108 +4229,WIN,107 +4230,LOSS,106 +4231,LOSS,110 +4232,WIN,113 +4233,LOSS,116 +4234,LOSS,100 +4235,LOSS,102 +4236,WIN,105 +4237,LOSS,90 +4238,WIN,95 +4239,LOSS,114 +4240,WIN,119 +4241,LOSS,90 +4242,LOSS,114 +4243,LOSS,106 +4244,WIN,107 +4245,LOSS,120 +4246,WIN,119 +4247,WIN,91 +4248,LOSS,110 +4249,LOSS,120 +4250,LOSS,104 +4251,LOSS,112 +4252,WIN,115 +4253,LOSS,98 +4254,WIN,113 +4255,LOSS,114 +4256,WIN,105 +4257,LOSS,114 +4258,WIN,105 +4259,WIN,117 +4260,WIN,117 +4261,WIN,119 +4262,LOSS,116 +4263,WIN,115 +4264,WIN,117 +4265,WIN,119 +4266,LOSS,102 +4267,LOSS,100 +4268,WIN,73 +4269,WIN,117 +4270,LOSS,114 +4271,WIN,115 +4272,LOSS,118 +4273,LOSS,92 +4274,WIN,111 +4275,LOSS,116 +4276,WIN,91 +4277,LOSS,104 +4278,WIN,91 +4279,LOSS,116 +4280,WIN,111 +4281,WIN,85 +4282,WIN,113 +4283,WIN,97 +4284,WIN,113 +4285,LOSS,106 +4286,WIN,121 +4287,LOSS,102 +4288,WIN,117 +4289,WIN,115 +4290,LOSS,120 +4291,LOSS,100 +4292,WIN,109 +4293,LOSS,116 +4294,LOSS,86 +4295,WIN,93 +4296,LOSS,118 +4297,WIN,95 +4298,LOSS,118 +4299,WIN,111 +4300,WIN,119 +4301,LOSS,104 +4302,WIN,103 +4303,WIN,109 +4304,WIN,109 +4305,WIN,119 +4306,WIN,93 +4307,LOSS,104 +4308,WIN,119 +4309,WIN,107 +4310,WIN,117 +4311,WIN,121 +4312,LOSS,104 +4313,WIN,119 +4314,WIN,97 +4315,WIN,103 +4316,LOSS,98 +4317,LOSS,114 +4318,LOSS,104 +4319,WIN,113 +4320,WIN,99 +4321,LOSS,104 +4322,LOSS,102 +4323,WIN,117 +4324,LOSS,86 +4325,WIN,117 +4326,LOSS,94 +4327,WIN,101 +4328,LOSS,92 +4329,LOSS,114 +4330,LOSS,94 +4331,WIN,111 +4332,WIN,119 +4333,LOSS,116 +4334,LOSS,120 +4335,WIN,121 +4336,LOSS,108 +4337,WIN,117 +4338,WIN,81 +4339,WIN,97 +4340,LOSS,116 +4341,WIN,115 +4342,WIN,105 +4343,WIN,101 +4344,LOSS,98 +4345,LOSS,118 +4346,WIN,119 +4347,LOSS,110 +4348,WIN,87 +4349,WIN,81 +4350,WIN,101 +4351,LOSS,116 +4352,WIN,109 +4353,WIN,111 +4354,WIN,113 +4355,LOSS,114 +4356,LOSS,118 +4357,WIN,107 +4358,LOSS,110 +4359,WIN,115 +4360,LOSS,108 +4361,LOSS,118 +4362,WIN,121 +4363,WIN,119 +4364,WIN,109 +4365,WIN,115 +4366,LOSS,104 +4367,LOSS,102 +4368,WIN,115 +4369,WIN,117 +4370,LOSS,106 +4371,LOSS,118 +4372,LOSS,108 +4373,LOSS,80 +4374,LOSS,108 +4375,LOSS,104 +4376,WIN,111 +4377,WIN,109 +4378,LOSS,110 +4379,WIN,115 +4380,WIN,107 +4381,LOSS,102 +4382,WIN,101 +4383,WIN,121 +4384,WIN,111 +4385,LOSS,116 +4386,LOSS,118 +4387,LOSS,120 +4388,LOSS,114 +4389,WIN,121 +4390,LOSS,90 +4391,WIN,113 +4392,LOSS,104 +4393,WIN,97 +4394,WIN,117 +4395,WIN,109 +4396,WIN,107 +4397,WIN,119 +4398,WIN,113 +4399,WIN,121 +4400,LOSS,82 +4401,WIN,121 +4402,LOSS,116 +4403,WIN,99 +4404,LOSS,102 +4405,WIN,105 +4406,WIN,113 +4407,WIN,111 +4408,WIN,99 +4409,LOSS,80 +4410,LOSS,108 +4411,WIN,119 +4412,WIN,101 +4413,LOSS,110 +4414,LOSS,108 +4415,WIN,117 +4416,LOSS,108 +4417,WIN,109 +4418,WIN,113 +4419,LOSS,102 +4420,WIN,115 +4421,LOSS,110 +4422,WIN,107 +4423,WIN,93 +4424,WIN,119 +4425,LOSS,110 +4426,WIN,115 +4427,WIN,117 +4428,WIN,99 +4429,WIN,113 +4430,WIN,99 +4431,WIN,121 +4432,LOSS,78 +4433,WIN,115 +4434,WIN,109 +4435,WIN,73 +4436,WIN,105 +4437,WIN,119 +4438,WIN,115 +4439,LOSS,88 +4440,WIN,105 +4441,LOSS,106 +4442,LOSS,118 +4443,LOSS,96 +4444,LOSS,120 +4445,WIN,109 +4446,WIN,121 +4447,LOSS,114 +4448,LOSS,118 +4449,LOSS,112 +4450,LOSS,116 +4451,WIN,119 +4452,WIN,99 +4453,WIN,113 +4454,LOSS,110 +4455,LOSS,108 +4456,WIN,121 +4457,WIN,113 +4458,LOSS,114 +4459,WIN,103 +4460,LOSS,106 +4461,LOSS,100 +4462,LOSS,110 +4463,LOSS,110 +4464,WIN,113 +4465,WIN,117 +4466,WIN,105 +4467,LOSS,68 +4468,LOSS,94 +4469,LOSS,98 +4470,LOSS,112 +4471,WIN,121 +4472,WIN,71 +4473,LOSS,120 +4474,LOSS,120 +4475,WIN,89 +4476,LOSS,114 +4477,LOSS,116 +4478,WIN,95 +4479,WIN,111 +4480,WIN,101 +4481,WIN,119 +4482,WIN,115 +4483,LOSS,116 +4484,LOSS,108 +4485,WIN,121 +4486,LOSS,90 +4487,WIN,91 +4488,WIN,105 +4489,WIN,111 +4490,WIN,87 +4491,LOSS,114 +4492,LOSS,118 +4493,WIN,121 +4494,WIN,111 +4495,WIN,99 +4496,LOSS,120 +4497,LOSS,92 +4498,LOSS,102 +4499,WIN,113 +4500,WIN,75 +4501,WIN,115 +4502,LOSS,114 +4503,LOSS,74 +4504,LOSS,112 +4505,LOSS,106 +4506,LOSS,118 +4507,WIN,115 +4508,WIN,99 +4509,LOSS,120 +4510,WIN,111 +4511,WIN,113 +4512,WIN,119 +4513,LOSS,108 +4514,WIN,113 +4515,LOSS,116 +4516,WIN,111 +4517,WIN,89 +4518,LOSS,94 +4519,LOSS,96 +4520,WIN,107 +4521,WIN,101 +4522,WIN,103 +4523,LOSS,104 +4524,LOSS,92 +4525,WIN,115 +4526,LOSS,118 +4527,WIN,115 +4528,WIN,111 +4529,WIN,113 +4530,LOSS,120 +4531,WIN,119 +4532,LOSS,102 +4533,WIN,117 +4534,WIN,111 +4535,LOSS,110 +4536,WIN,91 +4537,LOSS,116 +4538,LOSS,108 +4539,WIN,101 +4540,WIN,109 +4541,WIN,117 +4542,WIN,115 +4543,WIN,121 +4544,LOSS,98 +4545,WIN,87 +4546,WIN,105 +4547,LOSS,120 +4548,LOSS,94 +4549,LOSS,116 +4550,WIN,89 +4551,LOSS,98 +4552,LOSS,112 +4553,WIN,119 +4554,LOSS,98 +4555,WIN,119 +4556,WIN,97 +4557,WIN,117 +4558,LOSS,84 +4559,LOSS,92 +4560,WIN,109 +4561,WIN,89 +4562,LOSS,116 +4563,WIN,103 +4564,WIN,117 +4565,WIN,115 +4566,LOSS,92 +4567,LOSS,86 +4568,LOSS,112 +4569,WIN,107 +4570,LOSS,112 +4571,WIN,109 +4572,LOSS,120 +4573,LOSS,98 +4574,LOSS,90 +4575,LOSS,120 +4576,WIN,117 +4577,WIN,119 +4578,WIN,119 +4579,LOSS,118 +4580,WIN,87 +4581,LOSS,116 +4582,LOSS,120 +4583,LOSS,112 +4584,LOSS,80 +4585,WIN,103 +4586,LOSS,118 +4587,WIN,113 +4588,LOSS,116 +4589,LOSS,114 +4590,WIN,99 +4591,LOSS,112 +4592,LOSS,108 +4593,LOSS,116 +4594,LOSS,92 +4595,WIN,101 +4596,WIN,103 +4597,WIN,115 +4598,WIN,105 +4599,WIN,109 +4600,LOSS,102 +4601,LOSS,112 +4602,LOSS,106 +4603,LOSS,102 +4604,LOSS,110 +4605,WIN,121 +4606,LOSS,84 +4607,WIN,93 +4608,WIN,115 +4609,LOSS,110 +4610,LOSS,106 +4611,WIN,103 +4612,LOSS,100 +4613,LOSS,116 +4614,LOSS,110 +4615,LOSS,114 +4616,LOSS,114 +4617,LOSS,116 +4618,WIN,121 +4619,WIN,105 +4620,WIN,113 +4621,LOSS,94 +4622,LOSS,98 +4623,LOSS,116 +4624,LOSS,118 +4625,LOSS,112 +4626,LOSS,98 +4627,LOSS,100 +4628,WIN,119 +4629,WIN,117 +4630,WIN,115 +4631,WIN,119 +4632,LOSS,90 +4633,WIN,101 +4634,LOSS,118 +4635,WIN,119 +4636,LOSS,90 +4637,LOSS,112 +4638,WIN,115 +4639,WIN,113 +4640,WIN,113 +4641,WIN,105 +4642,WIN,121 +4643,LOSS,114 +4644,LOSS,114 +4645,WIN,113 +4646,LOSS,106 +4647,LOSS,94 +4648,WIN,121 +4649,LOSS,110 +4650,LOSS,108 +4651,LOSS,92 +4652,LOSS,118 +4653,LOSS,116 +4654,WIN,105 +4655,WIN,109 +4656,WIN,121 +4657,LOSS,114 +4658,LOSS,104 +4659,WIN,113 +4660,WIN,113 +4661,WIN,103 +4662,WIN,105 +4663,LOSS,110 +4664,WIN,103 +4665,WIN,109 +4666,LOSS,118 +4667,WIN,119 +4668,WIN,89 +4669,WIN,115 +4670,WIN,115 +4671,WIN,121 +4672,LOSS,104 +4673,WIN,105 +4674,LOSS,114 +4675,LOSS,90 +4676,WIN,105 +4677,LOSS,116 +4678,WIN,105 +4679,LOSS,102 +4680,WIN,85 +4681,LOSS,106 +4682,LOSS,84 +4683,WIN,119 +4684,LOSS,120 +4685,LOSS,120 +4686,LOSS,116 +4687,LOSS,106 +4688,WIN,105 +4689,WIN,107 +4690,LOSS,100 +4691,WIN,111 +4692,WIN,93 +4693,WIN,109 +4694,LOSS,94 +4695,WIN,119 +4696,WIN,99 +4697,WIN,121 +4698,WIN,109 +4699,WIN,111 +4700,LOSS,112 +4701,LOSS,114 +4702,WIN,121 +4703,LOSS,104 +4704,WIN,109 +4705,LOSS,114 +4706,LOSS,110 +4707,WIN,105 +4708,WIN,105 +4709,WIN,115 +4710,WIN,89 +4711,WIN,81 +4712,LOSS,116 +4713,WIN,115 +4714,WIN,99 +4715,LOSS,94 +4716,LOSS,116 +4717,LOSS,106 +4718,WIN,103 +4719,LOSS,114 +4720,LOSS,112 +4721,LOSS,106 +4722,WIN,93 +4723,LOSS,100 +4724,WIN,103 +4725,WIN,89 +4726,LOSS,78 +4727,LOSS,100 +4728,LOSS,100 +4729,LOSS,94 +4730,WIN,99 +4731,WIN,111 +4732,WIN,111 +4733,LOSS,118 +4734,LOSS,106 +4735,LOSS,106 +4736,WIN,113 +4737,WIN,111 +4738,WIN,117 +4739,LOSS,104 +4740,WIN,115 +4741,LOSS,110 +4742,WIN,99 +4743,WIN,99 +4744,LOSS,110 +4745,LOSS,112 +4746,LOSS,114 +4747,LOSS,102 +4748,LOSS,116 +4749,WIN,119 +4750,WIN,115 +4751,LOSS,118 +4752,WIN,109 +4753,WIN,119 +4754,LOSS,114 +4755,LOSS,120 +4756,LOSS,116 +4757,WIN,107 +4758,LOSS,116 +4759,LOSS,104 +4760,WIN,121 +4761,LOSS,106 +4762,LOSS,104 +4763,LOSS,106 +4764,WIN,111 +4765,WIN,117 +4766,WIN,113 +4767,WIN,119 +4768,WIN,115 +4769,WIN,109 +4770,LOSS,110 +4771,WIN,83 +4772,WIN,113 +4773,LOSS,112 +4774,LOSS,112 +4775,LOSS,108 +4776,WIN,91 +4777,LOSS,100 +4778,LOSS,116 +4779,LOSS,118 +4780,LOSS,104 +4781,LOSS,96 +4782,WIN,119 +4783,WIN,111 +4784,LOSS,88 +4785,WIN,109 +4786,LOSS,112 +4787,WIN,119 +4788,LOSS,70 +4789,LOSS,118 +4790,LOSS,74 +4791,LOSS,84 +4792,LOSS,96 +4793,LOSS,112 +4794,WIN,119 +4795,WIN,105 +4796,WIN,95 +4797,LOSS,96 +4798,LOSS,116 +4799,WIN,85 +4800,LOSS,120 +4801,WIN,101 +4802,WIN,107 +4803,WIN,117 +4804,LOSS,108 +4805,WIN,93 +4806,LOSS,108 +4807,WIN,119 +4808,WIN,97 +4809,WIN,121 +4810,LOSS,118 +4811,WIN,115 +4812,WIN,109 +4813,WIN,117 +4814,LOSS,86 +4815,WIN,119 +4816,WIN,121 +4817,LOSS,114 +4818,LOSS,114 +4819,WIN,119 +4820,LOSS,112 +4821,WIN,115 +4822,WIN,121 +4823,WIN,107 +4824,LOSS,120 +4825,LOSS,92 +4826,WIN,117 +4827,WIN,101 +4828,LOSS,120 +4829,WIN,103 +4830,LOSS,120 +4831,WIN,91 +4832,WIN,103 +4833,LOSS,112 +4834,WIN,115 +4835,WIN,115 +4836,LOSS,110 +4837,LOSS,100 +4838,LOSS,116 +4839,LOSS,116 +4840,LOSS,116 +4841,WIN,95 +4842,LOSS,112 +4843,WIN,119 +4844,WIN,99 +4845,WIN,101 +4846,WIN,119 +4847,LOSS,114 +4848,LOSS,116 +4849,WIN,121 +4850,WIN,97 +4851,WIN,101 +4852,LOSS,112 +4853,LOSS,100 +4854,WIN,115 +4855,LOSS,112 +4856,WIN,115 +4857,LOSS,114 +4858,WIN,97 +4859,LOSS,94 +4860,WIN,117 +4861,WIN,97 +4862,LOSS,110 +4863,LOSS,116 +4864,LOSS,114 +4865,WIN,105 +4866,WIN,113 +4867,WIN,117 +4868,LOSS,118 +4869,LOSS,96 +4870,LOSS,86 +4871,LOSS,90 +4872,WIN,115 +4873,LOSS,110 +4874,LOSS,102 +4875,WIN,119 +4876,LOSS,116 +4877,LOSS,102 +4878,WIN,89 +4879,LOSS,92 +4880,LOSS,112 +4881,LOSS,110 +4882,LOSS,92 +4883,WIN,113 +4884,LOSS,106 +4885,LOSS,112 +4886,WIN,109 +4887,WIN,103 +4888,WIN,109 +4889,WIN,121 +4890,WIN,121 +4891,LOSS,98 +4892,LOSS,104 +4893,LOSS,92 +4894,WIN,113 +4895,LOSS,110 +4896,WIN,107 +4897,LOSS,98 +4898,LOSS,120 +4899,WIN,119 +4900,LOSS,112 +4901,WIN,93 +4902,WIN,105 +4903,LOSS,100 +4904,LOSS,118 +4905,WIN,109 +4906,LOSS,92 +4907,WIN,119 +4908,LOSS,118 +4909,WIN,119 +4910,LOSS,112 +4911,WIN,103 +4912,LOSS,120 +4913,WIN,89 +4914,LOSS,120 +4915,LOSS,118 +4916,WIN,119 +4917,WIN,105 +4918,LOSS,120 +4919,WIN,121 +4920,WIN,113 +4921,WIN,101 +4922,WIN,117 +4923,WIN,119 +4924,WIN,113 +4925,WIN,97 +4926,LOSS,94 +4927,WIN,113 +4928,LOSS,98 +4929,WIN,105 +4930,LOSS,106 +4931,WIN,97 +4932,WIN,97 +4933,WIN,117 +4934,WIN,119 +4935,LOSS,90 +4936,LOSS,100 +4937,WIN,105 +4938,LOSS,110 +4939,LOSS,98 +4940,LOSS,108 +4941,LOSS,98 +4942,WIN,121 +4943,LOSS,118 +4944,LOSS,106 +4945,LOSS,114 +4946,LOSS,120 +4947,LOSS,100 +4948,WIN,115 +4949,WIN,119 +4950,WIN,109 +4951,LOSS,104 +4952,WIN,119 +4953,LOSS,114 +4954,LOSS,108 +4955,WIN,115 +4956,WIN,117 +4957,LOSS,112 +4958,WIN,97 +4959,WIN,95 +4960,LOSS,118 +4961,WIN,99 +4962,WIN,111 +4963,WIN,111 +4964,WIN,119 +4965,WIN,109 +4966,LOSS,116 +4967,WIN,97 +4968,WIN,113 +4969,WIN,117 +4970,WIN,111 +4971,WIN,103 +4972,WIN,117 +4973,WIN,97 +4974,WIN,121 +4975,LOSS,116 +4976,LOSS,112 +4977,WIN,115 +4978,LOSS,104 +4979,WIN,113 +4980,LOSS,120 +4981,WIN,105 +4982,LOSS,104 +4983,WIN,97 +4984,LOSS,120 +4985,LOSS,110 +4986,WIN,103 +4987,WIN,105 +4988,LOSS,88 +4989,WIN,117 +4990,WIN,83 +4991,WIN,113 +4992,LOSS,92 +4993,WIN,89 +4994,WIN,119 +4995,LOSS,104 +4996,WIN,107 +4997,WIN,113 +4998,LOSS,106 +4999,WIN,115 +5000,WIN,115 +5001,WIN,99 +5002,WIN,119 +5003,WIN,119 +5004,LOSS,106 +5005,WIN,109 +5006,WIN,111 +5007,WIN,107 +5008,LOSS,116 +5009,LOSS,118 +5010,LOSS,116 +5011,WIN,119 +5012,WIN,113 +5013,WIN,109 +5014,LOSS,92 +5015,WIN,89 +5016,WIN,107 +5017,LOSS,116 +5018,WIN,113 +5019,WIN,121 +5020,WIN,113 +5021,LOSS,112 +5022,WIN,87 +5023,LOSS,106 +5024,LOSS,98 +5025,WIN,93 +5026,LOSS,90 +5027,WIN,117 +5028,WIN,109 +5029,WIN,109 +5030,WIN,117 +5031,LOSS,114 +5032,LOSS,116 +5033,LOSS,112 +5034,WIN,97 +5035,WIN,93 +5036,LOSS,108 +5037,LOSS,92 +5038,WIN,109 +5039,WIN,117 +5040,WIN,87 +5041,LOSS,118 +5042,LOSS,108 +5043,LOSS,102 +5044,LOSS,78 +5045,WIN,111 +5046,WIN,117 +5047,WIN,109 +5048,WIN,91 +5049,WIN,115 +5050,LOSS,88 +5051,LOSS,100 +5052,LOSS,112 +5053,LOSS,98 +5054,WIN,105 +5055,LOSS,90 +5056,LOSS,118 +5057,LOSS,116 +5058,WIN,101 +5059,LOSS,104 +5060,LOSS,110 +5061,WIN,109 +5062,LOSS,100 +5063,WIN,77 +5064,WIN,103 +5065,LOSS,78 +5066,LOSS,120 +5067,LOSS,96 +5068,LOSS,94 +5069,WIN,107 +5070,LOSS,118 +5071,WIN,119 +5072,WIN,71 +5073,LOSS,102 +5074,WIN,119 +5075,LOSS,76 +5076,WIN,107 +5077,WIN,111 +5078,LOSS,90 +5079,LOSS,108 +5080,WIN,99 +5081,WIN,87 +5082,LOSS,110 +5083,LOSS,116 +5084,LOSS,78 +5085,WIN,111 +5086,WIN,107 +5087,WIN,117 +5088,WIN,121 +5089,WIN,121 +5090,WIN,95 +5091,WIN,119 +5092,WIN,95 +5093,WIN,69 +5094,WIN,105 +5095,WIN,115 +5096,LOSS,112 +5097,WIN,117 +5098,WIN,107 +5099,LOSS,78 +5100,WIN,109 +5101,LOSS,106 +5102,LOSS,110 +5103,LOSS,100 +5104,WIN,93 +5105,LOSS,94 +5106,LOSS,120 +5107,WIN,115 +5108,WIN,89 +5109,WIN,105 +5110,LOSS,96 +5111,LOSS,82 +5112,LOSS,110 +5113,LOSS,114 +5114,LOSS,120 +5115,WIN,93 +5116,WIN,111 +5117,LOSS,86 +5118,WIN,119 +5119,WIN,95 +5120,WIN,99 +5121,WIN,119 +5122,WIN,97 +5123,LOSS,94 +5124,LOSS,110 +5125,WIN,119 +5126,LOSS,112 +5127,WIN,105 +5128,WIN,119 +5129,WIN,121 +5130,LOSS,104 +5131,LOSS,116 +5132,WIN,121 +5133,WIN,89 +5134,WIN,121 +5135,WIN,103 +5136,LOSS,78 +5137,WIN,103 +5138,WIN,117 +5139,LOSS,118 +5140,LOSS,118 +5141,WIN,87 +5142,LOSS,94 +5143,WIN,119 +5144,LOSS,120 +5145,LOSS,116 +5146,LOSS,94 +5147,LOSS,110 +5148,WIN,91 +5149,LOSS,108 +5150,LOSS,102 +5151,LOSS,116 +5152,LOSS,98 +5153,WIN,109 +5154,LOSS,108 +5155,LOSS,102 +5156,WIN,121 +5157,LOSS,114 +5158,WIN,119 +5159,LOSS,102 +5160,WIN,107 +5161,WIN,119 +5162,WIN,119 +5163,WIN,103 +5164,WIN,105 +5165,LOSS,112 +5166,WIN,101 +5167,WIN,93 +5168,WIN,95 +5169,LOSS,116 +5170,WIN,111 +5171,WIN,115 +5172,WIN,117 +5173,WIN,119 +5174,WIN,115 +5175,WIN,115 +5176,WIN,111 +5177,LOSS,94 +5178,LOSS,108 +5179,WIN,101 +5180,LOSS,114 +5181,LOSS,120 +5182,LOSS,92 +5183,WIN,119 +5184,WIN,103 +5185,WIN,89 +5186,LOSS,116 +5187,LOSS,116 +5188,LOSS,110 +5189,LOSS,110 +5190,LOSS,112 +5191,WIN,113 +5192,LOSS,102 +5193,WIN,119 +5194,LOSS,112 +5195,WIN,91 +5196,WIN,101 +5197,WIN,91 +5198,LOSS,114 +5199,LOSS,118 +5200,WIN,111 +5201,LOSS,120 +5202,WIN,121 +5203,LOSS,116 +5204,WIN,101 +5205,LOSS,94 +5206,WIN,111 +5207,WIN,95 +5208,WIN,111 +5209,WIN,113 +5210,LOSS,98 +5211,WIN,103 +5212,LOSS,120 +5213,LOSS,96 +5214,LOSS,104 +5215,WIN,101 +5216,WIN,103 +5217,WIN,107 +5218,WIN,95 +5219,LOSS,94 +5220,LOSS,114 +5221,WIN,115 +5222,WIN,119 +5223,WIN,101 +5224,LOSS,112 +5225,LOSS,82 +5226,LOSS,112 +5227,LOSS,108 +5228,WIN,117 +5229,LOSS,110 +5230,LOSS,72 +5231,WIN,119 +5232,WIN,115 +5233,WIN,121 +5234,WIN,103 +5235,LOSS,102 +5236,LOSS,104 +5237,LOSS,118 +5238,WIN,115 +5239,WIN,119 +5240,LOSS,118 +5241,LOSS,114 +5242,LOSS,118 +5243,LOSS,106 +5244,WIN,115 +5245,LOSS,96 +5246,WIN,121 +5247,LOSS,106 +5248,WIN,107 +5249,LOSS,114 +5250,LOSS,118 +5251,WIN,101 +5252,LOSS,96 +5253,WIN,113 +5254,LOSS,116 +5255,LOSS,94 +5256,WIN,101 +5257,LOSS,112 +5258,LOSS,118 +5259,WIN,117 +5260,WIN,117 +5261,WIN,119 +5262,WIN,117 +5263,WIN,87 +5264,LOSS,116 +5265,LOSS,98 +5266,WIN,107 +5267,LOSS,120 +5268,WIN,97 +5269,LOSS,84 +5270,WIN,101 +5271,WIN,109 +5272,LOSS,116 +5273,LOSS,104 +5274,WIN,79 +5275,WIN,91 +5276,WIN,119 +5277,LOSS,110 +5278,WIN,113 +5279,WIN,119 +5280,WIN,113 +5281,LOSS,114 +5282,WIN,119 +5283,WIN,113 +5284,WIN,81 +5285,WIN,119 +5286,LOSS,116 +5287,WIN,107 +5288,WIN,117 +5289,WIN,115 +5290,LOSS,104 +5291,LOSS,104 +5292,WIN,113 +5293,LOSS,108 +5294,LOSS,112 +5295,LOSS,98 +5296,WIN,113 +5297,LOSS,100 +5298,WIN,115 +5299,LOSS,104 +5300,LOSS,120 +5301,WIN,69 +5302,LOSS,112 +5303,WIN,89 +5304,LOSS,118 +5305,WIN,117 +5306,WIN,109 +5307,LOSS,120 +5308,WIN,83 +5309,LOSS,92 +5310,WIN,87 +5311,LOSS,114 +5312,LOSS,108 +5313,WIN,111 +5314,LOSS,104 +5315,LOSS,114 +5316,WIN,105 +5317,WIN,121 +5318,WIN,99 +5319,LOSS,112 +5320,LOSS,100 +5321,LOSS,118 +5322,WIN,85 +5323,WIN,115 +5324,LOSS,108 +5325,WIN,117 +5326,WIN,103 +5327,WIN,121 +5328,WIN,95 +5329,WIN,111 +5330,LOSS,118 +5331,WIN,99 +5332,WIN,121 +5333,WIN,113 +5334,WIN,111 +5335,LOSS,118 +5336,LOSS,74 +5337,WIN,111 +5338,WIN,93 +5339,LOSS,100 +5340,WIN,117 +5341,WIN,111 +5342,WIN,111 +5343,LOSS,108 +5344,WIN,115 +5345,LOSS,104 +5346,WIN,113 +5347,WIN,113 +5348,LOSS,120 +5349,LOSS,112 +5350,WIN,103 +5351,LOSS,114 +5352,LOSS,116 +5353,WIN,71 +5354,WIN,121 +5355,WIN,99 +5356,LOSS,118 +5357,LOSS,116 +5358,LOSS,96 +5359,WIN,121 +5360,LOSS,118 +5361,LOSS,108 +5362,LOSS,110 +5363,WIN,103 +5364,WIN,111 +5365,LOSS,120 +5366,LOSS,114 +5367,WIN,109 +5368,WIN,115 +5369,WIN,101 +5370,WIN,87 +5371,WIN,115 +5372,LOSS,90 +5373,WIN,111 +5374,LOSS,116 +5375,LOSS,110 +5376,WIN,103 +5377,LOSS,118 +5378,LOSS,120 +5379,LOSS,86 +5380,LOSS,114 +5381,WIN,95 +5382,WIN,105 +5383,WIN,119 +5384,LOSS,108 +5385,WIN,113 +5386,LOSS,118 +5387,WIN,121 +5388,LOSS,100 +5389,WIN,121 +5390,LOSS,118 +5391,LOSS,110 +5392,WIN,117 +5393,LOSS,120 +5394,WIN,111 +5395,WIN,113 +5396,WIN,105 +5397,WIN,111 +5398,WIN,117 +5399,WIN,113 +5400,WIN,111 +5401,WIN,95 +5402,WIN,121 +5403,WIN,119 +5404,LOSS,108 +5405,LOSS,116 +5406,LOSS,120 +5407,LOSS,104 +5408,LOSS,116 +5409,WIN,107 +5410,WIN,93 +5411,LOSS,116 +5412,LOSS,92 +5413,WIN,109 +5414,WIN,109 +5415,LOSS,96 +5416,LOSS,110 +5417,WIN,111 +5418,WIN,115 +5419,WIN,121 +5420,WIN,117 +5421,WIN,113 +5422,WIN,115 +5423,WIN,109 +5424,WIN,113 +5425,LOSS,94 +5426,LOSS,110 +5427,WIN,121 +5428,LOSS,98 +5429,WIN,119 +5430,LOSS,98 +5431,LOSS,104 +5432,LOSS,116 +5433,WIN,107 +5434,WIN,95 +5435,LOSS,110 +5436,LOSS,104 +5437,WIN,69 +5438,WIN,93 +5439,WIN,113 +5440,LOSS,102 +5441,WIN,105 +5442,WIN,105 +5443,WIN,121 +5444,WIN,97 +5445,LOSS,112 +5446,WIN,119 +5447,LOSS,118 +5448,WIN,109 +5449,WIN,121 +5450,LOSS,100 +5451,LOSS,102 +5452,LOSS,118 +5453,LOSS,108 +5454,LOSS,120 +5455,WIN,97 +5456,LOSS,106 +5457,LOSS,110 +5458,WIN,99 +5459,WIN,105 +5460,WIN,99 +5461,LOSS,80 +5462,LOSS,108 +5463,LOSS,110 +5464,LOSS,104 +5465,LOSS,112 +5466,WIN,105 +5467,LOSS,120 +5468,WIN,87 +5469,LOSS,110 +5470,WIN,119 +5471,LOSS,92 +5472,LOSS,118 +5473,WIN,95 +5474,WIN,91 +5475,LOSS,116 +5476,WIN,117 +5477,WIN,103 +5478,WIN,115 +5479,WIN,99 +5480,LOSS,114 +5481,WIN,113 +5482,WIN,117 +5483,WIN,99 +5484,WIN,117 +5485,WIN,117 +5486,WIN,111 +5487,LOSS,110 +5488,WIN,69 +5489,LOSS,120 +5490,WIN,107 +5491,LOSS,118 +5492,LOSS,120 +5493,LOSS,114 +5494,WIN,113 +5495,WIN,119 +5496,LOSS,108 +5497,WIN,121 +5498,WIN,113 +5499,LOSS,110 +5500,WIN,111 +5501,WIN,117 +5502,LOSS,112 +5503,LOSS,116 +5504,WIN,113 +5505,LOSS,118 +5506,WIN,113 +5507,LOSS,102 +5508,LOSS,106 +5509,LOSS,106 +5510,WIN,101 +5511,WIN,115 +5512,WIN,119 +5513,WIN,97 +5514,WIN,109 +5515,WIN,95 +5516,WIN,107 +5517,LOSS,116 +5518,LOSS,102 +5519,WIN,113 +5520,LOSS,102 +5521,LOSS,106 +5522,LOSS,90 +5523,WIN,97 +5524,WIN,109 +5525,WIN,101 +5526,WIN,121 +5527,WIN,105 +5528,LOSS,100 +5529,WIN,111 +5530,WIN,101 +5531,LOSS,80 +5532,WIN,99 +5533,WIN,99 +5534,WIN,111 +5535,WIN,97 +5536,LOSS,82 +5537,LOSS,110 +5538,WIN,111 +5539,WIN,117 +5540,LOSS,102 +5541,LOSS,110 +5542,WIN,111 +5543,LOSS,108 +5544,WIN,113 +5545,LOSS,120 +5546,LOSS,96 +5547,WIN,121 +5548,LOSS,96 +5549,LOSS,106 +5550,LOSS,116 +5551,LOSS,94 +5552,WIN,93 +5553,WIN,121 +5554,LOSS,82 +5555,LOSS,78 +5556,LOSS,112 +5557,WIN,101 +5558,LOSS,102 +5559,WIN,115 +5560,WIN,109 +5561,WIN,121 +5562,WIN,99 +5563,WIN,117 +5564,LOSS,106 +5565,LOSS,120 +5566,LOSS,100 +5567,LOSS,120 +5568,LOSS,108 +5569,LOSS,118 +5570,WIN,105 +5571,WIN,111 +5572,WIN,103 +5573,WIN,101 +5574,LOSS,76 +5575,LOSS,104 +5576,LOSS,106 +5577,WIN,109 +5578,LOSS,116 +5579,WIN,111 +5580,LOSS,120 +5581,WIN,91 +5582,LOSS,102 +5583,WIN,105 +5584,LOSS,118 +5585,WIN,111 +5586,WIN,113 +5587,WIN,115 +5588,WIN,103 +5589,LOSS,110 +5590,LOSS,116 +5591,WIN,117 +5592,WIN,115 +5593,LOSS,106 +5594,WIN,107 +5595,WIN,111 +5596,LOSS,110 +5597,LOSS,114 +5598,WIN,119 +5599,WIN,99 +5600,LOSS,112 +5601,LOSS,96 +5602,WIN,113 +5603,LOSS,106 +5604,WIN,105 +5605,LOSS,112 +5606,WIN,109 +5607,WIN,119 +5608,WIN,103 +5609,LOSS,120 +5610,WIN,119 +5611,WIN,101 +5612,WIN,101 +5613,WIN,101 +5614,LOSS,110 +5615,LOSS,98 +5616,WIN,117 +5617,LOSS,100 +5618,WIN,117 +5619,WIN,91 +5620,WIN,103 +5621,WIN,83 +5622,LOSS,120 +5623,WIN,103 +5624,WIN,93 +5625,LOSS,114 +5626,LOSS,114 +5627,WIN,91 +5628,WIN,111 +5629,WIN,109 +5630,WIN,115 +5631,WIN,67 +5632,WIN,119 +5633,WIN,117 +5634,WIN,119 +5635,WIN,117 +5636,WIN,119 +5637,LOSS,120 +5638,LOSS,98 +5639,LOSS,110 +5640,LOSS,86 +5641,LOSS,114 +5642,LOSS,120 +5643,WIN,115 +5644,WIN,113 +5645,LOSS,114 +5646,LOSS,120 +5647,WIN,113 +5648,LOSS,120 +5649,LOSS,98 +5650,WIN,115 +5651,WIN,107 +5652,WIN,105 +5653,WIN,89 +5654,LOSS,114 +5655,WIN,115 +5656,LOSS,80 +5657,LOSS,114 +5658,LOSS,108 +5659,WIN,119 +5660,WIN,87 +5661,WIN,103 +5662,LOSS,120 +5663,LOSS,102 +5664,LOSS,114 +5665,LOSS,108 +5666,LOSS,112 +5667,WIN,119 +5668,LOSS,110 +5669,LOSS,120 +5670,WIN,109 +5671,LOSS,100 +5672,LOSS,114 +5673,WIN,119 +5674,WIN,95 +5675,WIN,119 +5676,WIN,121 +5677,WIN,103 +5678,LOSS,106 +5679,LOSS,96 +5680,WIN,121 +5681,WIN,117 +5682,LOSS,88 +5683,WIN,101 +5684,WIN,91 +5685,LOSS,114 +5686,WIN,115 +5687,WIN,109 +5688,WIN,121 +5689,LOSS,86 +5690,WIN,119 +5691,WIN,121 +5692,WIN,119 +5693,LOSS,116 +5694,WIN,119 +5695,WIN,121 +5696,WIN,99 +5697,LOSS,118 +5698,WIN,115 +5699,LOSS,120 +5700,WIN,103 +5701,LOSS,108 +5702,WIN,113 +5703,LOSS,108 +5704,LOSS,112 +5705,LOSS,112 +5706,WIN,93 +5707,LOSS,110 +5708,WIN,87 +5709,WIN,117 +5710,LOSS,108 +5711,WIN,121 +5712,LOSS,108 +5713,LOSS,114 +5714,WIN,117 +5715,WIN,113 +5716,LOSS,120 +5717,LOSS,106 +5718,WIN,117 +5719,LOSS,90 +5720,LOSS,110 +5721,WIN,83 +5722,LOSS,118 +5723,LOSS,104 +5724,LOSS,92 +5725,WIN,113 +5726,LOSS,118 +5727,WIN,121 +5728,WIN,103 +5729,WIN,95 +5730,LOSS,102 +5731,LOSS,84 +5732,LOSS,102 +5733,WIN,119 +5734,WIN,109 +5735,WIN,91 +5736,LOSS,108 +5737,WIN,117 +5738,LOSS,110 +5739,WIN,115 +5740,WIN,119 +5741,LOSS,100 +5742,LOSS,118 +5743,LOSS,120 +5744,WIN,119 +5745,WIN,115 +5746,LOSS,112 +5747,LOSS,88 +5748,LOSS,110 +5749,LOSS,102 +5750,LOSS,112 +5751,WIN,109 +5752,WIN,119 +5753,WIN,103 +5754,LOSS,120 +5755,LOSS,118 +5756,LOSS,118 +5757,WIN,101 +5758,WIN,121 +5759,WIN,101 +5760,WIN,119 +5761,WIN,117 +5762,LOSS,90 +5763,LOSS,118 +5764,LOSS,88 +5765,LOSS,112 +5766,LOSS,110 +5767,LOSS,90 +5768,WIN,115 +5769,LOSS,112 +5770,LOSS,108 +5771,LOSS,92 +5772,WIN,115 +5773,LOSS,94 +5774,WIN,117 +5775,LOSS,112 +5776,LOSS,120 +5777,WIN,113 +5778,LOSS,100 +5779,LOSS,112 +5780,WIN,115 +5781,LOSS,110 +5782,WIN,117 +5783,LOSS,120 +5784,LOSS,112 +5785,LOSS,80 +5786,LOSS,118 +5787,WIN,115 +5788,WIN,101 +5789,WIN,97 +5790,LOSS,100 +5791,WIN,107 +5792,LOSS,106 +5793,WIN,103 +5794,LOSS,120 +5795,LOSS,106 +5796,WIN,95 +5797,WIN,107 +5798,LOSS,118 +5799,LOSS,120 +5800,WIN,119 +5801,WIN,121 +5802,WIN,107 +5803,LOSS,112 +5804,WIN,103 +5805,WIN,113 +5806,WIN,119 +5807,LOSS,96 +5808,WIN,119 +5809,WIN,119 +5810,WIN,111 +5811,WIN,119 +5812,WIN,113 +5813,WIN,105 +5814,LOSS,112 +5815,LOSS,90 +5816,LOSS,118 +5817,WIN,113 +5818,WIN,119 +5819,WIN,119 +5820,WIN,97 +5821,WIN,89 +5822,LOSS,114 +5823,WIN,121 +5824,WIN,115 +5825,LOSS,110 +5826,LOSS,86 +5827,WIN,115 +5828,WIN,87 +5829,LOSS,100 +5830,LOSS,116 +5831,WIN,105 +5832,LOSS,104 +5833,LOSS,116 +5834,WIN,97 +5835,LOSS,106 +5836,WIN,105 +5837,WIN,119 +5838,LOSS,114 +5839,WIN,115 +5840,WIN,119 +5841,LOSS,116 +5842,LOSS,94 +5843,WIN,107 +5844,LOSS,118 +5845,WIN,119 +5846,LOSS,102 +5847,LOSS,118 +5848,LOSS,110 +5849,LOSS,110 +5850,WIN,119 +5851,LOSS,104 +5852,LOSS,116 +5853,LOSS,116 +5854,WIN,113 +5855,WIN,121 +5856,WIN,115 +5857,WIN,99 +5858,WIN,97 +5859,LOSS,82 +5860,LOSS,108 +5861,LOSS,112 +5862,WIN,121 +5863,LOSS,118 +5864,WIN,115 +5865,LOSS,112 +5866,LOSS,96 +5867,LOSS,108 +5868,WIN,111 +5869,LOSS,120 +5870,WIN,113 +5871,WIN,113 +5872,LOSS,98 +5873,LOSS,114 +5874,WIN,119 +5875,LOSS,116 +5876,WIN,105 +5877,WIN,99 +5878,WIN,121 +5879,WIN,101 +5880,LOSS,100 +5881,LOSS,120 +5882,LOSS,108 +5883,WIN,121 +5884,WIN,119 +5885,LOSS,116 +5886,LOSS,116 +5887,WIN,97 +5888,WIN,115 +5889,WIN,95 +5890,WIN,95 +5891,LOSS,116 +5892,LOSS,116 +5893,WIN,113 +5894,LOSS,112 +5895,WIN,113 +5896,WIN,115 +5897,LOSS,118 +5898,LOSS,116 +5899,LOSS,112 +5900,WIN,107 +5901,WIN,113 +5902,LOSS,94 +5903,WIN,103 +5904,LOSS,92 +5905,LOSS,106 +5906,LOSS,96 +5907,WIN,103 +5908,LOSS,98 +5909,WIN,75 +5910,LOSS,112 +5911,LOSS,120 +5912,WIN,121 +5913,WIN,119 +5914,WIN,105 +5915,LOSS,112 +5916,WIN,105 +5917,LOSS,112 +5918,WIN,119 +5919,WIN,115 +5920,WIN,101 +5921,LOSS,120 +5922,WIN,95 +5923,LOSS,108 +5924,LOSS,118 +5925,LOSS,110 +5926,LOSS,116 +5927,WIN,115 +5928,LOSS,116 +5929,LOSS,102 +5930,LOSS,116 +5931,LOSS,102 +5932,WIN,113 +5933,WIN,97 +5934,WIN,113 +5935,WIN,105 +5936,LOSS,118 +5937,LOSS,120 +5938,LOSS,102 +5939,WIN,115 +5940,LOSS,120 +5941,WIN,121 +5942,WIN,119 +5943,WIN,117 +5944,WIN,119 +5945,WIN,111 +5946,WIN,113 +5947,LOSS,106 +5948,WIN,105 +5949,WIN,103 +5950,WIN,103 +5951,LOSS,106 +5952,WIN,119 +5953,WIN,85 +5954,LOSS,118 +5955,LOSS,110 +5956,LOSS,92 +5957,WIN,121 +5958,WIN,83 +5959,WIN,117 +5960,LOSS,98 +5961,WIN,121 +5962,LOSS,108 +5963,LOSS,112 +5964,LOSS,96 +5965,WIN,119 +5966,LOSS,112 +5967,WIN,103 +5968,LOSS,86 +5969,LOSS,112 +5970,WIN,99 +5971,WIN,119 +5972,LOSS,118 +5973,LOSS,116 +5974,WIN,101 +5975,WIN,113 +5976,LOSS,120 +5977,WIN,101 +5978,LOSS,112 +5979,WIN,117 +5980,LOSS,92 +5981,LOSS,110 +5982,LOSS,106 +5983,WIN,117 +5984,WIN,119 +5985,LOSS,98 +5986,LOSS,112 +5987,WIN,115 +5988,WIN,119 +5989,LOSS,112 +5990,WIN,85 +5991,LOSS,92 +5992,LOSS,102 +5993,WIN,85 +5994,WIN,113 +5995,LOSS,116 +5996,WIN,119 +5997,WIN,115 +5998,WIN,119 +5999,WIN,109 +6000,WIN,113 +6001,WIN,115 +6002,WIN,119 +6003,LOSS,118 +6004,LOSS,110 +6005,WIN,119 +6006,LOSS,116 +6007,LOSS,116 +6008,WIN,103 +6009,LOSS,112 +6010,WIN,115 +6011,WIN,109 +6012,LOSS,106 +6013,LOSS,116 +6014,LOSS,112 +6015,WIN,121 +6016,WIN,115 +6017,WIN,99 +6018,WIN,117 +6019,WIN,117 +6020,LOSS,118 +6021,WIN,115 +6022,WIN,107 +6023,LOSS,116 +6024,WIN,115 +6025,WIN,109 +6026,LOSS,88 +6027,WIN,121 +6028,LOSS,90 +6029,WIN,115 +6030,LOSS,98 +6031,WIN,111 +6032,WIN,105 +6033,WIN,99 +6034,LOSS,118 +6035,WIN,83 +6036,WIN,119 +6037,LOSS,106 +6038,LOSS,94 +6039,LOSS,116 +6040,WIN,105 +6041,LOSS,94 +6042,WIN,111 +6043,LOSS,116 +6044,LOSS,108 +6045,WIN,103 +6046,LOSS,94 +6047,LOSS,88 +6048,WIN,117 +6049,WIN,101 +6050,LOSS,116 +6051,WIN,113 +6052,WIN,93 +6053,LOSS,90 +6054,LOSS,112 +6055,WIN,113 +6056,WIN,109 +6057,LOSS,110 +6058,WIN,89 +6059,WIN,95 +6060,LOSS,84 +6061,LOSS,116 +6062,LOSS,100 +6063,LOSS,108 +6064,LOSS,110 +6065,WIN,89 +6066,WIN,117 +6067,LOSS,118 +6068,WIN,103 +6069,WIN,115 +6070,WIN,115 +6071,LOSS,120 +6072,WIN,117 +6073,WIN,101 +6074,LOSS,116 +6075,LOSS,94 +6076,WIN,117 +6077,WIN,87 +6078,LOSS,114 +6079,WIN,99 +6080,WIN,111 +6081,WIN,91 +6082,WIN,89 +6083,WIN,87 +6084,LOSS,108 +6085,WIN,113 +6086,WIN,103 +6087,LOSS,80 +6088,LOSS,114 +6089,WIN,119 +6090,LOSS,118 +6091,LOSS,104 +6092,WIN,113 +6093,WIN,101 +6094,LOSS,116 +6095,WIN,117 +6096,LOSS,118 +6097,LOSS,118 +6098,WIN,119 +6099,WIN,111 +6100,WIN,93 +6101,WIN,105 +6102,LOSS,106 +6103,WIN,119 +6104,WIN,97 +6105,WIN,83 +6106,WIN,117 +6107,WIN,117 +6108,WIN,119 +6109,WIN,103 +6110,WIN,101 +6111,WIN,121 +6112,WIN,115 +6113,WIN,119 +6114,WIN,119 +6115,WIN,103 +6116,WIN,89 +6117,WIN,117 +6118,WIN,115 +6119,WIN,105 +6120,LOSS,100 +6121,LOSS,106 +6122,LOSS,102 +6123,LOSS,84 +6124,WIN,99 +6125,WIN,103 +6126,LOSS,102 +6127,WIN,105 +6128,LOSS,98 +6129,LOSS,84 +6130,LOSS,112 +6131,WIN,101 +6132,WIN,117 +6133,LOSS,100 +6134,LOSS,112 +6135,LOSS,100 +6136,WIN,111 +6137,LOSS,114 +6138,WIN,95 +6139,LOSS,106 +6140,LOSS,102 +6141,WIN,91 +6142,LOSS,112 +6143,LOSS,94 +6144,LOSS,86 +6145,WIN,101 +6146,LOSS,76 +6147,LOSS,104 +6148,LOSS,106 +6149,WIN,111 +6150,WIN,121 +6151,LOSS,118 +6152,WIN,121 +6153,WIN,109 +6154,LOSS,114 +6155,WIN,97 +6156,WIN,115 +6157,LOSS,110 +6158,LOSS,104 +6159,WIN,117 +6160,LOSS,108 +6161,WIN,115 +6162,LOSS,88 +6163,WIN,117 +6164,WIN,107 +6165,WIN,121 +6166,LOSS,114 +6167,LOSS,120 +6168,WIN,85 +6169,LOSS,82 +6170,LOSS,110 +6171,LOSS,100 +6172,WIN,85 +6173,WIN,93 +6174,LOSS,110 +6175,LOSS,120 +6176,LOSS,102 +6177,WIN,105 +6178,LOSS,66 +6179,LOSS,86 +6180,WIN,97 +6181,WIN,109 +6182,WIN,109 +6183,LOSS,120 +6184,LOSS,88 +6185,LOSS,92 +6186,LOSS,108 +6187,LOSS,118 +6188,WIN,95 +6189,WIN,101 +6190,LOSS,88 +6191,WIN,119 +6192,LOSS,80 +6193,LOSS,114 +6194,LOSS,102 +6195,WIN,119 +6196,WIN,111 +6197,LOSS,80 +6198,LOSS,106 +6199,WIN,101 +6200,WIN,119 +6201,WIN,111 +6202,WIN,121 +6203,LOSS,102 +6204,WIN,95 +6205,WIN,111 +6206,WIN,101 +6207,WIN,89 +6208,LOSS,116 +6209,WIN,97 +6210,WIN,97 +6211,WIN,97 +6212,LOSS,98 +6213,LOSS,102 +6214,LOSS,120 +6215,LOSS,88 +6216,WIN,117 +6217,LOSS,110 +6218,LOSS,112 +6219,LOSS,120 +6220,WIN,93 +6221,LOSS,112 +6222,WIN,91 +6223,WIN,111 +6224,LOSS,112 +6225,WIN,117 +6226,LOSS,86 +6227,LOSS,112 +6228,WIN,107 +6229,LOSS,118 +6230,WIN,117 +6231,WIN,97 +6232,WIN,117 +6233,WIN,101 +6234,LOSS,94 +6235,WIN,91 +6236,WIN,107 +6237,WIN,103 +6238,WIN,121 +6239,WIN,103 +6240,LOSS,100 +6241,WIN,89 +6242,WIN,109 +6243,LOSS,110 +6244,LOSS,112 +6245,LOSS,94 +6246,WIN,107 +6247,WIN,97 +6248,LOSS,112 +6249,LOSS,102 +6250,LOSS,118 +6251,LOSS,120 +6252,LOSS,106 +6253,LOSS,106 +6254,WIN,119 +6255,WIN,87 +6256,WIN,109 +6257,WIN,103 +6258,LOSS,116 +6259,LOSS,118 +6260,LOSS,118 +6261,LOSS,108 +6262,LOSS,114 +6263,LOSS,110 +6264,LOSS,104 +6265,WIN,107 +6266,LOSS,116 +6267,WIN,107 +6268,WIN,101 +6269,WIN,119 +6270,WIN,115 +6271,WIN,111 +6272,WIN,115 +6273,WIN,107 +6274,WIN,113 +6275,WIN,105 +6276,WIN,119 +6277,WIN,115 +6278,LOSS,108 +6279,WIN,121 +6280,WIN,105 +6281,WIN,109 +6282,WIN,105 +6283,WIN,101 +6284,LOSS,104 +6285,LOSS,116 +6286,WIN,119 +6287,WIN,75 +6288,LOSS,94 +6289,WIN,117 +6290,WIN,111 +6291,LOSS,114 +6292,LOSS,118 +6293,LOSS,108 +6294,LOSS,118 +6295,WIN,121 +6296,LOSS,116 +6297,LOSS,118 +6298,LOSS,108 +6299,WIN,117 +6300,LOSS,86 +6301,WIN,119 +6302,LOSS,112 +6303,LOSS,116 +6304,LOSS,110 +6305,LOSS,118 +6306,WIN,75 +6307,WIN,97 +6308,LOSS,118 +6309,WIN,99 +6310,WIN,113 +6311,LOSS,98 +6312,LOSS,94 +6313,WIN,103 +6314,LOSS,102 +6315,LOSS,110 +6316,WIN,103 +6317,WIN,99 +6318,LOSS,112 +6319,WIN,107 +6320,WIN,115 +6321,LOSS,66 +6322,LOSS,120 +6323,WIN,115 +6324,LOSS,112 +6325,WIN,111 +6326,WIN,109 +6327,WIN,119 +6328,LOSS,108 +6329,LOSS,112 +6330,WIN,105 +6331,LOSS,106 +6332,LOSS,102 +6333,WIN,111 +6334,WIN,111 +6335,LOSS,120 +6336,WIN,109 +6337,LOSS,108 +6338,WIN,105 +6339,LOSS,118 +6340,WIN,107 +6341,LOSS,112 +6342,WIN,119 +6343,WIN,117 +6344,WIN,119 +6345,WIN,83 +6346,WIN,117 +6347,WIN,109 +6348,WIN,81 +6349,WIN,115 +6350,WIN,103 +6351,LOSS,110 +6352,WIN,97 +6353,LOSS,108 +6354,WIN,99 +6355,WIN,121 +6356,WIN,103 +6357,WIN,105 +6358,LOSS,120 +6359,WIN,115 +6360,LOSS,100 +6361,WIN,111 +6362,WIN,119 +6363,WIN,115 +6364,WIN,121 +6365,WIN,105 +6366,LOSS,118 +6367,LOSS,94 +6368,LOSS,106 +6369,LOSS,118 +6370,WIN,109 +6371,WIN,115 +6372,LOSS,110 +6373,LOSS,112 +6374,WIN,119 +6375,WIN,95 +6376,WIN,99 +6377,LOSS,88 +6378,WIN,111 +6379,LOSS,90 +6380,WIN,107 +6381,LOSS,106 +6382,WIN,103 +6383,LOSS,112 +6384,WIN,103 +6385,WIN,115 +6386,LOSS,106 +6387,WIN,87 +6388,LOSS,114 +6389,LOSS,102 +6390,LOSS,118 +6391,WIN,117 +6392,LOSS,104 +6393,LOSS,80 +6394,WIN,93 +6395,LOSS,92 +6396,LOSS,100 +6397,WIN,117 +6398,WIN,111 +6399,WIN,121 +6400,LOSS,118 +6401,WIN,87 +6402,LOSS,118 +6403,WIN,115 +6404,WIN,111 +6405,LOSS,100 +6406,LOSS,102 +6407,LOSS,114 +6408,WIN,103 +6409,LOSS,80 +6410,WIN,111 +6411,WIN,113 +6412,LOSS,106 +6413,WIN,107 +6414,LOSS,100 +6415,WIN,115 +6416,LOSS,114 +6417,WIN,111 +6418,WIN,97 +6419,WIN,109 +6420,WIN,103 +6421,WIN,111 +6422,LOSS,120 +6423,LOSS,96 +6424,WIN,97 +6425,WIN,113 +6426,WIN,119 +6427,LOSS,110 +6428,WIN,109 +6429,LOSS,98 +6430,LOSS,110 +6431,LOSS,114 +6432,LOSS,114 +6433,WIN,91 +6434,LOSS,102 +6435,WIN,101 +6436,WIN,115 +6437,WIN,115 +6438,WIN,95 +6439,WIN,101 +6440,WIN,117 +6441,WIN,113 +6442,WIN,111 +6443,WIN,107 +6444,LOSS,88 +6445,WIN,109 +6446,WIN,115 +6447,WIN,111 +6448,WIN,113 +6449,WIN,93 +6450,WIN,107 +6451,LOSS,118 +6452,LOSS,102 +6453,LOSS,104 +6454,WIN,111 +6455,WIN,115 +6456,WIN,113 +6457,WIN,93 +6458,LOSS,98 +6459,WIN,111 +6460,WIN,101 +6461,WIN,119 +6462,WIN,97 +6463,WIN,119 +6464,WIN,105 +6465,WIN,117 +6466,LOSS,116 +6467,WIN,103 +6468,LOSS,96 +6469,LOSS,110 +6470,WIN,85 +6471,LOSS,118 +6472,LOSS,102 +6473,WIN,109 +6474,WIN,113 +6475,LOSS,110 +6476,WIN,109 +6477,WIN,85 +6478,WIN,103 +6479,LOSS,120 +6480,LOSS,118 +6481,WIN,103 +6482,LOSS,108 +6483,WIN,117 +6484,WIN,115 +6485,WIN,109 +6486,LOSS,96 +6487,LOSS,116 +6488,WIN,117 +6489,LOSS,80 +6490,LOSS,98 +6491,WIN,117 +6492,WIN,97 +6493,WIN,119 +6494,LOSS,66 +6495,WIN,111 +6496,WIN,81 +6497,WIN,105 +6498,LOSS,110 +6499,LOSS,104 +6500,LOSS,98 +6501,LOSS,108 +6502,LOSS,112 +6503,WIN,117 +6504,WIN,115 +6505,LOSS,108 +6506,WIN,113 +6507,LOSS,108 +6508,LOSS,118 +6509,LOSS,108 +6510,WIN,103 +6511,LOSS,108 +6512,WIN,101 +6513,WIN,103 +6514,LOSS,102 +6515,WIN,101 +6516,WIN,119 +6517,LOSS,112 +6518,WIN,99 +6519,LOSS,90 +6520,LOSS,120 +6521,LOSS,88 +6522,LOSS,116 +6523,WIN,119 +6524,LOSS,120 +6525,WIN,105 +6526,WIN,103 +6527,WIN,101 +6528,LOSS,110 +6529,LOSS,108 +6530,LOSS,90 +6531,LOSS,114 +6532,WIN,113 +6533,WIN,109 +6534,LOSS,100 +6535,WIN,117 +6536,LOSS,114 +6537,WIN,109 +6538,WIN,95 +6539,WIN,103 +6540,LOSS,82 +6541,LOSS,96 +6542,LOSS,120 +6543,WIN,111 +6544,LOSS,110 +6545,WIN,115 +6546,LOSS,94 +6547,LOSS,102 +6548,LOSS,88 +6549,WIN,121 +6550,LOSS,114 +6551,LOSS,86 +6552,WIN,113 +6553,WIN,101 +6554,LOSS,98 +6555,WIN,121 +6556,WIN,85 +6557,WIN,69 +6558,WIN,113 +6559,WIN,93 +6560,WIN,105 +6561,LOSS,84 +6562,LOSS,120 +6563,WIN,77 +6564,LOSS,94 +6565,WIN,105 +6566,WIN,119 +6567,WIN,101 +6568,WIN,101 +6569,LOSS,80 +6570,WIN,111 +6571,WIN,119 +6572,LOSS,114 +6573,WIN,97 +6574,LOSS,108 +6575,LOSS,92 +6576,LOSS,112 +6577,LOSS,110 +6578,WIN,107 +6579,WIN,105 +6580,LOSS,112 +6581,WIN,115 +6582,WIN,115 +6583,LOSS,80 +6584,WIN,105 +6585,LOSS,110 +6586,LOSS,114 +6587,LOSS,112 +6588,LOSS,94 +6589,WIN,101 +6590,WIN,111 +6591,LOSS,110 +6592,WIN,73 +6593,WIN,99 +6594,LOSS,118 +6595,WIN,107 +6596,WIN,121 +6597,LOSS,118 +6598,LOSS,114 +6599,WIN,119 +6600,WIN,117 +6601,LOSS,98 +6602,WIN,89 +6603,LOSS,120 +6604,WIN,101 +6605,LOSS,110 +6606,LOSS,110 +6607,WIN,119 +6608,LOSS,114 +6609,WIN,117 +6610,LOSS,110 +6611,LOSS,114 +6612,WIN,99 +6613,LOSS,118 +6614,LOSS,84 +6615,WIN,113 +6616,WIN,109 +6617,LOSS,116 +6618,LOSS,78 +6619,WIN,109 +6620,LOSS,98 +6621,WIN,109 +6622,WIN,77 +6623,WIN,119 +6624,WIN,115 +6625,LOSS,116 +6626,LOSS,120 +6627,WIN,85 +6628,LOSS,118 +6629,WIN,95 +6630,WIN,107 +6631,WIN,121 +6632,LOSS,120 +6633,LOSS,112 +6634,LOSS,96 +6635,WIN,113 +6636,WIN,111 +6637,WIN,89 +6638,WIN,115 +6639,LOSS,94 +6640,WIN,119 +6641,WIN,107 +6642,LOSS,112 +6643,WIN,121 +6644,WIN,109 +6645,WIN,109 +6646,LOSS,94 +6647,LOSS,116 +6648,LOSS,112 +6649,WIN,111 +6650,LOSS,108 +6651,LOSS,114 +6652,LOSS,90 +6653,LOSS,100 +6654,LOSS,116 +6655,LOSS,104 +6656,WIN,117 +6657,LOSS,98 +6658,LOSS,120 +6659,WIN,87 +6660,WIN,109 +6661,LOSS,90 +6662,LOSS,106 +6663,LOSS,104 +6664,WIN,97 +6665,LOSS,106 +6666,LOSS,94 +6667,LOSS,116 +6668,LOSS,114 +6669,LOSS,98 +6670,LOSS,96 +6671,WIN,95 +6672,WIN,105 +6673,WIN,111 +6674,LOSS,102 +6675,WIN,119 +6676,LOSS,102 +6677,WIN,117 +6678,LOSS,98 +6679,WIN,119 +6680,LOSS,110 +6681,WIN,107 +6682,LOSS,110 +6683,WIN,117 +6684,LOSS,104 +6685,WIN,115 +6686,LOSS,120 +6687,WIN,107 +6688,WIN,95 +6689,LOSS,118 +6690,WIN,119 +6691,WIN,111 +6692,LOSS,110 +6693,LOSS,110 +6694,LOSS,116 +6695,WIN,107 +6696,WIN,91 +6697,WIN,119 +6698,LOSS,84 +6699,LOSS,88 +6700,WIN,111 +6701,LOSS,110 +6702,LOSS,116 +6703,LOSS,108 +6704,WIN,119 +6705,WIN,105 +6706,WIN,115 +6707,WIN,117 +6708,LOSS,116 +6709,LOSS,112 +6710,LOSS,120 +6711,LOSS,90 +6712,LOSS,94 +6713,LOSS,120 +6714,WIN,75 +6715,WIN,107 +6716,WIN,117 +6717,WIN,107 +6718,WIN,97 +6719,WIN,109 +6720,LOSS,94 +6721,LOSS,100 +6722,LOSS,88 +6723,WIN,105 +6724,LOSS,106 +6725,LOSS,112 +6726,WIN,109 +6727,LOSS,98 +6728,LOSS,120 +6729,LOSS,106 +6730,WIN,121 +6731,WIN,121 +6732,WIN,119 +6733,WIN,113 +6734,LOSS,120 +6735,WIN,113 +6736,LOSS,104 +6737,LOSS,114 +6738,LOSS,112 +6739,WIN,121 +6740,LOSS,112 +6741,WIN,117 +6742,WIN,111 +6743,WIN,103 +6744,LOSS,104 +6745,LOSS,120 +6746,LOSS,84 +6747,WIN,113 +6748,LOSS,114 +6749,LOSS,110 +6750,WIN,103 +6751,WIN,119 +6752,WIN,101 +6753,WIN,117 +6754,LOSS,108 +6755,WIN,115 +6756,LOSS,118 +6757,WIN,103 +6758,WIN,115 +6759,LOSS,88 +6760,LOSS,96 +6761,WIN,107 +6762,LOSS,78 +6763,WIN,109 +6764,LOSS,104 +6765,LOSS,116 +6766,WIN,103 +6767,LOSS,116 +6768,LOSS,102 +6769,LOSS,114 +6770,WIN,93 +6771,LOSS,94 +6772,LOSS,120 +6773,WIN,119 +6774,LOSS,112 +6775,LOSS,114 +6776,WIN,117 +6777,WIN,115 +6778,WIN,115 +6779,LOSS,92 +6780,WIN,107 +6781,LOSS,94 +6782,WIN,121 +6783,WIN,113 +6784,WIN,109 +6785,LOSS,104 +6786,WIN,119 +6787,WIN,121 +6788,LOSS,116 +6789,WIN,103 +6790,WIN,115 +6791,WIN,107 +6792,LOSS,112 +6793,LOSS,90 +6794,LOSS,118 +6795,WIN,67 +6796,WIN,109 +6797,LOSS,118 +6798,WIN,113 +6799,WIN,109 +6800,LOSS,106 +6801,LOSS,104 +6802,LOSS,102 +6803,LOSS,114 +6804,LOSS,110 +6805,WIN,113 +6806,WIN,117 +6807,WIN,101 +6808,WIN,107 +6809,WIN,101 +6810,LOSS,112 +6811,WIN,109 +6812,LOSS,108 +6813,LOSS,114 +6814,WIN,119 +6815,WIN,121 +6816,LOSS,120 +6817,WIN,115 +6818,WIN,101 +6819,LOSS,116 +6820,WIN,107 +6821,WIN,105 +6822,LOSS,74 +6823,WIN,91 +6824,WIN,121 +6825,WIN,121 +6826,LOSS,120 +6827,WIN,105 +6828,LOSS,110 +6829,LOSS,116 +6830,WIN,109 +6831,LOSS,92 +6832,WIN,107 +6833,LOSS,108 +6834,LOSS,112 +6835,LOSS,78 +6836,WIN,91 +6837,LOSS,98 +6838,LOSS,104 +6839,LOSS,100 +6840,WIN,107 +6841,LOSS,112 +6842,WIN,103 +6843,WIN,121 +6844,WIN,121 +6845,LOSS,106 +6846,WIN,87 +6847,LOSS,110 +6848,LOSS,104 +6849,LOSS,114 +6850,LOSS,114 +6851,LOSS,86 +6852,WIN,117 +6853,LOSS,90 +6854,LOSS,120 +6855,WIN,121 +6856,LOSS,114 +6857,WIN,105 +6858,LOSS,104 +6859,LOSS,108 +6860,LOSS,116 +6861,WIN,101 +6862,LOSS,116 +6863,WIN,113 +6864,WIN,119 +6865,WIN,115 +6866,WIN,89 +6867,WIN,111 +6868,WIN,107 +6869,WIN,93 +6870,WIN,101 +6871,WIN,105 +6872,LOSS,114 +6873,WIN,117 +6874,LOSS,114 +6875,WIN,111 +6876,WIN,97 +6877,WIN,119 +6878,WIN,93 +6879,LOSS,84 +6880,WIN,111 +6881,LOSS,112 +6882,LOSS,120 +6883,LOSS,92 +6884,WIN,91 +6885,LOSS,108 +6886,LOSS,118 +6887,LOSS,106 +6888,WIN,99 +6889,WIN,111 +6890,LOSS,114 +6891,WIN,79 +6892,LOSS,118 +6893,WIN,103 +6894,WIN,93 +6895,WIN,119 +6896,WIN,83 +6897,LOSS,72 +6898,WIN,115 +6899,LOSS,114 +6900,WIN,121 +6901,WIN,107 +6902,WIN,119 +6903,LOSS,102 +6904,WIN,107 +6905,LOSS,118 +6906,WIN,79 +6907,LOSS,104 +6908,WIN,107 +6909,WIN,109 +6910,WIN,97 +6911,WIN,113 +6912,LOSS,120 +6913,WIN,119 +6914,WIN,83 +6915,LOSS,112 +6916,LOSS,104 +6917,LOSS,94 +6918,WIN,121 +6919,WIN,101 +6920,LOSS,120 +6921,WIN,115 +6922,LOSS,104 +6923,WIN,113 +6924,WIN,115 +6925,WIN,87 +6926,LOSS,112 +6927,LOSS,114 +6928,WIN,93 +6929,LOSS,96 +6930,WIN,117 +6931,LOSS,106 +6932,LOSS,92 +6933,LOSS,120 +6934,WIN,121 +6935,LOSS,102 +6936,WIN,119 +6937,WIN,119 +6938,LOSS,110 +6939,LOSS,114 +6940,WIN,115 +6941,WIN,103 +6942,LOSS,116 +6943,LOSS,102 +6944,LOSS,114 +6945,LOSS,118 +6946,WIN,107 +6947,WIN,81 +6948,WIN,101 +6949,WIN,105 +6950,LOSS,104 +6951,WIN,99 +6952,WIN,103 +6953,WIN,117 +6954,LOSS,84 +6955,LOSS,108 +6956,LOSS,100 +6957,LOSS,108 +6958,LOSS,116 +6959,WIN,115 +6960,WIN,119 +6961,LOSS,100 +6962,WIN,113 +6963,WIN,121 +6964,WIN,121 +6965,LOSS,108 +6966,WIN,105 +6967,WIN,115 +6968,WIN,81 +6969,WIN,113 +6970,WIN,109 +6971,LOSS,112 +6972,LOSS,116 +6973,WIN,119 +6974,LOSS,116 +6975,LOSS,90 +6976,LOSS,116 +6977,LOSS,112 +6978,LOSS,118 +6979,WIN,115 +6980,WIN,105 +6981,WIN,93 +6982,LOSS,118 +6983,WIN,121 +6984,WIN,111 +6985,LOSS,106 +6986,LOSS,118 +6987,WIN,109 +6988,WIN,117 +6989,LOSS,110 +6990,WIN,121 +6991,LOSS,98 +6992,LOSS,104 +6993,LOSS,116 +6994,WIN,107 +6995,WIN,93 +6996,LOSS,94 +6997,LOSS,114 +6998,LOSS,88 +6999,WIN,109 +7000,WIN,121 +7001,LOSS,106 +7002,LOSS,100 +7003,WIN,111 +7004,WIN,117 +7005,WIN,119 +7006,LOSS,120 +7007,WIN,117 +7008,WIN,107 +7009,WIN,105 +7010,LOSS,94 +7011,LOSS,82 +7012,LOSS,104 +7013,WIN,119 +7014,LOSS,102 +7015,WIN,87 +7016,LOSS,104 +7017,LOSS,110 +7018,WIN,119 +7019,LOSS,76 +7020,LOSS,84 +7021,LOSS,120 +7022,WIN,117 +7023,WIN,91 +7024,WIN,111 +7025,LOSS,114 +7026,WIN,103 +7027,LOSS,118 +7028,WIN,105 +7029,WIN,109 +7030,WIN,113 +7031,LOSS,98 +7032,WIN,89 +7033,LOSS,110 +7034,WIN,119 +7035,LOSS,114 +7036,WIN,85 +7037,WIN,109 +7038,WIN,105 +7039,WIN,115 +7040,WIN,93 +7041,LOSS,116 +7042,WIN,119 +7043,LOSS,104 +7044,WIN,109 +7045,LOSS,102 +7046,WIN,107 +7047,LOSS,96 +7048,LOSS,96 +7049,WIN,111 +7050,WIN,101 +7051,WIN,89 +7052,LOSS,112 +7053,LOSS,118 +7054,WIN,105 +7055,LOSS,94 +7056,LOSS,112 +7057,WIN,105 +7058,WIN,103 +7059,LOSS,120 +7060,LOSS,102 +7061,LOSS,104 +7062,WIN,107 +7063,LOSS,120 +7064,WIN,111 +7065,LOSS,108 +7066,LOSS,74 +7067,LOSS,112 +7068,LOSS,92 +7069,LOSS,118 +7070,WIN,101 +7071,WIN,121 +7072,WIN,71 +7073,LOSS,76 +7074,LOSS,118 +7075,WIN,93 +7076,LOSS,110 +7077,LOSS,114 +7078,WIN,115 +7079,LOSS,118 +7080,WIN,105 +7081,LOSS,104 +7082,WIN,113 +7083,LOSS,120 +7084,WIN,115 +7085,WIN,121 +7086,LOSS,96 +7087,WIN,109 +7088,WIN,119 +7089,LOSS,88 +7090,LOSS,106 +7091,WIN,121 +7092,WIN,103 +7093,LOSS,112 +7094,LOSS,88 +7095,WIN,95 +7096,LOSS,116 +7097,WIN,105 +7098,WIN,89 +7099,LOSS,110 +7100,WIN,113 +7101,LOSS,106 +7102,WIN,95 +7103,WIN,119 +7104,LOSS,114 +7105,LOSS,108 +7106,WIN,99 +7107,LOSS,110 +7108,WIN,119 +7109,LOSS,114 +7110,WIN,121 +7111,WIN,87 +7112,WIN,107 +7113,WIN,81 +7114,LOSS,88 +7115,WIN,111 +7116,WIN,87 +7117,WIN,115 +7118,WIN,113 +7119,WIN,117 +7120,WIN,121 +7121,WIN,119 +7122,WIN,77 +7123,LOSS,114 +7124,LOSS,104 +7125,WIN,99 +7126,LOSS,108 +7127,LOSS,114 +7128,WIN,117 +7129,LOSS,116 +7130,LOSS,106 +7131,WIN,117 +7132,WIN,105 +7133,LOSS,120 +7134,LOSS,114 +7135,LOSS,98 +7136,LOSS,90 +7137,WIN,99 +7138,WIN,111 +7139,WIN,117 +7140,LOSS,106 +7141,WIN,111 +7142,WIN,101 +7143,LOSS,112 +7144,WIN,113 +7145,LOSS,114 +7146,WIN,103 +7147,LOSS,120 +7148,WIN,113 +7149,WIN,85 +7150,WIN,107 +7151,WIN,105 +7152,WIN,109 +7153,WIN,113 +7154,WIN,119 +7155,WIN,111 +7156,WIN,111 +7157,WIN,119 +7158,WIN,121 +7159,WIN,115 +7160,LOSS,114 +7161,LOSS,110 +7162,WIN,95 +7163,LOSS,112 +7164,WIN,101 +7165,WIN,109 +7166,WIN,83 +7167,WIN,97 +7168,WIN,105 +7169,LOSS,102 +7170,LOSS,108 +7171,LOSS,118 +7172,LOSS,102 +7173,WIN,91 +7174,WIN,91 +7175,LOSS,116 +7176,LOSS,108 +7177,LOSS,104 +7178,WIN,103 +7179,LOSS,112 +7180,WIN,105 +7181,WIN,121 +7182,LOSS,114 +7183,LOSS,92 +7184,WIN,101 +7185,WIN,107 +7186,LOSS,80 +7187,LOSS,104 +7188,WIN,121 +7189,WIN,119 +7190,WIN,95 +7191,LOSS,112 +7192,WIN,111 +7193,LOSS,104 +7194,LOSS,102 +7195,LOSS,92 +7196,WIN,111 +7197,WIN,115 +7198,WIN,105 +7199,LOSS,114 +7200,WIN,117 +7201,LOSS,96 +7202,LOSS,108 +7203,WIN,91 +7204,LOSS,108 +7205,LOSS,118 +7206,LOSS,106 +7207,LOSS,114 +7208,WIN,117 +7209,LOSS,92 +7210,WIN,87 +7211,WIN,109 +7212,WIN,89 +7213,LOSS,116 +7214,WIN,107 +7215,WIN,121 +7216,LOSS,106 +7217,LOSS,98 +7218,WIN,95 +7219,LOSS,120 +7220,WIN,103 +7221,WIN,109 +7222,WIN,87 +7223,LOSS,116 +7224,WIN,81 +7225,WIN,81 +7226,WIN,107 +7227,WIN,75 +7228,WIN,113 +7229,WIN,117 +7230,WIN,89 +7231,LOSS,86 +7232,WIN,119 +7233,LOSS,114 +7234,WIN,113 +7235,WIN,113 +7236,WIN,117 +7237,WIN,93 +7238,LOSS,100 +7239,WIN,121 +7240,LOSS,110 +7241,WIN,121 +7242,LOSS,116 +7243,WIN,101 +7244,WIN,119 +7245,LOSS,118 +7246,LOSS,116 +7247,LOSS,90 +7248,WIN,87 +7249,LOSS,112 +7250,LOSS,116 +7251,WIN,111 +7252,LOSS,84 +7253,LOSS,98 +7254,LOSS,110 +7255,LOSS,112 +7256,WIN,115 +7257,LOSS,108 +7258,WIN,117 +7259,WIN,117 +7260,WIN,119 +7261,LOSS,118 +7262,WIN,89 +7263,WIN,101 +7264,LOSS,90 +7265,WIN,109 +7266,LOSS,88 +7267,WIN,111 +7268,WIN,99 +7269,LOSS,110 +7270,WIN,115 +7271,WIN,109 +7272,WIN,89 +7273,WIN,119 +7274,WIN,107 +7275,WIN,99 +7276,LOSS,120 +7277,WIN,105 +7278,WIN,117 +7279,WIN,103 +7280,LOSS,120 +7281,WIN,83 +7282,LOSS,106 +7283,LOSS,112 +7284,LOSS,106 +7285,LOSS,108 +7286,LOSS,74 +7287,WIN,109 +7288,LOSS,92 +7289,WIN,107 +7290,WIN,89 +7291,WIN,109 +7292,WIN,107 +7293,WIN,95 +7294,LOSS,110 +7295,LOSS,84 +7296,WIN,113 +7297,WIN,117 +7298,LOSS,120 +7299,LOSS,118 +7300,WIN,101 +7301,LOSS,92 +7302,LOSS,104 +7303,WIN,95 +7304,LOSS,104 +7305,WIN,109 +7306,LOSS,116 +7307,WIN,119 +7308,WIN,115 +7309,LOSS,108 +7310,WIN,107 +7311,LOSS,110 +7312,WIN,113 +7313,WIN,99 +7314,WIN,95 +7315,WIN,93 +7316,LOSS,120 +7317,WIN,107 +7318,WIN,81 +7319,LOSS,94 +7320,LOSS,104 +7321,WIN,83 +7322,WIN,113 +7323,LOSS,98 +7324,LOSS,110 +7325,LOSS,90 +7326,WIN,105 +7327,WIN,121 +7328,LOSS,96 +7329,LOSS,112 +7330,WIN,121 +7331,WIN,99 +7332,LOSS,116 +7333,LOSS,104 +7334,WIN,105 +7335,LOSS,114 +7336,WIN,101 +7337,LOSS,118 +7338,LOSS,112 +7339,LOSS,110 +7340,LOSS,112 +7341,WIN,113 +7342,WIN,87 +7343,WIN,115 +7344,WIN,105 +7345,WIN,121 +7346,LOSS,120 +7347,WIN,121 +7348,WIN,117 +7349,WIN,115 +7350,LOSS,102 +7351,LOSS,116 +7352,WIN,105 +7353,LOSS,112 +7354,LOSS,118 +7355,WIN,103 +7356,LOSS,108 +7357,WIN,87 +7358,WIN,105 +7359,WIN,107 +7360,WIN,119 +7361,LOSS,88 +7362,LOSS,102 +7363,LOSS,116 +7364,WIN,119 +7365,WIN,107 +7366,WIN,115 +7367,WIN,113 +7368,WIN,113 +7369,WIN,113 +7370,LOSS,108 +7371,WIN,103 +7372,LOSS,100 +7373,WIN,115 +7374,WIN,105 +7375,LOSS,120 +7376,WIN,85 +7377,WIN,111 +7378,LOSS,94 +7379,LOSS,110 +7380,WIN,113 +7381,LOSS,118 +7382,WIN,103 +7383,WIN,97 +7384,LOSS,112 +7385,LOSS,106 +7386,LOSS,116 +7387,WIN,105 +7388,LOSS,110 +7389,LOSS,90 +7390,LOSS,102 +7391,WIN,119 +7392,LOSS,112 +7393,LOSS,106 +7394,WIN,115 +7395,WIN,103 +7396,LOSS,104 +7397,LOSS,100 +7398,WIN,115 +7399,LOSS,108 +7400,WIN,115 +7401,WIN,111 +7402,LOSS,114 +7403,WIN,107 +7404,WIN,117 +7405,WIN,105 +7406,WIN,107 +7407,LOSS,100 +7408,LOSS,118 +7409,LOSS,110 +7410,LOSS,102 +7411,WIN,117 +7412,WIN,107 +7413,WIN,103 +7414,WIN,97 +7415,LOSS,76 +7416,WIN,117 +7417,WIN,105 +7418,WIN,111 +7419,WIN,75 +7420,LOSS,114 +7421,LOSS,114 +7422,WIN,93 +7423,WIN,109 +7424,WIN,93 +7425,WIN,115 +7426,WIN,121 +7427,WIN,119 +7428,LOSS,112 +7429,LOSS,120 +7430,LOSS,106 +7431,LOSS,116 +7432,WIN,117 +7433,WIN,103 +7434,WIN,107 +7435,LOSS,120 +7436,WIN,99 +7437,LOSS,104 +7438,WIN,113 +7439,WIN,111 +7440,WIN,121 +7441,WIN,103 +7442,WIN,113 +7443,WIN,89 +7444,LOSS,102 +7445,LOSS,104 +7446,WIN,117 +7447,LOSS,88 +7448,LOSS,106 +7449,LOSS,102 +7450,LOSS,98 +7451,WIN,121 +7452,WIN,105 +7453,WIN,115 +7454,LOSS,116 +7455,LOSS,116 +7456,WIN,121 +7457,LOSS,106 +7458,LOSS,118 +7459,WIN,119 +7460,WIN,83 +7461,LOSS,94 +7462,LOSS,114 +7463,WIN,91 +7464,WIN,107 +7465,WIN,99 +7466,LOSS,118 +7467,WIN,101 +7468,WIN,107 +7469,WIN,105 +7470,LOSS,88 +7471,LOSS,104 +7472,LOSS,118 +7473,LOSS,116 +7474,WIN,115 +7475,WIN,93 +7476,WIN,113 +7477,LOSS,110 +7478,WIN,91 +7479,WIN,97 +7480,WIN,117 +7481,WIN,101 +7482,LOSS,116 +7483,LOSS,120 +7484,LOSS,112 +7485,LOSS,120 +7486,WIN,113 +7487,WIN,111 +7488,LOSS,114 +7489,LOSS,94 +7490,WIN,121 +7491,LOSS,114 +7492,LOSS,102 +7493,LOSS,108 +7494,LOSS,118 +7495,LOSS,90 +7496,LOSS,110 +7497,LOSS,116 +7498,LOSS,110 +7499,LOSS,108 +7500,WIN,79 +7501,LOSS,104 +7502,WIN,117 +7503,WIN,119 +7504,WIN,109 +7505,WIN,101 +7506,LOSS,118 +7507,WIN,115 +7508,LOSS,80 +7509,WIN,77 +7510,WIN,115 +7511,WIN,109 +7512,WIN,111 +7513,LOSS,102 +7514,WIN,119 +7515,WIN,117 +7516,LOSS,120 +7517,LOSS,108 +7518,WIN,103 +7519,WIN,117 +7520,WIN,83 +7521,WIN,115 +7522,WIN,121 +7523,LOSS,90 +7524,LOSS,104 +7525,LOSS,90 +7526,WIN,77 +7527,LOSS,114 +7528,WIN,95 +7529,WIN,83 +7530,WIN,117 +7531,LOSS,86 +7532,LOSS,90 +7533,WIN,121 +7534,WIN,101 +7535,WIN,115 +7536,LOSS,112 +7537,WIN,119 +7538,LOSS,110 +7539,WIN,121 +7540,LOSS,94 +7541,LOSS,102 +7542,LOSS,118 +7543,WIN,119 +7544,WIN,97 +7545,WIN,117 +7546,LOSS,112 +7547,WIN,85 +7548,LOSS,120 +7549,LOSS,114 +7550,WIN,99 +7551,WIN,115 +7552,WIN,115 +7553,WIN,119 +7554,WIN,73 +7555,WIN,109 +7556,LOSS,108 +7557,WIN,97 +7558,LOSS,116 +7559,WIN,95 +7560,WIN,121 +7561,LOSS,116 +7562,WIN,117 +7563,WIN,99 +7564,WIN,109 +7565,WIN,119 +7566,WIN,91 +7567,WIN,95 +7568,LOSS,106 +7569,LOSS,106 +7570,LOSS,112 +7571,LOSS,108 +7572,WIN,121 +7573,WIN,111 +7574,WIN,105 +7575,WIN,117 +7576,LOSS,112 +7577,LOSS,104 +7578,LOSS,110 +7579,WIN,105 +7580,LOSS,120 +7581,LOSS,98 +7582,WIN,113 +7583,WIN,115 +7584,LOSS,112 +7585,LOSS,96 +7586,WIN,97 +7587,LOSS,112 +7588,WIN,105 +7589,LOSS,100 +7590,WIN,117 +7591,LOSS,116 +7592,LOSS,116 +7593,WIN,99 +7594,LOSS,120 +7595,LOSS,114 +7596,LOSS,120 +7597,LOSS,92 +7598,LOSS,102 +7599,LOSS,106 +7600,LOSS,118 +7601,LOSS,120 +7602,WIN,101 +7603,LOSS,116 +7604,WIN,117 +7605,WIN,111 +7606,LOSS,78 +7607,LOSS,100 +7608,WIN,109 +7609,LOSS,114 +7610,WIN,73 +7611,LOSS,104 +7612,LOSS,110 +7613,WIN,103 +7614,WIN,117 +7615,LOSS,106 +7616,WIN,103 +7617,LOSS,114 +7618,WIN,117 +7619,LOSS,114 +7620,LOSS,92 +7621,LOSS,114 +7622,WIN,107 +7623,LOSS,112 +7624,LOSS,108 +7625,LOSS,114 +7626,LOSS,112 +7627,WIN,103 +7628,WIN,83 +7629,WIN,117 +7630,WIN,99 +7631,WIN,95 +7632,WIN,101 +7633,LOSS,114 +7634,LOSS,116 +7635,LOSS,102 +7636,LOSS,110 +7637,LOSS,120 +7638,LOSS,118 +7639,WIN,101 +7640,WIN,111 +7641,WIN,119 +7642,WIN,119 +7643,WIN,103 +7644,WIN,109 +7645,WIN,115 +7646,LOSS,86 +7647,WIN,119 +7648,LOSS,120 +7649,WIN,95 +7650,LOSS,112 +7651,WIN,117 +7652,LOSS,112 +7653,WIN,119 +7654,WIN,97 +7655,WIN,111 +7656,LOSS,112 +7657,LOSS,106 +7658,WIN,107 +7659,LOSS,120 +7660,WIN,115 +7661,WIN,81 +7662,WIN,121 +7663,LOSS,112 +7664,WIN,117 +7665,WIN,117 +7666,LOSS,100 +7667,LOSS,104 +7668,WIN,111 +7669,LOSS,92 +7670,WIN,121 +7671,LOSS,108 +7672,WIN,97 +7673,LOSS,112 +7674,WIN,117 +7675,LOSS,118 +7676,LOSS,94 +7677,LOSS,102 +7678,LOSS,90 +7679,WIN,103 +7680,LOSS,104 +7681,LOSS,120 +7682,WIN,119 +7683,LOSS,114 +7684,WIN,113 +7685,LOSS,108 +7686,WIN,119 +7687,LOSS,106 +7688,WIN,107 +7689,LOSS,104 +7690,WIN,117 +7691,WIN,109 +7692,LOSS,110 +7693,LOSS,120 +7694,WIN,111 +7695,WIN,109 +7696,LOSS,104 +7697,LOSS,90 +7698,WIN,99 +7699,WIN,115 +7700,WIN,119 +7701,WIN,101 +7702,WIN,109 +7703,LOSS,106 +7704,WIN,121 +7705,LOSS,114 +7706,LOSS,114 +7707,LOSS,114 +7708,WIN,109 +7709,LOSS,88 +7710,LOSS,114 +7711,WIN,111 +7712,WIN,101 +7713,LOSS,114 +7714,WIN,101 +7715,LOSS,118 +7716,WIN,111 +7717,WIN,111 +7718,WIN,115 +7719,LOSS,114 +7720,LOSS,100 +7721,WIN,109 +7722,LOSS,108 +7723,LOSS,78 +7724,LOSS,118 +7725,LOSS,118 +7726,WIN,91 +7727,LOSS,106 +7728,LOSS,108 +7729,WIN,97 +7730,LOSS,118 +7731,LOSS,120 +7732,LOSS,120 +7733,WIN,119 +7734,WIN,91 +7735,LOSS,108 +7736,WIN,91 +7737,WIN,107 +7738,LOSS,108 +7739,WIN,107 +7740,WIN,93 +7741,LOSS,110 +7742,WIN,79 +7743,WIN,115 +7744,WIN,99 +7745,WIN,119 +7746,WIN,121 +7747,WIN,107 +7748,WIN,117 +7749,LOSS,120 +7750,WIN,103 +7751,WIN,119 +7752,LOSS,108 +7753,LOSS,108 +7754,LOSS,116 +7755,WIN,121 +7756,WIN,101 +7757,LOSS,116 +7758,WIN,113 +7759,LOSS,98 +7760,LOSS,108 +7761,LOSS,110 +7762,WIN,97 +7763,LOSS,82 +7764,WIN,121 +7765,WIN,113 +7766,LOSS,118 +7767,LOSS,116 +7768,LOSS,116 +7769,LOSS,88 +7770,WIN,113 +7771,WIN,107 +7772,LOSS,104 +7773,WIN,103 +7774,LOSS,98 +7775,LOSS,106 +7776,WIN,119 +7777,WIN,121 +7778,LOSS,120 +7779,LOSS,104 +7780,WIN,113 +7781,LOSS,120 +7782,LOSS,116 +7783,WIN,101 +7784,LOSS,82 +7785,WIN,121 +7786,WIN,89 +7787,WIN,117 +7788,WIN,119 +7789,WIN,83 +7790,LOSS,84 +7791,WIN,95 +7792,WIN,119 +7793,WIN,93 +7794,WIN,109 +7795,WIN,113 +7796,WIN,107 +7797,WIN,111 +7798,WIN,95 +7799,LOSS,120 +7800,WIN,91 +7801,WIN,111 +7802,LOSS,112 +7803,WIN,101 +7804,WIN,115 +7805,LOSS,100 +7806,LOSS,116 +7807,WIN,105 +7808,WIN,119 +7809,LOSS,108 +7810,WIN,117 +7811,LOSS,120 +7812,WIN,87 +7813,LOSS,120 +7814,WIN,119 +7815,LOSS,116 +7816,WIN,121 +7817,WIN,119 +7818,WIN,121 +7819,WIN,97 +7820,LOSS,120 +7821,WIN,111 +7822,LOSS,120 +7823,LOSS,102 +7824,LOSS,116 +7825,LOSS,118 +7826,WIN,95 +7827,WIN,97 +7828,WIN,101 +7829,LOSS,96 +7830,WIN,113 +7831,LOSS,108 +7832,WIN,107 +7833,LOSS,114 +7834,LOSS,118 +7835,WIN,107 +7836,LOSS,110 +7837,LOSS,104 +7838,LOSS,116 +7839,WIN,109 +7840,LOSS,112 +7841,LOSS,112 +7842,LOSS,108 +7843,WIN,69 +7844,WIN,103 +7845,WIN,119 +7846,WIN,101 +7847,WIN,89 +7848,LOSS,90 +7849,LOSS,116 +7850,WIN,99 +7851,LOSS,100 +7852,LOSS,120 +7853,WIN,103 +7854,LOSS,118 +7855,WIN,89 +7856,LOSS,114 +7857,LOSS,120 +7858,WIN,99 +7859,WIN,111 +7860,WIN,107 +7861,WIN,109 +7862,LOSS,120 +7863,WIN,113 +7864,LOSS,104 +7865,LOSS,118 +7866,WIN,107 +7867,LOSS,114 +7868,WIN,107 +7869,WIN,113 +7870,WIN,83 +7871,WIN,101 +7872,LOSS,120 +7873,WIN,103 +7874,WIN,97 +7875,LOSS,88 +7876,LOSS,120 +7877,WIN,121 +7878,LOSS,90 +7879,WIN,121 +7880,WIN,111 +7881,WIN,111 +7882,LOSS,116 +7883,WIN,103 +7884,WIN,111 +7885,WIN,119 +7886,LOSS,120 +7887,LOSS,104 +7888,WIN,101 +7889,LOSS,110 +7890,LOSS,96 +7891,LOSS,86 +7892,LOSS,100 +7893,LOSS,90 +7894,WIN,105 +7895,WIN,117 +7896,WIN,105 +7897,WIN,103 +7898,WIN,103 +7899,LOSS,102 +7900,WIN,99 +7901,WIN,99 +7902,LOSS,120 +7903,LOSS,110 +7904,WIN,103 +7905,WIN,101 +7906,LOSS,106 +7907,WIN,111 +7908,LOSS,114 +7909,LOSS,116 +7910,WIN,111 +7911,WIN,89 +7912,WIN,111 +7913,LOSS,112 +7914,WIN,91 +7915,LOSS,114 +7916,LOSS,114 +7917,WIN,109 +7918,LOSS,116 +7919,LOSS,106 +7920,LOSS,92 +7921,LOSS,94 +7922,WIN,119 +7923,WIN,121 +7924,LOSS,116 +7925,LOSS,114 +7926,WIN,119 +7927,WIN,95 +7928,WIN,119 +7929,WIN,121 +7930,LOSS,108 +7931,WIN,115 +7932,LOSS,118 +7933,WIN,93 +7934,WIN,121 +7935,WIN,107 +7936,WIN,101 +7937,WIN,121 +7938,LOSS,112 +7939,WIN,113 +7940,WIN,95 +7941,WIN,111 +7942,LOSS,114 +7943,WIN,95 +7944,WIN,109 +7945,WIN,99 +7946,WIN,115 +7947,LOSS,90 +7948,LOSS,116 +7949,LOSS,114 +7950,LOSS,120 +7951,LOSS,104 +7952,WIN,113 +7953,WIN,105 +7954,LOSS,108 +7955,WIN,101 +7956,LOSS,90 +7957,LOSS,108 +7958,LOSS,98 +7959,WIN,121 +7960,LOSS,90 +7961,WIN,121 +7962,LOSS,116 +7963,LOSS,116 +7964,LOSS,118 +7965,WIN,113 +7966,WIN,101 +7967,LOSS,110 +7968,LOSS,112 +7969,WIN,117 +7970,WIN,113 +7971,LOSS,114 +7972,WIN,101 +7973,LOSS,120 +7974,LOSS,120 +7975,LOSS,106 +7976,LOSS,118 +7977,LOSS,102 +7978,LOSS,114 +7979,WIN,119 +7980,LOSS,112 +7981,LOSS,98 +7982,LOSS,116 +7983,WIN,81 +7984,WIN,113 +7985,WIN,105 +7986,WIN,111 +7987,LOSS,114 +7988,LOSS,120 +7989,WIN,91 +7990,LOSS,100 +7991,WIN,111 +7992,WIN,105 +7993,LOSS,102 +7994,LOSS,118 +7995,LOSS,116 +7996,LOSS,106 +7997,WIN,115 +7998,LOSS,114 +7999,WIN,111 +8000,WIN,121 +8001,WIN,115 +8002,WIN,101 +8003,LOSS,120 +8004,WIN,111 +8005,WIN,111 +8006,LOSS,110 +8007,WIN,93 +8008,WIN,119 +8009,LOSS,102 +8010,WIN,111 +8011,LOSS,118 +8012,LOSS,114 +8013,WIN,113 +8014,WIN,105 +8015,LOSS,112 +8016,LOSS,94 +8017,LOSS,116 +8018,LOSS,100 +8019,WIN,121 +8020,WIN,103 +8021,LOSS,112 +8022,WIN,115 +8023,LOSS,116 +8024,LOSS,84 +8025,LOSS,112 +8026,WIN,87 +8027,LOSS,92 +8028,LOSS,102 +8029,LOSS,82 +8030,WIN,79 +8031,WIN,107 +8032,WIN,121 +8033,WIN,109 +8034,WIN,109 +8035,LOSS,112 +8036,LOSS,108 +8037,WIN,111 +8038,LOSS,106 +8039,WIN,121 +8040,WIN,99 +8041,LOSS,118 +8042,WIN,87 +8043,WIN,101 +8044,LOSS,78 +8045,LOSS,118 +8046,LOSS,112 +8047,WIN,99 +8048,WIN,115 +8049,WIN,109 +8050,LOSS,108 +8051,LOSS,104 +8052,WIN,97 +8053,WIN,97 +8054,WIN,81 +8055,LOSS,106 +8056,WIN,101 +8057,LOSS,100 +8058,WIN,119 +8059,WIN,117 +8060,WIN,97 +8061,WIN,103 +8062,LOSS,118 +8063,LOSS,106 +8064,WIN,105 +8065,LOSS,108 +8066,WIN,103 +8067,WIN,107 +8068,LOSS,114 +8069,LOSS,104 +8070,LOSS,106 +8071,WIN,99 +8072,LOSS,92 +8073,LOSS,88 +8074,WIN,101 +8075,LOSS,110 +8076,WIN,119 +8077,WIN,111 +8078,WIN,119 +8079,WIN,113 +8080,LOSS,118 +8081,WIN,119 +8082,LOSS,104 +8083,WIN,119 +8084,LOSS,106 +8085,WIN,121 +8086,WIN,121 +8087,LOSS,88 +8088,LOSS,106 +8089,LOSS,104 +8090,LOSS,116 +8091,LOSS,92 +8092,WIN,95 +8093,LOSS,96 +8094,LOSS,118 +8095,LOSS,114 +8096,LOSS,104 +8097,LOSS,112 +8098,WIN,117 +8099,WIN,103 +8100,WIN,103 +8101,WIN,109 +8102,WIN,107 +8103,WIN,107 +8104,WIN,71 +8105,WIN,117 +8106,WIN,99 +8107,LOSS,116 +8108,WIN,103 +8109,LOSS,112 +8110,WIN,109 +8111,LOSS,116 +8112,WIN,97 +8113,WIN,79 +8114,WIN,95 +8115,LOSS,120 +8116,LOSS,112 +8117,LOSS,108 +8118,WIN,111 +8119,LOSS,94 +8120,WIN,119 +8121,LOSS,110 +8122,WIN,107 +8123,LOSS,110 +8124,LOSS,116 +8125,WIN,99 +8126,WIN,109 +8127,LOSS,116 +8128,WIN,111 +8129,LOSS,110 +8130,LOSS,114 +8131,WIN,121 +8132,LOSS,100 +8133,LOSS,120 +8134,LOSS,86 +8135,WIN,117 +8136,LOSS,92 +8137,LOSS,96 +8138,WIN,119 +8139,WIN,87 +8140,WIN,109 +8141,LOSS,92 +8142,LOSS,98 +8143,LOSS,96 +8144,WIN,111 +8145,WIN,119 +8146,LOSS,120 +8147,LOSS,108 +8148,WIN,109 +8149,WIN,101 +8150,LOSS,108 +8151,LOSS,112 +8152,WIN,99 +8153,WIN,107 +8154,WIN,117 +8155,LOSS,104 +8156,LOSS,118 +8157,LOSS,112 +8158,LOSS,110 +8159,WIN,115 +8160,LOSS,96 +8161,LOSS,108 +8162,LOSS,120 +8163,WIN,101 +8164,WIN,113 +8165,WIN,119 +8166,LOSS,110 +8167,WIN,99 +8168,WIN,119 +8169,LOSS,102 +8170,LOSS,106 +8171,WIN,109 +8172,WIN,113 +8173,WIN,111 +8174,LOSS,120 +8175,LOSS,88 +8176,WIN,93 +8177,LOSS,118 +8178,WIN,115 +8179,WIN,109 +8180,WIN,97 +8181,LOSS,96 +8182,LOSS,102 +8183,WIN,111 +8184,LOSS,114 +8185,LOSS,110 +8186,LOSS,98 +8187,WIN,121 +8188,LOSS,112 +8189,WIN,97 +8190,LOSS,114 +8191,WIN,101 +8192,LOSS,118 +8193,WIN,121 +8194,LOSS,94 +8195,WIN,121 +8196,WIN,71 +8197,WIN,121 +8198,LOSS,114 +8199,LOSS,108 +8200,WIN,113 +8201,WIN,117 +8202,LOSS,110 +8203,WIN,113 +8204,WIN,117 +8205,LOSS,104 +8206,LOSS,104 +8207,LOSS,118 +8208,LOSS,96 +8209,LOSS,110 +8210,WIN,107 +8211,WIN,105 +8212,WIN,103 +8213,WIN,111 +8214,LOSS,100 +8215,WIN,89 +8216,LOSS,110 +8217,WIN,107 +8218,LOSS,118 +8219,LOSS,88 +8220,WIN,111 +8221,LOSS,120 +8222,LOSS,94 +8223,WIN,95 +8224,WIN,115 +8225,LOSS,102 +8226,LOSS,90 +8227,LOSS,112 +8228,WIN,111 +8229,WIN,99 +8230,WIN,117 +8231,LOSS,116 +8232,WIN,113 +8233,WIN,107 +8234,LOSS,104 +8235,LOSS,118 +8236,LOSS,114 +8237,LOSS,112 +8238,WIN,115 +8239,WIN,79 +8240,LOSS,118 +8241,LOSS,94 +8242,WIN,119 +8243,LOSS,100 +8244,LOSS,110 +8245,WIN,111 +8246,LOSS,106 +8247,LOSS,120 +8248,WIN,113 +8249,WIN,99 +8250,LOSS,100 +8251,WIN,105 +8252,WIN,115 +8253,WIN,111 +8254,LOSS,114 +8255,LOSS,120 +8256,LOSS,102 +8257,LOSS,104 +8258,LOSS,112 +8259,LOSS,106 +8260,WIN,73 +8261,LOSS,96 +8262,WIN,109 +8263,LOSS,108 +8264,WIN,111 +8265,WIN,117 +8266,WIN,101 +8267,LOSS,114 +8268,WIN,101 +8269,LOSS,114 +8270,WIN,109 +8271,WIN,87 +8272,WIN,91 +8273,WIN,103 +8274,WIN,121 +8275,WIN,115 +8276,LOSS,114 +8277,WIN,117 +8278,WIN,119 +8279,LOSS,110 +8280,WIN,101 +8281,LOSS,120 +8282,LOSS,116 +8283,LOSS,96 +8284,LOSS,90 +8285,WIN,99 +8286,LOSS,106 +8287,LOSS,110 +8288,WIN,111 +8289,WIN,115 +8290,LOSS,114 +8291,LOSS,104 +8292,WIN,113 +8293,WIN,101 +8294,WIN,91 +8295,WIN,119 +8296,WIN,107 +8297,LOSS,102 +8298,LOSS,100 +8299,LOSS,106 +8300,WIN,109 +8301,WIN,107 +8302,WIN,93 +8303,LOSS,104 +8304,WIN,111 +8305,LOSS,100 +8306,WIN,111 +8307,LOSS,118 +8308,LOSS,118 +8309,LOSS,112 +8310,WIN,119 +8311,LOSS,104 +8312,WIN,95 +8313,WIN,113 +8314,WIN,109 +8315,WIN,109 +8316,WIN,111 +8317,WIN,101 +8318,WIN,115 +8319,LOSS,120 +8320,LOSS,112 +8321,WIN,121 +8322,LOSS,108 +8323,LOSS,112 +8324,LOSS,108 +8325,WIN,103 +8326,WIN,95 +8327,WIN,89 +8328,WIN,99 +8329,WIN,113 +8330,LOSS,118 +8331,LOSS,72 +8332,WIN,117 +8333,LOSS,100 +8334,LOSS,100 +8335,LOSS,110 +8336,LOSS,112 +8337,WIN,113 +8338,LOSS,104 +8339,WIN,109 +8340,WIN,107 +8341,LOSS,118 +8342,WIN,105 +8343,LOSS,86 +8344,LOSS,118 +8345,WIN,115 +8346,WIN,105 +8347,WIN,93 +8348,LOSS,104 +8349,LOSS,94 +8350,LOSS,116 +8351,WIN,121 +8352,WIN,115 +8353,WIN,121 +8354,LOSS,92 +8355,LOSS,98 +8356,LOSS,116 +8357,LOSS,110 +8358,WIN,117 +8359,WIN,109 +8360,WIN,89 +8361,WIN,115 +8362,LOSS,96 +8363,WIN,93 +8364,LOSS,104 +8365,WIN,113 +8366,LOSS,110 +8367,WIN,111 +8368,WIN,111 +8369,WIN,119 +8370,WIN,119 +8371,WIN,103 +8372,WIN,113 +8373,WIN,97 +8374,LOSS,108 +8375,WIN,117 +8376,WIN,121 +8377,LOSS,100 +8378,LOSS,80 +8379,LOSS,110 +8380,LOSS,114 +8381,LOSS,106 +8382,WIN,91 +8383,WIN,119 +8384,LOSS,120 +8385,WIN,101 +8386,WIN,93 +8387,WIN,105 +8388,WIN,103 +8389,WIN,115 +8390,LOSS,110 +8391,WIN,117 +8392,LOSS,104 +8393,LOSS,120 +8394,WIN,93 +8395,LOSS,96 +8396,LOSS,94 +8397,LOSS,112 +8398,WIN,109 +8399,LOSS,118 +8400,LOSS,114 +8401,WIN,103 +8402,WIN,103 +8403,LOSS,118 +8404,WIN,105 +8405,LOSS,90 +8406,WIN,111 +8407,WIN,97 +8408,LOSS,74 +8409,LOSS,106 +8410,LOSS,110 +8411,WIN,119 +8412,WIN,121 +8413,WIN,119 +8414,LOSS,102 +8415,WIN,121 +8416,WIN,121 +8417,WIN,103 +8418,LOSS,98 +8419,LOSS,84 +8420,WIN,109 +8421,LOSS,114 +8422,WIN,113 +8423,LOSS,96 +8424,WIN,85 +8425,WIN,93 +8426,WIN,99 +8427,WIN,107 +8428,LOSS,106 +8429,WIN,119 +8430,LOSS,118 +8431,LOSS,86 +8432,WIN,121 +8433,WIN,115 +8434,LOSS,114 +8435,WIN,115 +8436,WIN,107 +8437,LOSS,106 +8438,LOSS,118 +8439,LOSS,108 +8440,WIN,113 +8441,LOSS,116 +8442,LOSS,78 +8443,LOSS,106 +8444,LOSS,116 +8445,LOSS,108 +8446,LOSS,96 +8447,WIN,95 +8448,LOSS,86 +8449,WIN,115 +8450,LOSS,120 +8451,LOSS,106 +8452,LOSS,108 +8453,WIN,107 +8454,WIN,103 +8455,WIN,107 +8456,LOSS,98 +8457,WIN,121 +8458,LOSS,116 +8459,WIN,121 +8460,WIN,101 +8461,LOSS,102 +8462,WIN,107 +8463,WIN,109 +8464,LOSS,98 +8465,WIN,113 +8466,WIN,111 +8467,LOSS,106 +8468,LOSS,110 +8469,LOSS,96 +8470,WIN,109 +8471,LOSS,78 +8472,WIN,77 +8473,LOSS,96 +8474,LOSS,78 +8475,LOSS,112 +8476,LOSS,120 +8477,LOSS,96 +8478,LOSS,112 +8479,WIN,121 +8480,WIN,115 +8481,WIN,101 +8482,WIN,91 +8483,LOSS,118 +8484,LOSS,118 +8485,LOSS,98 +8486,WIN,103 +8487,WIN,117 +8488,WIN,119 +8489,WIN,105 +8490,LOSS,112 +8491,WIN,117 +8492,WIN,111 +8493,WIN,119 +8494,WIN,105 +8495,WIN,105 +8496,WIN,97 +8497,LOSS,114 +8498,WIN,115 +8499,WIN,117 +8500,WIN,117 +8501,WIN,115 +8502,LOSS,120 +8503,WIN,107 +8504,LOSS,108 +8505,LOSS,112 +8506,WIN,105 +8507,LOSS,92 +8508,LOSS,84 +8509,WIN,113 +8510,WIN,119 +8511,WIN,107 +8512,LOSS,118 +8513,LOSS,110 +8514,WIN,105 +8515,WIN,101 +8516,LOSS,116 +8517,LOSS,100 +8518,WIN,117 +8519,WIN,87 +8520,LOSS,106 +8521,WIN,87 +8522,LOSS,110 +8523,LOSS,118 +8524,WIN,109 +8525,WIN,105 +8526,WIN,121 +8527,LOSS,94 +8528,LOSS,112 +8529,WIN,113 +8530,LOSS,112 +8531,WIN,113 +8532,WIN,97 +8533,LOSS,120 +8534,WIN,91 +8535,LOSS,116 +8536,WIN,95 +8537,LOSS,120 +8538,WIN,119 +8539,WIN,107 +8540,LOSS,108 +8541,WIN,101 +8542,WIN,119 +8543,LOSS,106 +8544,LOSS,102 +8545,WIN,117 +8546,WIN,105 +8547,LOSS,82 +8548,WIN,99 +8549,LOSS,88 +8550,LOSS,120 +8551,WIN,113 +8552,WIN,97 +8553,WIN,113 +8554,WIN,95 +8555,LOSS,104 +8556,LOSS,110 +8557,WIN,101 +8558,LOSS,104 +8559,LOSS,106 +8560,WIN,107 +8561,LOSS,118 +8562,LOSS,102 +8563,WIN,117 +8564,LOSS,116 +8565,LOSS,116 +8566,LOSS,116 +8567,WIN,97 +8568,WIN,101 +8569,WIN,117 +8570,WIN,93 +8571,WIN,121 +8572,WIN,105 +8573,WIN,113 +8574,WIN,91 +8575,LOSS,104 +8576,LOSS,116 +8577,LOSS,120 +8578,LOSS,106 +8579,WIN,115 +8580,WIN,107 +8581,LOSS,106 +8582,LOSS,112 +8583,WIN,85 +8584,LOSS,118 +8585,LOSS,112 +8586,WIN,107 +8587,WIN,115 +8588,LOSS,116 +8589,LOSS,116 +8590,LOSS,114 +8591,LOSS,100 +8592,LOSS,114 +8593,WIN,89 +8594,LOSS,98 +8595,WIN,93 +8596,WIN,113 +8597,LOSS,110 +8598,WIN,103 +8599,WIN,117 +8600,LOSS,116 +8601,WIN,117 +8602,WIN,119 +8603,WIN,99 +8604,LOSS,116 +8605,LOSS,120 +8606,WIN,113 +8607,LOSS,118 +8608,WIN,105 +8609,LOSS,120 +8610,WIN,101 +8611,LOSS,114 +8612,WIN,121 +8613,WIN,111 +8614,WIN,115 +8615,LOSS,104 +8616,LOSS,118 +8617,WIN,115 +8618,WIN,101 +8619,LOSS,110 +8620,LOSS,108 +8621,LOSS,104 +8622,LOSS,86 +8623,LOSS,92 +8624,WIN,93 +8625,LOSS,94 +8626,WIN,113 +8627,LOSS,120 +8628,LOSS,96 +8629,WIN,83 +8630,WIN,105 +8631,LOSS,114 +8632,LOSS,112 +8633,WIN,113 +8634,LOSS,104 +8635,LOSS,120 +8636,LOSS,94 +8637,WIN,103 +8638,LOSS,112 +8639,WIN,121 +8640,WIN,71 +8641,LOSS,82 +8642,WIN,119 +8643,LOSS,84 +8644,LOSS,108 +8645,WIN,111 +8646,LOSS,106 +8647,LOSS,106 +8648,WIN,115 +8649,WIN,107 +8650,LOSS,112 +8651,WIN,89 +8652,LOSS,110 +8653,LOSS,112 +8654,WIN,115 +8655,LOSS,84 +8656,WIN,111 +8657,WIN,99 +8658,LOSS,92 +8659,LOSS,120 +8660,LOSS,100 +8661,WIN,121 +8662,LOSS,108 +8663,LOSS,114 +8664,WIN,101 +8665,LOSS,118 +8666,WIN,111 +8667,LOSS,78 +8668,WIN,117 +8669,LOSS,118 +8670,LOSS,114 +8671,WIN,115 +8672,WIN,117 +8673,LOSS,114 +8674,LOSS,112 +8675,WIN,105 +8676,LOSS,102 +8677,WIN,115 +8678,WIN,115 +8679,LOSS,96 +8680,WIN,119 +8681,WIN,97 +8682,LOSS,98 +8683,WIN,107 +8684,WIN,119 +8685,WIN,115 +8686,WIN,99 +8687,WIN,91 +8688,WIN,121 +8689,WIN,117 +8690,WIN,109 +8691,LOSS,118 +8692,LOSS,104 +8693,WIN,75 +8694,LOSS,114 +8695,LOSS,98 +8696,LOSS,116 +8697,LOSS,112 +8698,LOSS,96 +8699,LOSS,108 +8700,LOSS,118 +8701,LOSS,108 +8702,WIN,105 +8703,LOSS,118 +8704,LOSS,94 +8705,WIN,93 +8706,WIN,113 +8707,LOSS,110 +8708,WIN,105 +8709,WIN,109 +8710,LOSS,106 +8711,WIN,121 +8712,WIN,95 +8713,LOSS,120 +8714,WIN,97 +8715,LOSS,104 +8716,WIN,95 +8717,WIN,119 +8718,LOSS,118 +8719,WIN,113 +8720,LOSS,120 +8721,LOSS,100 +8722,WIN,121 +8723,LOSS,120 +8724,LOSS,120 +8725,LOSS,116 +8726,LOSS,90 +8727,LOSS,118 +8728,LOSS,114 +8729,LOSS,120 +8730,LOSS,78 +8731,LOSS,104 +8732,LOSS,108 +8733,WIN,85 +8734,LOSS,116 +8735,WIN,119 +8736,WIN,113 +8737,WIN,105 +8738,LOSS,120 +8739,WIN,99 +8740,WIN,111 +8741,WIN,119 +8742,WIN,119 +8743,WIN,119 +8744,LOSS,94 +8745,LOSS,104 +8746,LOSS,110 +8747,LOSS,114 +8748,LOSS,120 +8749,WIN,107 +8750,LOSS,120 +8751,WIN,117 +8752,LOSS,118 +8753,WIN,109 +8754,LOSS,76 +8755,LOSS,116 +8756,WIN,121 +8757,WIN,109 +8758,WIN,117 +8759,LOSS,114 +8760,WIN,117 +8761,LOSS,108 +8762,LOSS,102 +8763,WIN,105 +8764,WIN,117 +8765,LOSS,114 +8766,LOSS,116 +8767,WIN,101 +8768,LOSS,104 +8769,LOSS,110 +8770,WIN,101 +8771,WIN,85 +8772,LOSS,108 +8773,WIN,111 +8774,WIN,115 +8775,LOSS,104 +8776,LOSS,112 +8777,WIN,111 +8778,LOSS,110 +8779,WIN,119 +8780,LOSS,108 +8781,WIN,107 +8782,WIN,105 +8783,WIN,97 +8784,LOSS,110 +8785,WIN,103 +8786,WIN,103 +8787,WIN,79 +8788,LOSS,96 +8789,LOSS,108 +8790,LOSS,120 +8791,WIN,117 +8792,LOSS,108 +8793,LOSS,118 +8794,WIN,117 +8795,WIN,109 +8796,WIN,105 +8797,LOSS,120 +8798,LOSS,112 +8799,LOSS,114 +8800,LOSS,120 +8801,WIN,121 +8802,WIN,107 +8803,LOSS,118 +8804,LOSS,104 +8805,LOSS,116 +8806,WIN,99 +8807,LOSS,106 +8808,LOSS,108 +8809,WIN,119 +8810,WIN,87 +8811,LOSS,120 +8812,WIN,99 +8813,WIN,117 +8814,LOSS,108 +8815,LOSS,98 +8816,WIN,119 +8817,WIN,121 +8818,LOSS,120 +8819,WIN,117 +8820,LOSS,104 +8821,WIN,107 +8822,LOSS,106 +8823,WIN,109 +8824,WIN,119 +8825,WIN,93 +8826,WIN,111 +8827,LOSS,114 +8828,WIN,113 +8829,LOSS,92 +8830,LOSS,120 +8831,WIN,99 +8832,WIN,121 +8833,WIN,99 +8834,LOSS,114 +8835,LOSS,102 +8836,LOSS,106 +8837,LOSS,104 +8838,WIN,115 +8839,LOSS,110 +8840,LOSS,90 +8841,LOSS,120 +8842,LOSS,94 +8843,WIN,121 +8844,WIN,111 +8845,LOSS,110 +8846,WIN,121 +8847,LOSS,110 +8848,LOSS,118 +8849,LOSS,102 +8850,WIN,109 +8851,WIN,111 +8852,WIN,121 +8853,LOSS,112 +8854,WIN,105 +8855,WIN,117 +8856,LOSS,118 +8857,WIN,109 +8858,LOSS,104 +8859,LOSS,116 +8860,LOSS,106 +8861,WIN,121 +8862,WIN,99 +8863,LOSS,112 +8864,LOSS,106 +8865,WIN,97 +8866,LOSS,90 +8867,WIN,103 +8868,WIN,99 +8869,LOSS,118 +8870,WIN,121 +8871,WIN,113 +8872,WIN,109 +8873,LOSS,96 +8874,LOSS,92 +8875,LOSS,100 +8876,LOSS,120 +8877,WIN,99 +8878,LOSS,98 +8879,WIN,111 +8880,WIN,121 +8881,LOSS,118 +8882,WIN,107 +8883,LOSS,110 +8884,LOSS,98 +8885,LOSS,120 +8886,WIN,93 +8887,WIN,113 +8888,LOSS,104 +8889,LOSS,112 +8890,LOSS,82 +8891,WIN,79 +8892,LOSS,120 +8893,WIN,109 +8894,WIN,103 +8895,LOSS,100 +8896,WIN,113 +8897,LOSS,114 +8898,LOSS,112 +8899,WIN,101 +8900,LOSS,110 +8901,LOSS,118 +8902,WIN,87 +8903,WIN,119 +8904,LOSS,118 +8905,WIN,113 +8906,LOSS,98 +8907,WIN,121 +8908,WIN,99 +8909,LOSS,104 +8910,LOSS,98 +8911,WIN,113 +8912,LOSS,106 +8913,LOSS,116 +8914,LOSS,116 +8915,WIN,115 +8916,LOSS,116 +8917,LOSS,116 +8918,LOSS,116 +8919,LOSS,104 +8920,WIN,113 +8921,WIN,99 +8922,LOSS,108 +8923,LOSS,68 +8924,LOSS,108 +8925,LOSS,114 +8926,LOSS,118 +8927,WIN,113 +8928,LOSS,94 +8929,LOSS,98 +8930,LOSS,92 +8931,WIN,101 +8932,LOSS,112 +8933,WIN,115 +8934,LOSS,114 +8935,WIN,105 +8936,LOSS,114 +8937,LOSS,120 +8938,WIN,117 +8939,LOSS,102 +8940,LOSS,108 +8941,LOSS,92 +8942,LOSS,118 +8943,WIN,101 +8944,WIN,113 +8945,WIN,113 +8946,WIN,119 +8947,WIN,97 +8948,WIN,121 +8949,LOSS,120 +8950,WIN,109 +8951,LOSS,110 +8952,WIN,95 +8953,WIN,121 +8954,WIN,113 +8955,LOSS,112 +8956,WIN,121 +8957,WIN,121 +8958,LOSS,118 +8959,LOSS,106 +8960,WIN,119 +8961,WIN,99 +8962,LOSS,96 +8963,LOSS,106 +8964,WIN,101 +8965,LOSS,100 +8966,WIN,113 +8967,LOSS,108 +8968,LOSS,106 +8969,LOSS,104 +8970,LOSS,120 +8971,WIN,99 +8972,WIN,99 +8973,LOSS,100 +8974,LOSS,120 +8975,LOSS,108 +8976,LOSS,106 +8977,LOSS,100 +8978,LOSS,98 +8979,LOSS,118 +8980,WIN,77 +8981,LOSS,120 +8982,LOSS,106 +8983,LOSS,98 +8984,WIN,121 +8985,WIN,105 +8986,LOSS,120 +8987,WIN,121 +8988,WIN,63 +8989,WIN,109 +8990,WIN,117 +8991,WIN,113 +8992,WIN,113 +8993,WIN,95 +8994,WIN,111 +8995,LOSS,94 +8996,WIN,95 +8997,WIN,99 +8998,LOSS,118 +8999,LOSS,114 +9000,WIN,119 +9001,WIN,119 +9002,WIN,115 +9003,LOSS,104 +9004,LOSS,94 +9005,WIN,121 +9006,LOSS,100 +9007,WIN,89 +9008,LOSS,114 +9009,WIN,111 +9010,LOSS,76 +9011,LOSS,116 +9012,WIN,117 +9013,WIN,121 +9014,LOSS,86 +9015,LOSS,114 +9016,LOSS,100 +9017,WIN,89 +9018,LOSS,114 +9019,LOSS,120 +9020,WIN,115 +9021,LOSS,86 +9022,LOSS,86 +9023,WIN,93 +9024,LOSS,92 +9025,LOSS,100 +9026,WIN,121 +9027,WIN,103 +9028,LOSS,108 +9029,LOSS,120 +9030,LOSS,120 +9031,WIN,75 +9032,LOSS,110 +9033,LOSS,114 +9034,LOSS,118 +9035,WIN,93 +9036,LOSS,102 +9037,WIN,117 +9038,LOSS,70 +9039,WIN,119 +9040,WIN,101 +9041,WIN,101 +9042,WIN,113 +9043,WIN,117 +9044,LOSS,104 +9045,LOSS,118 +9046,WIN,77 +9047,LOSS,96 +9048,LOSS,104 +9049,WIN,109 +9050,WIN,121 +9051,WIN,119 +9052,LOSS,108 +9053,LOSS,98 +9054,LOSS,102 +9055,LOSS,102 +9056,WIN,107 +9057,LOSS,102 +9058,LOSS,110 +9059,WIN,107 +9060,WIN,113 +9061,LOSS,114 +9062,LOSS,102 +9063,WIN,121 +9064,LOSS,112 +9065,WIN,99 +9066,WIN,111 +9067,WIN,103 +9068,WIN,95 +9069,LOSS,120 +9070,LOSS,94 +9071,WIN,107 +9072,LOSS,100 +9073,LOSS,106 +9074,LOSS,110 +9075,WIN,107 +9076,WIN,97 +9077,WIN,105 +9078,LOSS,118 +9079,WIN,117 +9080,LOSS,98 +9081,LOSS,114 +9082,WIN,115 +9083,WIN,91 +9084,WIN,95 +9085,WIN,119 +9086,WIN,107 +9087,WIN,109 +9088,WIN,113 +9089,WIN,101 +9090,WIN,115 +9091,WIN,107 +9092,WIN,121 +9093,WIN,113 +9094,WIN,105 +9095,LOSS,114 +9096,LOSS,116 +9097,LOSS,108 +9098,WIN,107 +9099,WIN,109 +9100,WIN,105 +9101,LOSS,108 +9102,WIN,99 +9103,WIN,115 +9104,LOSS,106 +9105,LOSS,96 +9106,LOSS,110 +9107,WIN,103 +9108,LOSS,114 +9109,LOSS,102 +9110,WIN,95 +9111,WIN,105 +9112,WIN,93 +9113,LOSS,108 +9114,LOSS,110 +9115,WIN,113 +9116,WIN,109 +9117,LOSS,90 +9118,LOSS,80 +9119,WIN,121 +9120,LOSS,96 +9121,LOSS,118 +9122,WIN,93 +9123,LOSS,104 +9124,WIN,109 +9125,WIN,109 +9126,WIN,113 +9127,WIN,103 +9128,LOSS,96 +9129,LOSS,82 +9130,LOSS,98 +9131,LOSS,116 +9132,LOSS,100 +9133,LOSS,106 +9134,WIN,107 +9135,LOSS,108 +9136,WIN,105 +9137,WIN,121 +9138,LOSS,114 +9139,WIN,117 +9140,LOSS,92 +9141,LOSS,104 +9142,WIN,111 +9143,WIN,73 +9144,WIN,95 +9145,LOSS,118 +9146,WIN,113 +9147,LOSS,114 +9148,WIN,95 +9149,WIN,117 +9150,LOSS,102 +9151,WIN,113 +9152,LOSS,120 +9153,WIN,97 +9154,LOSS,108 +9155,LOSS,84 +9156,WIN,119 +9157,LOSS,74 +9158,WIN,107 +9159,WIN,117 +9160,LOSS,114 +9161,LOSS,116 +9162,LOSS,100 +9163,WIN,93 +9164,LOSS,120 +9165,LOSS,114 +9166,WIN,91 +9167,LOSS,118 +9168,LOSS,86 +9169,LOSS,94 +9170,WIN,115 +9171,LOSS,112 +9172,LOSS,104 +9173,LOSS,112 +9174,WIN,97 +9175,WIN,115 +9176,LOSS,110 +9177,WIN,107 +9178,WIN,121 +9179,WIN,111 +9180,LOSS,112 +9181,LOSS,114 +9182,WIN,109 +9183,WIN,117 +9184,WIN,121 +9185,WIN,101 +9186,LOSS,114 +9187,WIN,111 +9188,LOSS,100 +9189,LOSS,112 +9190,WIN,113 +9191,WIN,103 +9192,WIN,115 +9193,WIN,97 +9194,WIN,115 +9195,WIN,119 +9196,LOSS,108 +9197,LOSS,104 +9198,LOSS,96 +9199,LOSS,98 +9200,LOSS,82 +9201,WIN,119 +9202,WIN,113 +9203,LOSS,102 +9204,LOSS,118 +9205,WIN,119 +9206,LOSS,108 +9207,WIN,99 +9208,LOSS,104 +9209,WIN,121 +9210,WIN,111 +9211,LOSS,118 +9212,LOSS,108 +9213,LOSS,90 +9214,LOSS,118 +9215,WIN,111 +9216,LOSS,120 +9217,WIN,87 +9218,LOSS,118 +9219,WIN,113 +9220,WIN,97 +9221,LOSS,120 +9222,LOSS,104 +9223,LOSS,112 +9224,WIN,79 +9225,LOSS,116 +9226,WIN,103 +9227,LOSS,118 +9228,LOSS,110 +9229,LOSS,114 +9230,WIN,113 +9231,WIN,115 +9232,LOSS,120 +9233,LOSS,100 +9234,WIN,91 +9235,LOSS,98 +9236,WIN,103 +9237,WIN,117 +9238,LOSS,108 +9239,LOSS,98 +9240,LOSS,100 +9241,LOSS,84 +9242,LOSS,118 +9243,WIN,91 +9244,LOSS,106 +9245,LOSS,104 +9246,LOSS,110 +9247,WIN,113 +9248,LOSS,74 +9249,WIN,99 +9250,WIN,121 +9251,WIN,99 +9252,LOSS,102 +9253,WIN,99 +9254,LOSS,108 +9255,WIN,91 +9256,LOSS,114 +9257,LOSS,94 +9258,WIN,117 +9259,WIN,109 +9260,LOSS,110 +9261,LOSS,118 +9262,LOSS,110 +9263,WIN,101 +9264,WIN,107 +9265,WIN,119 +9266,WIN,101 +9267,WIN,115 +9268,LOSS,120 +9269,WIN,115 +9270,WIN,107 +9271,LOSS,114 +9272,WIN,103 +9273,LOSS,112 +9274,WIN,75 +9275,LOSS,116 +9276,LOSS,118 +9277,LOSS,100 +9278,LOSS,104 +9279,WIN,75 +9280,LOSS,114 +9281,LOSS,118 +9282,LOSS,80 +9283,LOSS,84 +9284,LOSS,106 +9285,LOSS,114 +9286,LOSS,86 +9287,LOSS,106 +9288,WIN,115 +9289,WIN,103 +9290,WIN,95 +9291,WIN,107 +9292,WIN,121 +9293,WIN,117 +9294,WIN,113 +9295,LOSS,108 +9296,WIN,103 +9297,WIN,105 +9298,WIN,111 +9299,WIN,115 +9300,WIN,113 +9301,LOSS,118 +9302,WIN,105 +9303,WIN,113 +9304,WIN,121 +9305,WIN,111 +9306,LOSS,114 +9307,WIN,97 +9308,WIN,121 +9309,LOSS,118 +9310,WIN,97 +9311,LOSS,90 +9312,LOSS,90 +9313,LOSS,116 +9314,WIN,117 +9315,WIN,107 +9316,LOSS,106 +9317,LOSS,106 +9318,WIN,69 +9319,LOSS,112 +9320,WIN,117 +9321,WIN,121 +9322,LOSS,106 +9323,LOSS,104 +9324,WIN,103 +9325,WIN,121 +9326,LOSS,74 +9327,WIN,119 +9328,WIN,117 +9329,LOSS,98 +9330,WIN,113 +9331,LOSS,102 +9332,WIN,101 +9333,LOSS,106 +9334,WIN,113 +9335,LOSS,106 +9336,LOSS,118 +9337,WIN,105 +9338,WIN,119 +9339,LOSS,108 +9340,WIN,103 +9341,WIN,109 +9342,WIN,101 +9343,WIN,107 +9344,WIN,105 +9345,LOSS,120 +9346,LOSS,108 +9347,LOSS,102 +9348,WIN,113 +9349,WIN,103 +9350,WIN,119 +9351,LOSS,116 +9352,LOSS,102 +9353,LOSS,100 +9354,LOSS,104 +9355,WIN,121 +9356,LOSS,120 +9357,WIN,109 +9358,WIN,103 +9359,LOSS,114 +9360,LOSS,112 +9361,WIN,91 +9362,LOSS,104 +9363,LOSS,116 +9364,WIN,107 +9365,LOSS,106 +9366,WIN,103 +9367,LOSS,116 +9368,WIN,121 +9369,LOSS,90 +9370,WIN,105 +9371,WIN,115 +9372,LOSS,106 +9373,WIN,115 +9374,LOSS,114 +9375,LOSS,120 +9376,LOSS,100 +9377,LOSS,98 +9378,WIN,121 +9379,LOSS,120 +9380,WIN,117 +9381,LOSS,110 +9382,LOSS,98 +9383,WIN,97 +9384,LOSS,118 +9385,WIN,109 +9386,WIN,121 +9387,WIN,119 +9388,LOSS,118 +9389,LOSS,98 +9390,WIN,109 +9391,WIN,111 +9392,WIN,109 +9393,WIN,121 +9394,LOSS,92 +9395,WIN,119 +9396,WIN,113 +9397,WIN,109 +9398,WIN,93 +9399,WIN,115 +9400,WIN,89 +9401,LOSS,98 +9402,LOSS,102 +9403,WIN,97 +9404,LOSS,110 +9405,LOSS,106 +9406,WIN,107 +9407,WIN,117 +9408,LOSS,120 +9409,WIN,105 +9410,WIN,119 +9411,LOSS,100 +9412,WIN,111 +9413,LOSS,92 +9414,LOSS,110 +9415,WIN,109 +9416,WIN,101 +9417,LOSS,118 +9418,LOSS,118 +9419,LOSS,112 +9420,WIN,109 +9421,WIN,87 +9422,WIN,103 +9423,WIN,105 +9424,WIN,103 +9425,LOSS,114 +9426,LOSS,114 +9427,WIN,111 +9428,WIN,101 +9429,LOSS,120 +9430,WIN,109 +9431,LOSS,118 +9432,LOSS,102 +9433,LOSS,108 +9434,LOSS,114 +9435,LOSS,118 +9436,WIN,117 +9437,WIN,117 +9438,LOSS,118 +9439,LOSS,60 +9440,WIN,101 +9441,LOSS,118 +9442,LOSS,108 +9443,LOSS,114 +9444,WIN,121 +9445,WIN,115 +9446,WIN,121 +9447,WIN,117 +9448,WIN,117 +9449,LOSS,106 +9450,WIN,117 +9451,LOSS,100 +9452,LOSS,98 +9453,LOSS,106 +9454,LOSS,96 +9455,LOSS,94 +9456,WIN,91 +9457,WIN,119 +9458,WIN,121 +9459,LOSS,116 +9460,LOSS,114 +9461,LOSS,86 +9462,LOSS,114 +9463,WIN,115 +9464,LOSS,90 +9465,WIN,103 +9466,LOSS,114 +9467,WIN,117 +9468,WIN,115 +9469,LOSS,100 +9470,WIN,101 +9471,WIN,115 +9472,WIN,119 +9473,LOSS,112 +9474,WIN,111 +9475,WIN,111 +9476,WIN,79 +9477,WIN,117 +9478,LOSS,96 +9479,LOSS,108 +9480,LOSS,112 +9481,WIN,117 +9482,LOSS,118 +9483,LOSS,120 +9484,LOSS,92 +9485,LOSS,104 +9486,WIN,85 +9487,WIN,117 +9488,LOSS,98 +9489,LOSS,98 +9490,LOSS,112 +9491,WIN,119 +9492,LOSS,114 +9493,LOSS,114 +9494,WIN,99 +9495,LOSS,110 +9496,LOSS,102 +9497,LOSS,104 +9498,LOSS,118 +9499,LOSS,110 +9500,LOSS,118 +9501,WIN,115 +9502,LOSS,114 +9503,LOSS,104 +9504,LOSS,120 +9505,WIN,119 +9506,WIN,103 +9507,LOSS,108 +9508,LOSS,82 +9509,WIN,101 +9510,WIN,85 +9511,WIN,121 +9512,WIN,95 +9513,WIN,107 +9514,LOSS,116 +9515,WIN,117 +9516,LOSS,106 +9517,LOSS,104 +9518,WIN,121 +9519,WIN,109 +9520,LOSS,120 +9521,WIN,107 +9522,LOSS,112 +9523,WIN,107 +9524,WIN,111 +9525,LOSS,94 +9526,LOSS,118 +9527,WIN,113 +9528,WIN,107 +9529,WIN,111 +9530,WIN,111 +9531,LOSS,116 +9532,LOSS,118 +9533,LOSS,112 +9534,WIN,117 +9535,WIN,115 +9536,WIN,119 +9537,LOSS,80 +9538,WIN,119 +9539,LOSS,110 +9540,LOSS,110 +9541,WIN,113 +9542,LOSS,118 +9543,WIN,99 +9544,WIN,109 +9545,LOSS,102 +9546,LOSS,90 +9547,LOSS,98 +9548,WIN,99 +9549,LOSS,94 +9550,WIN,69 +9551,WIN,81 +9552,LOSS,112 +9553,WIN,115 +9554,WIN,119 +9555,WIN,99 +9556,LOSS,92 +9557,WIN,119 +9558,WIN,93 +9559,WIN,107 +9560,LOSS,80 +9561,LOSS,110 +9562,LOSS,104 +9563,LOSS,114 +9564,WIN,103 +9565,LOSS,106 +9566,WIN,107 +9567,LOSS,80 +9568,WIN,97 +9569,WIN,115 +9570,WIN,99 +9571,LOSS,98 +9572,LOSS,112 +9573,LOSS,112 +9574,WIN,117 +9575,LOSS,106 +9576,WIN,87 +9577,WIN,99 +9578,LOSS,120 +9579,WIN,119 +9580,LOSS,90 +9581,LOSS,106 +9582,LOSS,114 +9583,LOSS,106 +9584,WIN,99 +9585,LOSS,86 +9586,LOSS,114 +9587,WIN,105 +9588,WIN,113 +9589,WIN,95 +9590,WIN,91 +9591,WIN,119 +9592,WIN,103 +9593,LOSS,118 +9594,WIN,105 +9595,WIN,99 +9596,WIN,105 +9597,WIN,89 +9598,WIN,119 +9599,WIN,115 +9600,LOSS,120 +9601,WIN,103 +9602,WIN,101 +9603,WIN,109 +9604,LOSS,104 +9605,WIN,113 +9606,LOSS,88 +9607,LOSS,102 +9608,LOSS,108 +9609,WIN,109 +9610,LOSS,76 +9611,WIN,97 +9612,LOSS,114 +9613,WIN,117 +9614,LOSS,112 +9615,LOSS,92 +9616,LOSS,96 +9617,WIN,121 +9618,WIN,105 +9619,WIN,95 +9620,LOSS,104 +9621,LOSS,116 +9622,WIN,111 +9623,LOSS,84 +9624,WIN,83 +9625,WIN,109 +9626,LOSS,108 +9627,LOSS,108 +9628,LOSS,116 +9629,WIN,95 +9630,LOSS,120 +9631,LOSS,116 +9632,WIN,111 +9633,LOSS,80 +9634,WIN,99 +9635,LOSS,106 +9636,WIN,121 +9637,LOSS,108 +9638,WIN,93 +9639,LOSS,102 +9640,LOSS,116 +9641,LOSS,114 +9642,LOSS,102 +9643,WIN,91 +9644,WIN,117 +9645,WIN,111 +9646,WIN,115 +9647,WIN,115 +9648,WIN,121 +9649,WIN,93 +9650,LOSS,116 +9651,LOSS,84 +9652,WIN,113 +9653,LOSS,118 +9654,WIN,105 +9655,WIN,105 +9656,WIN,117 +9657,LOSS,110 +9658,LOSS,106 +9659,WIN,119 +9660,WIN,93 +9661,WIN,119 +9662,WIN,111 +9663,LOSS,106 +9664,WIN,119 +9665,WIN,85 +9666,WIN,121 +9667,LOSS,120 +9668,WIN,107 +9669,LOSS,116 +9670,WIN,111 +9671,LOSS,106 +9672,LOSS,108 +9673,LOSS,102 +9674,LOSS,92 +9675,WIN,101 +9676,LOSS,102 +9677,WIN,107 +9678,WIN,117 +9679,WIN,107 +9680,WIN,95 +9681,WIN,101 +9682,WIN,77 +9683,LOSS,112 +9684,WIN,121 +9685,LOSS,96 +9686,WIN,121 +9687,WIN,117 +9688,LOSS,118 +9689,WIN,119 +9690,WIN,115 +9691,WIN,113 +9692,LOSS,92 +9693,LOSS,94 +9694,LOSS,112 +9695,WIN,103 +9696,LOSS,114 +9697,LOSS,104 +9698,WIN,91 +9699,LOSS,112 +9700,WIN,103 +9701,LOSS,112 +9702,LOSS,94 +9703,WIN,111 +9704,LOSS,116 +9705,LOSS,90 +9706,LOSS,94 +9707,LOSS,106 +9708,LOSS,116 +9709,LOSS,112 +9710,WIN,111 +9711,LOSS,106 +9712,WIN,109 +9713,LOSS,108 +9714,WIN,119 +9715,LOSS,90 +9716,LOSS,88 +9717,WIN,113 +9718,LOSS,110 +9719,WIN,117 +9720,LOSS,118 +9721,LOSS,102 +9722,LOSS,114 +9723,WIN,109 +9724,WIN,119 +9725,WIN,105 +9726,LOSS,118 +9727,WIN,117 +9728,WIN,111 +9729,WIN,107 +9730,LOSS,118 +9731,WIN,113 +9732,WIN,73 +9733,LOSS,110 +9734,LOSS,90 +9735,LOSS,106 +9736,LOSS,116 +9737,WIN,115 +9738,LOSS,120 +9739,WIN,115 +9740,WIN,95 +9741,WIN,109 +9742,WIN,89 +9743,LOSS,106 +9744,LOSS,98 +9745,WIN,103 +9746,WIN,113 +9747,WIN,99 +9748,WIN,105 +9749,LOSS,82 +9750,LOSS,102 +9751,WIN,105 +9752,WIN,103 +9753,WIN,111 +9754,WIN,115 +9755,WIN,117 +9756,LOSS,120 +9757,LOSS,116 +9758,LOSS,102 +9759,WIN,115 +9760,WIN,93 +9761,LOSS,98 +9762,WIN,109 +9763,WIN,97 +9764,LOSS,102 +9765,WIN,117 +9766,LOSS,118 +9767,WIN,101 +9768,LOSS,118 +9769,WIN,113 +9770,LOSS,118 +9771,WIN,107 +9772,WIN,115 +9773,WIN,117 +9774,LOSS,118 +9775,WIN,121 +9776,WIN,95 +9777,LOSS,104 +9778,WIN,107 +9779,LOSS,118 +9780,WIN,109 +9781,LOSS,120 +9782,LOSS,90 +9783,LOSS,118 +9784,LOSS,96 +9785,LOSS,100 +9786,WIN,119 +9787,LOSS,108 +9788,WIN,119 +9789,WIN,95 +9790,WIN,109 +9791,WIN,109 +9792,WIN,103 +9793,WIN,119 +9794,WIN,117 +9795,LOSS,108 +9796,LOSS,100 +9797,WIN,95 +9798,WIN,113 +9799,LOSS,106 +9800,LOSS,102 +9801,WIN,111 +9802,WIN,117 +9803,WIN,117 +9804,WIN,77 +9805,LOSS,110 +9806,LOSS,104 +9807,LOSS,96 +9808,LOSS,102 +9809,WIN,111 +9810,WIN,113 +9811,WIN,101 +9812,LOSS,102 +9813,WIN,109 +9814,WIN,83 +9815,WIN,119 +9816,LOSS,102 +9817,LOSS,98 +9818,WIN,111 +9819,WIN,111 +9820,WIN,113 +9821,WIN,99 +9822,LOSS,104 +9823,WIN,103 +9824,LOSS,110 +9825,WIN,109 +9826,WIN,105 +9827,WIN,115 +9828,WIN,91 +9829,WIN,91 +9830,LOSS,104 +9831,WIN,103 +9832,WIN,105 +9833,WIN,119 +9834,WIN,119 +9835,LOSS,116 +9836,LOSS,102 +9837,WIN,95 +9838,LOSS,104 +9839,LOSS,110 +9840,LOSS,108 +9841,LOSS,108 +9842,WIN,109 +9843,WIN,121 +9844,LOSS,100 +9845,LOSS,118 +9846,LOSS,114 +9847,WIN,117 +9848,WIN,95 +9849,WIN,121 +9850,WIN,89 +9851,WIN,113 +9852,WIN,107 +9853,WIN,117 +9854,WIN,103 +9855,WIN,105 +9856,WIN,111 +9857,LOSS,96 +9858,WIN,113 +9859,LOSS,108 +9860,WIN,103 +9861,LOSS,118 +9862,WIN,113 +9863,WIN,99 +9864,WIN,113 +9865,WIN,117 +9866,LOSS,102 +9867,WIN,119 +9868,WIN,115 +9869,WIN,111 +9870,WIN,119 +9871,WIN,121 +9872,WIN,95 +9873,LOSS,106 +9874,WIN,119 +9875,WIN,89 +9876,WIN,121 +9877,WIN,115 +9878,LOSS,120 +9879,WIN,109 +9880,WIN,109 +9881,WIN,121 +9882,WIN,105 +9883,LOSS,108 +9884,LOSS,118 +9885,LOSS,82 +9886,WIN,111 +9887,WIN,115 +9888,WIN,121 +9889,LOSS,90 +9890,LOSS,110 +9891,WIN,103 +9892,WIN,105 +9893,WIN,121 +9894,WIN,119 +9895,LOSS,102 +9896,LOSS,120 +9897,LOSS,80 +9898,WIN,111 +9899,LOSS,112 +9900,LOSS,108 +9901,LOSS,100 +9902,LOSS,100 +9903,WIN,119 +9904,WIN,119 +9905,WIN,111 +9906,WIN,87 +9907,WIN,107 +9908,WIN,111 +9909,LOSS,100 +9910,WIN,115 +9911,WIN,113 +9912,LOSS,116 +9913,LOSS,102 +9914,WIN,101 +9915,LOSS,98 +9916,LOSS,104 +9917,LOSS,116 +9918,WIN,103 +9919,WIN,105 +9920,WIN,107 +9921,LOSS,116 +9922,WIN,105 +9923,LOSS,104 +9924,LOSS,90 +9925,LOSS,114 +9926,WIN,121 +9927,WIN,105 +9928,LOSS,112 +9929,WIN,117 +9930,LOSS,120 +9931,WIN,111 +9932,LOSS,94 +9933,WIN,109 +9934,WIN,95 +9935,LOSS,114 +9936,LOSS,98 +9937,LOSS,120 +9938,WIN,119 +9939,WIN,99 +9940,LOSS,120 +9941,LOSS,112 +9942,LOSS,86 +9943,LOSS,112 +9944,WIN,117 +9945,WIN,119 +9946,WIN,107 +9947,LOSS,110 +9948,WIN,119 +9949,WIN,113 +9950,WIN,117 +9951,WIN,121 +9952,WIN,91 +9953,WIN,107 +9954,WIN,117 +9955,LOSS,94 +9956,WIN,119 +9957,WIN,113 +9958,WIN,81 +9959,WIN,115 +9960,WIN,117 +9961,WIN,113 +9962,WIN,113 +9963,LOSS,104 +9964,WIN,111 +9965,LOSS,104 +9966,LOSS,108 +9967,WIN,103 +9968,WIN,111 +9969,LOSS,118 +9970,WIN,121 +9971,LOSS,88 +9972,WIN,97 +9973,LOSS,118 +9974,WIN,101 +9975,LOSS,96 +9976,WIN,119 +9977,WIN,69 +9978,WIN,105 +9979,LOSS,102 +9980,LOSS,98 +9981,WIN,103 +9982,LOSS,114 +9983,WIN,119 +9984,WIN,119 +9985,LOSS,110 +9986,LOSS,100 +9987,LOSS,110 +9988,LOSS,106 +9989,LOSS,116 +9990,LOSS,106 +9991,LOSS,116 +9992,LOSS,96 +9993,WIN,101 +9994,LOSS,104 +9995,LOSS,106 +9996,WIN,83 +9997,WIN,121 +9998,LOSS,98 +9999,WIN,121 From 9e843fe646044fe8ab0aa435bd650ecfa49ed51f Mon Sep 17 00:00:00 2001 From: kara-mosr Date: Thu, 5 Feb 2026 16:27:10 +0100 Subject: [PATCH 02/13] heuristic + arena + alphabeta --- build/fr/iut_fbleau/HexGame/Arena.class | Bin 0 -> 3022 bytes build/fr/iut_fbleau/HexGame/ArenaMain.class | Bin 0 -> 876 bytes javaAPI/fr/iut_fbleau.tar | Bin 51200 -> 61440 bytes javaAPI/fr/iut_fbleau/HexGame/Arena.java | 62 ++++ javaAPI/fr/iut_fbleau/HexGame/ArenaMain.java | 15 + .../fr/iut_fbleau/HexGame/HeuristicBot.java | 48 +++ javaAPI/fr/iut_fbleau/HexGame/HexSimMain.java | 15 +- javaAPI/fr/iut_fbleau/HexGame/MiniMaxBot.java | 89 ++++++ .../fr/iut_fbleau/HexGame/MonteCarloBot.java | 59 ++++ javaAPI/fr/iut_fbleau/HexGame/RandomBot.java | 4 - javaAPI/fr/iut_fbleau/HexGame/Simulation.java | 273 ++++++++++++++++++ 11 files changed, 560 insertions(+), 5 deletions(-) create mode 100644 build/fr/iut_fbleau/HexGame/Arena.class create mode 100644 build/fr/iut_fbleau/HexGame/ArenaMain.class create mode 100644 javaAPI/fr/iut_fbleau/HexGame/Arena.java create mode 100644 javaAPI/fr/iut_fbleau/HexGame/ArenaMain.java create mode 100644 javaAPI/fr/iut_fbleau/HexGame/HeuristicBot.java create mode 100644 javaAPI/fr/iut_fbleau/HexGame/MiniMaxBot.java create mode 100644 javaAPI/fr/iut_fbleau/HexGame/MonteCarloBot.java create mode 100644 javaAPI/fr/iut_fbleau/HexGame/Simulation.java diff --git a/build/fr/iut_fbleau/HexGame/Arena.class b/build/fr/iut_fbleau/HexGame/Arena.class new file mode 100644 index 0000000000000000000000000000000000000000..3f8ddcaf6e96fbf20abc31e261cda5dfc2989c0f GIT binary patch literal 3022 zcmX^0Z`VEs1_pD6*<1{23|8z6)?5rs3|5>Bsth*l47MB$c3cds4E7+t0|$d6h~vc0 z;LOFq&EUe#;L6|zBHTfQ2Rnl&CxaJ*H^?9#E(Tu)KOqJNh9EA6V1^Jb233YoE`~6M za3KaphDeYxQS1!STnthSG3*Sn>S3^EMyoD8xI2_RM?h?T_7kj%xP#E=3aQrQ{O z*cs9p8Ca6?ONtp81bng*%M$fVOEPoxeKLzntQi?NgEQ0f5=%;pQW+U+(4=jA(u(vm zOH1O@l5$cLOZD9ob5k7yJoO!uic5+TlS@GSfSkn2)FNv;kWtCSW#L7cC83?dMt zGV}G_GILTPqSlNIY&MyBnI(3N49psuVT=qc&iN^+j12rfnR%&xrMXF|MInhvIjM{c zyul@j$=SY%1yDX)VoHirehDLkt_JaL0@=V^RGP=mkip2nS&)-h>6=)RoWaOYLV_VA zScgMtP-<~$4k)O(g7Zs@l2bte!pOkoSd^NVs0WG<9tK?oJw^s$5E~LVjzvX@m7oaX zVNhq#U}O*iOQ8fNBZFWf$b|SJu<^xu$;D+LgEDy-v>9|58AP4(OB4)s6hM@bjzV~5 zUS4Vu7Y{=gLpIE+%zS-Mf7goS)Pj=C{5&3p90omhhFl(oJcfK8h608{9)==@VnzlH zViN&7LkSNm@rIWWRS+L7#y{X3<6*m-#5Vr6!l)bPyzoFfxd0 zK(Y;3PjE?5W?s5AC>66M78IoBr7$vRAuDjsNGu9YEi6sVOHQ@cgy_u7*N0~|{(_>+ zyb^Fu3MooVPGw}^1G@+uMxfNi$iSSKl7eO}#HrSrQH%^M#hF#9;JoU|$iSSQS^`q) z3AG9AMyO&GzXn$pm!#%0GBD?tf;7P06##KfQEFnYH6sH@dTNPtPGWH}BZII8vXNjx zYeoisuv@{lfQ1+tc+*o$f-`dqa#H;gb5j`^L{RiWgNut{BEuv`2GO9>yu8f3bcI|{ zmbX%1R46M}U}R(v&rQrubfSWk;=%xUY3|sn(Cj%$e@O7FEl){+QP=D!>Gf^#mL}=tOM!@ zOqXJcU^SIBIVZn3m63r(!xNO!M3Bt}hdVd{vIqD$M!E(WGBU{FDCHn|%9@dZxd0UH zX2|A%@}o79d$9NtD#XYDwaJK)!30++?Fr8IPy@k<8DxQPVgcBx3L2U?oCwKf*6a+E zL8Z%dMg|o`63fgh%g;{LhlD01eYhnim*f{!vNOzNWMK2j&(AI`U}WI&1eK%UfJrT8 zWSD{MO{f`=QqChWFC{0nSOuaH>R9BIgcKeq8bc}zQn4tHMp6$AEadov8sVInlM|d- zl4{M)FpH5v6~lkn+{VZthhH6oB7-V}8Uq6Z69W^dK4M^G&;;|e7??nn4FdxM3j-sl z5@TRw&}U#^Xk=hvU}9ik(AV0|z^JvGfhlr31M^k}7OmY3tdT-&+ZoumGH_^ZVc-zr z+{VBazMO%>M|&Fs&qfAD27U%L22BQT1||jr1_lNt1`Y-W1_1^Z23`h!1|bF+24My@ z1~CRr1`!4=22ln*25|;MunMOC44Mp#>2o(zm<#j=S(PX$M7&0tlFa`&-0RzV$1}4To3<8Y*844KK z*cntA8QB>Gz{nIF_CFZdelf8AVqo=TXW#~<12YD5NRTq5Gq5nQF)%P#?`DvS6yV;@ zAnmuCK_*g2b~}Td6^kUxCI)%!Z43(GAeN#Ih_#zRDN${@+$&%nUI P$H2r8z`)252qq%{2yPVl literal 0 HcmV?d00001 diff --git a/build/fr/iut_fbleau/HexGame/ArenaMain.class b/build/fr/iut_fbleau/HexGame/ArenaMain.class new file mode 100644 index 0000000000000000000000000000000000000000..18210ecc07ec06d438b476638bff325fd5e17128 GIT binary patch literal 876 zcmX^0Z`VEs1_pBm6D|f}1{rn+SuO@95G}{aAkUz{$^ZrimRt-h42mErC3Xg7kdz7+ z0~doTJA)b*122eH=VIVzPz9;bU}w-|XV79~V6(~0%Pg^DWMJ0N3}a+qan4UkWn|#@ z$;?ajE6q(xEec6Y%1LEpV98C)%wuE_(}?!TN-Rs%&q>Tn*AFf!%FIi*25IC9&Mz%W zPIb!!Ddux5O3h33P0Y;G11aWV5MdByWROlP($6d{iBC()Nlh%(_eia9Ps~l#2diad zkjE|?l$e*2pX-!g!p@-0!=S^U3o=ZPhe4mgfRRA~yB^=nyiDK33a9)M9tJ~*4kJbe zCG3hlQcH_6i%T+-o$^Z<8I-Xr^3BgHNp(&v%E<>CY7FuY4hMt11M)f}g8<0$kdX3E z%1TWxVPud&H6IiJjsc$f0Xd14sYQ$o>;XQGk*-08j0|!<_*7amGAL=_SK$SU6}H5b z6tKT^ajAApDlREXOfCVr1mX&CbV40s#K@qCODB?Q=AzO(21N!T24QeYWMW_h#W({a zgBSw?gDe9h10w?i1FP0{2F8sH3=E76;tUK7Y!E>PP6i1ENvP5a1~vvJ1_lO?-3&~T z+ZmXBw0ASGL~deW6=7i8&cLyafm3@o16SlG2JY<)JP;l)NP0U1AB4vbkrM#%wlN4I vY?EVPXJBApXW(GqV31_sWKd_|VlZXkW^iWUWpHQUV_;;EVqjokVvq&^t?AKH literal 0 HcmV?d00001 diff --git a/javaAPI/fr/iut_fbleau.tar b/javaAPI/fr/iut_fbleau.tar index 909471142c2b6abef177aa99fff06249f1c46680..87874e0cb8dca52eed64048f135bab0eda538b1a 100644 GIT binary patch delta 7607 zcmZpez})bFc|*6Ikcokzp@E^PIfH?rxv{Y+gM#T~N5+)RjP}C3oT(MTnYq4+nR$~H zxLhVDRw+ptn3$V07@8WI7#bRyn3)?f7#JBD85uJu7(jHn`!L#P=Ic3?rlqA8rKW@z zWtOBCS#xFP7UUO|C}bs;CF*77>$zp-q~ehB^q*|UBQrV3L#jR~F)t-Q*P4qoI9AthCzAhD<%PcL4PfN;4O)S;(NUd;B%uNN+&_F>_OGv4Lu5Nl_ZfdcDp@D&cfr74Xab{Jj zf;othnwp|uXk?6OSUpaQ;ij1)8D?mxpsSl)T&7TzT3nh_QmmI;Tm~`}gbz0;6oc%^ zOi9fv$t)~Q)ltYvR46XZECB@uG$e~bDhrBJOH=Z7K>=3}3%T^eEAtMoEIPb0RUx&w zL;=Z=l>EG81yHzwLt6=?3#v&;AuGQ$wJ1NY1T3F>cooR^$@!%PU~5tm^NJO6QWe1B z3i(ATMX3rJC5d?@3WcSqAc^Gsl=@UqoaLxPWK&X$6%q>yQgezG4lhuEBn^eURE6Y> z#Ju#>yb^_i#9~c78~p-1XqDlqQ#CCS~SimKYhmlBq?oR7fmMF3p3)WS%-GD$?>xi}Esc6!P;FN=q_xGK*6c zppliB1NDb`MrvtMszP#pX;ETcNve)Qa;idMX{JI^YF-K`@Ic|6T5)(~aw*u0DVb?$ zhgTM*=9Q#MA%|v8eqK7*W@}JLPF@%-S`WQI(g}=a(er_~w_TLZv~* zgD}{N+{`?fluv$Mx}L9NM0}W|PpB)JrMZa}sOmiZVCvx3mE~uqC={h8=NF}D1cCFG zLXnO_W_@0XLN3U9O(g$;9FUo&pi!h?YpVcJtQYR-r>Rh$nWwFdupFc=HK#aL0bQ|6 zkYl)}0w^p9DX$0Ray=ja;9yM!P#~eJFF}Nlwk^b^sP-d;k#Ay2hF)%Fo(4=z2ckg} zO$Q>hd=u+IS`sTXU_pqfr52JfKz;>B3b+K+&{U{aC`v6UEy@E0ih?%SvkKZ^KUgau z=}E~iP0C3HDGEv~Nk!HNHmF`h6BNh>3ib*HdIkzs3K|d%;ILNER{$&0&;%I?asdcK z6o4(nY9vk*LGgiZWIf141qG;?pco*{Opp$AGf|98EK3KcO$?tyoT-Dw=SXpm5&&G2 ztK+058!wPz1*huC{tNW$!7PY{3JS$ZdZ5BJFGWKMRLK=vDJW^eM4$l)=PSkJDWN3{ zB<5YjE0957GjOF+BEwvKO*FphzRl9*_=f)}$f_I XefcB-AW;` zEZr6qKspM!nR&LVDLM+di50f0Dd5mTqzp1+$=83~PDq zSd?Bo`K^Z%sBiGaAU$&A-J-*BsEtrxwHsWVT5Gnrut^)E_N+TEvf_;=HPUvudiUBU<<0a!HqbmBCs3XKnftCqL5r%7LZtypY>q*j32mj#JM(8eIxl-kJ$J

Heo{yTTU1n>3gT%b zg1qVAEw7>kYBGXalli&2WyQJ>mI9*62PO2$6GLU{6%;@%Hd`eHZG}WV5K}>0K?zdE zKm{Se1rh~?4pb1tRL}-H2JCJqp^*q`oq>I&2=SJJy@C?Rr%-(`KU*m%DS_e=kz1iH zpWMXalGGwln533NTSFR&dLZkN!X8rlf?K*!m0%H2^uV2j+ENEO0i+ZZ&~POsMU^U8 z>NpHPOl}MnF$A?hZ58rT%N0;f)&L11+Wm+Sn4FL%qM2M=rdJN?D`+Tz!ZAKGFD11? z2hx&_FEG>rSG1sVXYz+2*~!}TI49rE;)W23hW>udm>jUs{%$SgKHv zlUS0PSgNCt2N9@%^awOSK~xNC#1&CBkl!Xx z_fkM8U+5(U?bl#Y4vJ~G?a-v60LnmM?JBK_Du9*irKgqzrLuw=4jPja(}b%|paf<^oUN?@sxd(JO+FtgYzb=dB2^h2T(MU&o+G1z0OCvsfXmC_h&rz{fGtHONq*AhoEtAT_xpvn&lB4&qvc-qD8C5e z)KpO5`=%BbC#I)rfFc?eO&~fIqAj>2F*!S=C^0z|ltn=jAY7}EmYJ8BlT(Q$4?<#u z6W9{Tb0r7gL{Lz|0nZ=;a2B;%b0_vv~gE|%k#hQAM^rEHU zpQn(Qs*szXl9`qX>X;WRfOIwOjuZwUJ&+WJ(wP7Wr}sTE)|H6ey-f?^{$vkKI#)Kb7FZ4Ihx z5;aQ|3NnjQ6|6uR4pgov6oEzzG7-71JR>tFRY5~>@__^qHb{qO@J}xS}HuZf;i6k1(nE&0i+rhF9A7~3I#c!3bjBl zJ+mw|GQYG4RQqdyG$JQgkS0*JQ-qWPnZ-V->4`a$SA`NDSQU zha^~#$)MUSsdDng0NKe2VUm+Wl9cqpAr9(mKw=zZw1NV-8v~Y6uv0(@{K<~RqLY97 z3xF&!3dzq`$W6?v1lv-qpaIIV5M9~|N}4(f#re6ZB^jA{=?a;}3gt!ldFhkm!W1We z$YL>r_87pbA)ONJ%@|Pi4r&5GD*DOyJfsA{LZJE|R0DxHlaFO8c!HV$dO4|i=_MK9 z`UAZe2W@xVNpveN=?j0wG(7F z%qDQn2eFDBR_rN+i0ERs3#=NqWvT=$167(3yIdfR3-fE-r)EYMuyhs)3p{6(yJv2`Yp!<1sN! zc=CY|76$?rWu)d5C|RLoCZuT2fH*=BT&sAb<`g*QrMOmPmVm2okn!?3j892TODxSP z0Vl<9eSHN`iJe$t1!^_ts6)nz5=&A+!&&)xd8rCnrNt%Sp;gGBDtJUGM?EvIB(+a$Z~KuDiqZGv4V`R6C5*-&MyFsNfyV(mF6a;7AfSXK~ld0+z8N^ zK0Z^xg&^1vP?ZnqEI>LPa3i2yXoZr@+*Euz0t2i6n62MpVm(=&O=fZmk6=BRhcZzGRta$$ViL+JzXUw)04f`Eax%eF4_4sG z4$#aLXo5o_=kUt(#2kghQiY7f;>4m9&@7WaS3zk~4t!i3Vk*e2)QXbSyp&>v$xr+= z%pt-GMS1Da{v1>jMBFLAL?a*v)DBk2P1S++`ay~(`}nIQ6y>FZdWaycpm=~~Pl&Bp z4FC_yf)XbvdxG?UFev6UK*obwOAu|~KC|Xzu6X6ido8#pFY#CN*VhNN^ou~#1_g&# z6s0PZ3Wm*%#~JxG(bU> zY`FqFer)WJTECO?=StSYo5!G;#l({QA|wS0&{lY6iC#uxv0rLMiH0V!=Rh6=Tcekl zlA@7W0`9A$^v0mU22uzrtRadsi(PXIN-Du-O};o&4%C><^2=8M%YqxT3W;TjnK_`T z9tB9x9MpnME6vHV*97$ bots = new ArrayList<>(); + private FileWriter csvWriter; + + public Arena() { + try { + csvWriter = new FileWriter("arena_results.csv"); + csvWriter.append("Bot 1, Bot 2, Winner\n"); + } catch (IOException e) { + e.printStackTrace(); + } + } + + public void addBot(AbstractGamePlayer bot) { + bots.add(bot); + } + + public void run() { + for (int i = 0; i < bots.size(); i++) { + for (int j = i + 1; j < bots.size(); j++) { + AbstractGamePlayer bot1 = bots.get(i); + AbstractGamePlayer bot2 = bots.get(j); + + System.out.println("Running match: " + bot1.getClass().getSimpleName() + " vs " + bot2.getClass().getSimpleName()); + Result result = playMatch(bot1, bot2); + + try { + csvWriter.append(bot1.getClass().getSimpleName() + "," + bot2.getClass().getSimpleName() + "," + result + "\n"); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + + try { + csvWriter.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + + private Result playMatch(AbstractGamePlayer bot1, AbstractGamePlayer bot2) { + IBoard board = new HexBoard(11); // Standard 11x11 Hex board + EnumMap players = new EnumMap<>(Player.class); + players.put(Player.PLAYER1, bot1); + players.put(Player.PLAYER2, bot2); + + Simulation simulation = new Simulation(board, players); // Ensure Simulation is correctly imported + return simulation.run(); + } +} diff --git a/javaAPI/fr/iut_fbleau/HexGame/ArenaMain.java b/javaAPI/fr/iut_fbleau/HexGame/ArenaMain.java new file mode 100644 index 0000000..5dac4fe --- /dev/null +++ b/javaAPI/fr/iut_fbleau/HexGame/ArenaMain.java @@ -0,0 +1,15 @@ +package fr.iut_fbleau.HexGame; + +import fr.iut_fbleau.GameAPI.Player; + +public class ArenaMain { + public static void main(String[] args) { + Arena arena = new Arena(); + arena.addBot(new RandomBot(Player.PLAYER1, 12345L)); // Correct constructor usage + arena.addBot(new MiniMaxBot(Player.PLAYER2)); + arena.addBot(new HeuristicBot(Player.PLAYER1)); + arena.addBot(new MonteCarloBot(Player.PLAYER2)); // Correct constructor usage + + arena.run(); + } +} diff --git a/javaAPI/fr/iut_fbleau/HexGame/HeuristicBot.java b/javaAPI/fr/iut_fbleau/HexGame/HeuristicBot.java new file mode 100644 index 0000000..1666346 --- /dev/null +++ b/javaAPI/fr/iut_fbleau/HexGame/HeuristicBot.java @@ -0,0 +1,48 @@ +package fr.iut_fbleau.HexGame; + +import fr.iut_fbleau.GameAPI.*; + +public class HeuristicBot extends AbstractGamePlayer { + + public HeuristicBot(Player me) { + super(me); // Correct constructor usage + } + + @Override + public AbstractPly giveYourMove(IBoard board) { + HexBoard hb = (HexBoard) board; + float bestScore = -Float.MAX_VALUE; + HexPly bestMove = null; + + for (int i = 0; i < hb.getSize(); i++) { + for (int j = 0; j < hb.getSize(); j++) { + HexPly move = new HexPly(hb.getCurrentPlayer(), i, j); + if (hb.isLegal(move)) { + hb.doPly(move); + float score = evaluateBoard(hb); + if (score > bestScore) { + bestScore = score; + bestMove = move; + } + hb.undoPly(); + } + } + } + return bestMove; + } + + private float evaluateBoard(HexBoard board) { + int size = board.getSize(); + int center = size / 2; + float score = 0; + + for (int i = 0; i < size; i++) { + for (int j = 0; j < size; j++) { + if (board.getPlayerAt(i, j) == Player.PLAYER1) { + score += Math.abs(i - center) + Math.abs(j - center); // Distance from center + } + } + } + return score; + } +} diff --git a/javaAPI/fr/iut_fbleau/HexGame/HexSimMain.java b/javaAPI/fr/iut_fbleau/HexGame/HexSimMain.java index c90002d..d314aa7 100644 --- a/javaAPI/fr/iut_fbleau/HexGame/HexSimMain.java +++ b/javaAPI/fr/iut_fbleau/HexGame/HexSimMain.java @@ -15,6 +15,19 @@ import java.util.Random; * java fr.iut_fbleau.HexGame.HexSimMain * java fr.iut_fbleau.HexGame.HexSimMain --games 10000 --size 7 --seed 123 * java fr.iut_fbleau.HexGame.HexSimMain --games 5000 --size 11 --csv results.csv + * + * À seed identique, la suite de nombres + * pseudo-aléatoires générée est identique, donc les bots "aléatoires" joueront les mêmes coups + * dans le même ordre (tant que le code et l'ordre des appels à Random ne changent pas).

+ * + * Intérêt : + * + * Reproductibilité : relancer exactement la même simulation pour déboguer / analyser. + * Comparaison équitable : comparer 2 bots sur les mêmes tirages aléatoires. + * Si aucun seed n'est fourni, on utilise généralement l'heure courante, ce qui rend chaque exécution différente.

+ * + * long seed; + * */ public class HexSimMain { @@ -170,7 +183,7 @@ public class HexSimMain { // ex: "7 10000" if (isInt(s)) { int v = Integer.parseInt(s); - if (a.size == 7) a.size = v; + if (a.size == 11) a.size = v; else a.games = v; } else { System.err.println("Unknown arg: " + s); diff --git a/javaAPI/fr/iut_fbleau/HexGame/MiniMaxBot.java b/javaAPI/fr/iut_fbleau/HexGame/MiniMaxBot.java new file mode 100644 index 0000000..bb71baf --- /dev/null +++ b/javaAPI/fr/iut_fbleau/HexGame/MiniMaxBot.java @@ -0,0 +1,89 @@ +package fr.iut_fbleau.HexGame; + +import fr.iut_fbleau.GameAPI.*; + +public class MiniMaxBot extends AbstractGamePlayer { + + private int MAXDEPTH = 5; + + public MiniMaxBot(Player me) { + super(me); // Correct constructor usage + } + + @Override + public AbstractPly giveYourMove(IBoard board) { + HexBoard hb = (HexBoard) board; + float bestScore = -Float.MAX_VALUE; + HexPly bestMove = null; + + for (int i = 0; i < hb.getSize(); i++) { + for (int j = 0; j < hb.getSize(); j++) { + HexPly move = new HexPly(hb.getCurrentPlayer(), i, j); + if (hb.isLegal(move)) { + hb.doPly(move); + float score = minimax(hb, MAXDEPTH, -Float.MAX_VALUE, Float.MAX_VALUE, true); + if (score > bestScore) { + bestScore = score; + bestMove = move; + } + hb.undoPly(); + } + } + } + return bestMove; + } + + private float minimax(HexBoard board, int depth, float alpha, float beta, boolean isMaximizing) { + if (depth == 0 || board.isGameOver()) { + return evaluateBoard(board); + } + + if (isMaximizing) { + float bestScore = -Float.MAX_VALUE; + for (int i = 0; i < board.getSize(); i++) { + for (int j = 0; j < board.getSize(); j++) { + HexPly move = new HexPly(board.getCurrentPlayer(), i, j); + if (board.isLegal(move)) { + board.doPly(move); + float score = minimax(board, depth - 1, alpha, beta, false); + bestScore = Math.max(bestScore, score); + alpha = Math.max(alpha, bestScore); + if (beta <= alpha) break; // Pruning + board.undoPly(); + } + } + } + return bestScore; + } else { + float bestScore = Float.MAX_VALUE; + for (int i = 0; i < board.getSize(); i++) { + for (int j = 0; j < board.getSize(); j++) { + HexPly move = new HexPly(board.getCurrentPlayer(), i, j); + if (board.isLegal(move)) { + board.doPly(move); + float score = minimax(board, depth - 1, alpha, beta, true); + bestScore = Math.min(bestScore, score); + beta = Math.min(beta, bestScore); + if (beta <= alpha) break; // Pruning + board.undoPly(); + } + } + } + return bestScore; + } + } + + private float evaluateBoard(HexBoard board) { + int size = board.getSize(); + int center = size / 2; + int score = 0; + for (int i = 0; i < size; i++) { + for (int j = 0; j < size; j++) { + if (board.getPlayerAt(i, j) == Player.PLAYER1) { + score += Math.abs(i - center) + Math.abs(j - center); // Distance from center + } + } + } + return score; + } +} diff --git a/javaAPI/fr/iut_fbleau/HexGame/MonteCarloBot.java b/javaAPI/fr/iut_fbleau/HexGame/MonteCarloBot.java new file mode 100644 index 0000000..55a4e43 --- /dev/null +++ b/javaAPI/fr/iut_fbleau/HexGame/MonteCarloBot.java @@ -0,0 +1,59 @@ +package fr.iut_fbleau.HexGame; + +import fr.iut_fbleau.GameAPI.*; + +import java.util.Random; + +public class MonteCarloBot extends AbstractGamePlayer { + + private static final int SIMULATION_COUNT = 1000; + + public MonteCarloBot(Player me) { + super(me); // Correct constructor usage + } + + @Override + public AbstractPly giveYourMove(IBoard board) { + HexBoard hb = (HexBoard) board; + float bestScore = -Float.MAX_VALUE; + HexPly bestMove = null; + + for (int i = 0; i < hb.getSize(); i++) { + for (int j = 0; j < hb.getSize(); j++) { + HexPly move = new HexPly(hb.getCurrentPlayer(), i, j); + if (hb.isLegal(move)) { + hb.doPly(move); + float score = monteCarloSimulation(hb); + if (score > bestScore) { + bestScore = score; + bestMove = move; + } + hb.undoPly(); + } + } + } + return bestMove; + } + + private float monteCarloSimulation(HexBoard board) { + RandomBot simBot = new RandomBot(Player.PLAYER1, new Random().nextLong()); + HexBoard simBoard = board.safeCopy(); + int wins = 0; + int simulations = 0; + + for (int i = 0; i < SIMULATION_COUNT; i++) { + while (!simBoard.isGameOver()) { + AbstractPly move = simBot.giveYourMove(simBoard); + simBoard.doPly(move); + } + + if (simBoard.getResult() == Result.WIN) { + wins++; + } + simulations++; + simBoard = board.safeCopy(); // Reset the board for the next simulation + } + + return (float) wins / simulations; + } +} diff --git a/javaAPI/fr/iut_fbleau/HexGame/RandomBot.java b/javaAPI/fr/iut_fbleau/HexGame/RandomBot.java index 0bc5843..b670ada 100644 --- a/javaAPI/fr/iut_fbleau/HexGame/RandomBot.java +++ b/javaAPI/fr/iut_fbleau/HexGame/RandomBot.java @@ -10,9 +10,6 @@ import java.util.Iterator; import java.util.List; import java.util.Random; -/** - * Bot non intelligent : joue un coup légal au hasard. - */ public class RandomBot extends AbstractGamePlayer { private final Random rng; @@ -28,7 +25,6 @@ public class RandomBot extends AbstractGamePlayer { @Override public AbstractPly giveYourMove(IBoard board) { - // On récupère tous les coups légaux via l'itérateur fourni par le plateau. List legal = new ArrayList<>(); Iterator it = board.iterator(); while (it.hasNext()) { diff --git a/javaAPI/fr/iut_fbleau/HexGame/Simulation.java b/javaAPI/fr/iut_fbleau/HexGame/Simulation.java new file mode 100644 index 0000000..c18f87b --- /dev/null +++ b/javaAPI/fr/iut_fbleau/HexGame/Simulation.java @@ -0,0 +1,273 @@ +package fr.iut_fbleau.HexGame; + +import fr.iut_fbleau.GameAPI.*; +import java.util.EnumMap; +import java.util.LinkedList; + + +public class Simulation extends AbstractGame { + + //ATTRIBUTS + private HexPly bestmove; + private float bestoutcome; + private int MAXDEPTH = 9; + private int EVALDEPTH = 10; + private LinkedList taken = new LinkedList(); + + //ATTRIBUTS QUE JE NE VOUDRAIS PAS CRÉER IDÉALEMENT + private IBoard simCurrentBoard; + private EnumMap simmapPlayers; + + //CONSTRUCTEUR + public Simulation(IBoard b, EnumMap m){ + super(b, m); + simCurrentBoard = b; + simmapPlayers = m; + } + + //METHODES + /*Le jeu de Hex ne peut jamais finir avec le résultat null. En utilisant cette propriété, on peut avoir cet algorithme simplifié du monte-carlo*/ + private float MonteCarlo(HexBoard position){ + RandomBot simplay = new RandomBot(); + HexBoard simpos = position.safeCopy(); + LinkedList ctaken = taken; + HexPly testmove; + float wins = 0; + float losses = 0; + + for(int i=0; i=losses){ + return losses/wins; + } else { + return -(wins/losses); + } + + } + + private float explMAX(HexBoard position, int depth){ + if (position.getResult()==Result.LOSS) { + return -1.0f; + } else if (position.getResult()==Result.WIN){ + return 1.0f; + } else if (depth==MAXDEPTH) { + return MonteCarlo(position); + } else { + float bestcase = -1.0f; + HexPly bestcasemove; + HexPly testmove; + for (int i=0; i= bestcase) { + //System.out.println(" MAX new best case"); + bestcase = val; + bestcasemove = testmove; + if (depth==0) { + this.bestoutcome = bestcase; + this.bestmove = bestcasemove; + } + } + position.undoPly(); + taken.remove(t); + } + } + } + return bestcase; + } + } + + + private float explMIN(HexBoard position, int depth){ + if (position.getResult()==Result.LOSS) { + return -1.0f; + } else if (position.getResult()==Result.WIN){ + return 1.0f; + } else if (depth==MAXDEPTH) { + return MonteCarlo(position); + } else { + float bestcase = 1.0f; + HexPly bestcasemove; + HexPly testmove; + for (int i=0; i= bestcase) { + //System.out.println(" MAX new best case"); + bestcase = val; + bestcasemove = testmove; + if (depth == 0) { + this.bestoutcome = bestcase; + this.bestmove = bestcasemove; + } + if (bestcase >= B) { + return bestcase; + } + } + position.undoPly(); + taken.remove(t); + } + } + } + return bestcase; + } + } + + +private float explMINAB(HexBoard position, int depth, float A, float B){ + if (position.getResult() == Result.LOSS) { + return -1.0f; + } else if (position.getResult() == Result.WIN) { + return 1.0f; + } else if (depth == MAXDEPTH) { + return MonteCarlo(position); + } else { + float bestcase = B; + HexPly bestcasemove; + HexPly testmove; + for (int i = 0; i < position.getSize(); i++) { + for (int j = 0; j < position.getSize(); j++) { + if (depth == 0) { + //System.out.println("MIN New Line :"); + } + Integer[] t = new Integer[]{i, j}; + testmove = new HexPly(Player.PLAYER2, i, j); + if (!taken.contains(t) && position.isLegal(testmove)) { + //System.out.println(" MIN test move : "+Integer.toString(i)+","+Integer.toString(j)); + taken.add(t); + position.doPly(testmove); + float val = explMAXAB(position, depth + 1, A, bestcase); + if (val <= bestcase) { + //System.out.println(" MIN new best case"); + bestcase = val; + bestcasemove = testmove; + if (depth == 0) { + this.bestoutcome = bestcase; + this.bestmove = bestcasemove; + } + if (bestcase <= A) { + return bestcase; + } + } + + position.undoPly(); + taken.remove(t); + } + } + } + return bestcase; + } +} + + + + + private AbstractPly GiveBestMove(IBoard board) { + if (!(board instanceof HexBoard)) { + throw new IllegalArgumentException("Ce joueur attend un HexBoard."); + } + HexBoard hb = (HexBoard) board; + float bestcase; + if(hb.getCurrentPlayer()==Player.PLAYER1){ + bestcase = explMAXAB(hb, 0, -1.0f, 1.0f); + } else { + bestcase = explMINAB(hb, 0, -1.0f, 1.0f); + } + return this.bestmove; + } + + @Override + public Result run(){ + while(!simCurrentBoard.isGameOver()) { + AbstractGamePlayer player = simmapPlayers.get(simCurrentBoard.getCurrentPlayer()); + IBoard board = simCurrentBoard.safeCopy(); + AbstractPly ply = GiveBestMove(board); + HexPly concretePly = (HexPly) ply; + + if (simCurrentBoard.isLegal(ply)) { + simCurrentBoard.doPly(ply); + taken.add(new Integer[]{concretePly.getRow(), concretePly.getCol()}); + System.out.println("Player "+player+" goes ("+concretePly.getRow()+","+concretePly.getCol()+")"); + } + else throw new IllegalStateException("Player "+ player + " is a bloody cheat. He tried playing : "+concretePly.getRow()+","+concretePly.getCol()+" I give up."); + } + return simCurrentBoard.getResult(); + } + + +} From 0c8f3b0dd6e13081737f00ca926f6b6fe5d2f62d Mon Sep 17 00:00:00 2001 From: Riad KARA-MOSTEFA Date: Fri, 6 Feb 2026 09:12:30 +0100 Subject: [PATCH 03/13] Delete javaAPI/fr/iut_fbleau.tar --- javaAPI/fr/iut_fbleau.tar | Bin 61440 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 javaAPI/fr/iut_fbleau.tar diff --git a/javaAPI/fr/iut_fbleau.tar b/javaAPI/fr/iut_fbleau.tar deleted file mode 100644 index 87874e0cb8dca52eed64048f135bab0eda538b1a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 61440 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 From 912675f897499c5dab0aa5bdadc033e9ec8ff525 Mon Sep 17 00:00:00 2001 From: Riad KARA-MOSTEFA Date: Fri, 6 Feb 2026 09:31:37 +0100 Subject: [PATCH 04/13] Update javaAPI/fr/iut_fbleau/HexGame/Arena.java --- javaAPI/fr/iut_fbleau/HexGame/Arena.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/javaAPI/fr/iut_fbleau/HexGame/Arena.java b/javaAPI/fr/iut_fbleau/HexGame/Arena.java index 7ec4064..b236f22 100644 --- a/javaAPI/fr/iut_fbleau/HexGame/Arena.java +++ b/javaAPI/fr/iut_fbleau/HexGame/Arena.java @@ -51,12 +51,12 @@ public class Arena { } private Result playMatch(AbstractGamePlayer bot1, AbstractGamePlayer bot2) { - IBoard board = new HexBoard(11); // Standard 11x11 Hex board + IBoard board = new HexBoard(11); EnumMap players = new EnumMap<>(Player.class); players.put(Player.PLAYER1, bot1); players.put(Player.PLAYER2, bot2); - Simulation simulation = new Simulation(board, players); // Ensure Simulation is correctly imported + Simulation simulation = new Simulation(board, players); return simulation.run(); } } From 05871232bdebb539d8d485bff85e61afb5444294 Mon Sep 17 00:00:00 2001 From: Riad KARA-MOSTEFA Date: Fri, 6 Feb 2026 09:53:00 +0100 Subject: [PATCH 05/13] Update javaAPI/fr/iut_fbleau/HexGame/HexMain.java --- javaAPI/fr/iut_fbleau/HexGame/HexMain.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/javaAPI/fr/iut_fbleau/HexGame/HexMain.java b/javaAPI/fr/iut_fbleau/HexGame/HexMain.java index e9d3885..d7402dc 100644 --- a/javaAPI/fr/iut_fbleau/HexGame/HexMain.java +++ b/javaAPI/fr/iut_fbleau/HexGame/HexMain.java @@ -11,7 +11,7 @@ import java.util.Scanner; public class HexMain { public static void main(String[] args) { - int size = 7; + int size = 11; if (args.length >= 1) { try { size = Integer.parseInt(args[0]); } catch (NumberFormatException ignored) {} } From 98c6b4678e6b7f17e716894bbd10008b7e006346 Mon Sep 17 00:00:00 2001 From: vaisse Date: Fri, 6 Feb 2026 11:00:03 +0100 Subject: [PATCH 06/13] =?UTF-8?q?par=20piti=C3=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/iut_fbleau/HexGame/HeuristicBot.java | 3 +- javaAPI/fr/iut_fbleau/HexGame/MiniMaxBot.java | 2 +- .../fr/iut_fbleau/HexGame/MonteCarloBot.java | 4 +- javaAPI/fr/iut_fbleau/HexGame/Simulation.java | 184 +++++++++--------- 4 files changed, 97 insertions(+), 96 deletions(-) diff --git a/javaAPI/fr/iut_fbleau/HexGame/HeuristicBot.java b/javaAPI/fr/iut_fbleau/HexGame/HeuristicBot.java index 1666346..8c9c4c2 100644 --- a/javaAPI/fr/iut_fbleau/HexGame/HeuristicBot.java +++ b/javaAPI/fr/iut_fbleau/HexGame/HeuristicBot.java @@ -35,10 +35,11 @@ public class HeuristicBot extends AbstractGamePlayer { int size = board.getSize(); int center = size / 2; float score = 0; + //HexBoard simBoard = (HexBoard) board.safeCopy(); for (int i = 0; i < size; i++) { for (int j = 0; j < size; j++) { - if (board.getPlayerAt(i, j) == Player.PLAYER1) { + if (board.getCellPlayer(i, j) == Player.PLAYER1) { score += Math.abs(i - center) + Math.abs(j - center); // Distance from center } } diff --git a/javaAPI/fr/iut_fbleau/HexGame/MiniMaxBot.java b/javaAPI/fr/iut_fbleau/HexGame/MiniMaxBot.java index bb71baf..d23ab50 100644 --- a/javaAPI/fr/iut_fbleau/HexGame/MiniMaxBot.java +++ b/javaAPI/fr/iut_fbleau/HexGame/MiniMaxBot.java @@ -79,7 +79,7 @@ public class MiniMaxBot extends AbstractGamePlayer { int score = 0; for (int i = 0; i < size; i++) { for (int j = 0; j < size; j++) { - if (board.getPlayerAt(i, j) == Player.PLAYER1) { + if (board.getCellPlayer(i, j) == Player.PLAYER1) { score += Math.abs(i - center) + Math.abs(j - center); // Distance from center } } diff --git a/javaAPI/fr/iut_fbleau/HexGame/MonteCarloBot.java b/javaAPI/fr/iut_fbleau/HexGame/MonteCarloBot.java index 55a4e43..6935120 100644 --- a/javaAPI/fr/iut_fbleau/HexGame/MonteCarloBot.java +++ b/javaAPI/fr/iut_fbleau/HexGame/MonteCarloBot.java @@ -37,7 +37,7 @@ public class MonteCarloBot extends AbstractGamePlayer { private float monteCarloSimulation(HexBoard board) { RandomBot simBot = new RandomBot(Player.PLAYER1, new Random().nextLong()); - HexBoard simBoard = board.safeCopy(); + HexBoard simBoard = (HexBoard) board.safeCopy(); int wins = 0; int simulations = 0; @@ -51,7 +51,7 @@ public class MonteCarloBot extends AbstractGamePlayer { wins++; } simulations++; - simBoard = board.safeCopy(); // Reset the board for the next simulation + simBoard = (HexBoard) board.safeCopy(); // Reset the board for the next simulation } return (float) wins / simulations; diff --git a/javaAPI/fr/iut_fbleau/HexGame/Simulation.java b/javaAPI/fr/iut_fbleau/HexGame/Simulation.java index c18f87b..6fbc9bd 100644 --- a/javaAPI/fr/iut_fbleau/HexGame/Simulation.java +++ b/javaAPI/fr/iut_fbleau/HexGame/Simulation.java @@ -3,6 +3,7 @@ package fr.iut_fbleau.HexGame; import fr.iut_fbleau.GameAPI.*; import java.util.EnumMap; import java.util.LinkedList; +import java.util.Random; public class Simulation extends AbstractGame { @@ -27,18 +28,19 @@ public class Simulation extends AbstractGame { //METHODES /*Le jeu de Hex ne peut jamais finir avec le résultat null. En utilisant cette propriété, on peut avoir cet algorithme simplifié du monte-carlo*/ - private float MonteCarlo(HexBoard position){ - RandomBot simplay = new RandomBot(); - HexBoard simpos = position.safeCopy(); + private float MonteCarlo(HexBoard position, Player current){ + RandomBot simplay = new RandomBot(current, new Random().nextLong()); + HexBoard simpos = position; LinkedList ctaken = taken; HexPly testmove; float wins = 0; float losses = 0; - + int count = 0; for(int i=0; i=losses){ - return losses/wins; - } else { - return -(wins/losses); - } - + System.out.println(" wins : "+wins+"/losses : "+losses); + System.out.println(" eval : "+(wins-losses)/EVALDEPTH); + return (wins-losses)/EVALDEPTH; } private float explMAX(HexBoard position, int depth){ @@ -66,7 +68,7 @@ public class Simulation extends AbstractGame { } else if (position.getResult()==Result.WIN){ return 1.0f; } else if (depth==MAXDEPTH) { - return MonteCarlo(position); + return MonteCarlo(position, Player.PLAYER1); } else { float bestcase = -1.0f; HexPly bestcasemove; @@ -108,7 +110,7 @@ public class Simulation extends AbstractGame { } else if (position.getResult()==Result.WIN){ return 1.0f; } else if (depth==MAXDEPTH) { - return MonteCarlo(position); + return MonteCarlo(position, Player.PLAYER2); } else { float bestcase = 1.0f; HexPly bestcasemove; @@ -145,94 +147,92 @@ public class Simulation extends AbstractGame { } private float explMAXAB(HexBoard position, int depth, float A, float B){ - if (position.getResult() == Result.LOSS) { + if (position.getResult()==Result.LOSS) { return -1.0f; - } else if (position.getResult() == Result.WIN) { + } else if (position.getResult()==Result.WIN){ return 1.0f; - } else if (depth == MAXDEPTH) { - return MonteCarlo(position); + } else if (depth==MAXDEPTH) { + return MonteCarlo(position, Player.PLAYER1); } else { - float bestcase = A; - HexPly bestcasemove; - HexPly testmove; - for (int i = 0; i < position.getSize(); i++) { - for (int j = 0; j < position.getSize(); j++) { - if (depth == 0) { - //System.out.println("MAX New Line :"); - } - Integer[] t = new Integer[]{i, j}; - testmove = new HexPly(Player.PLAYER1, i, j); - if (!taken.contains(t) && position.isLegal(testmove)) { - //System.out.println(" MAX test move : "+Integer.toString(i)+","+Integer.toString(j)); - taken.add(t); - position.doPly(testmove); - float val = explMINAB(position, depth + 1, bestcase, B); - if (val >= bestcase) { - //System.out.println(" MAX new best case"); - bestcase = val; - bestcasemove = testmove; - if (depth == 0) { - this.bestoutcome = bestcase; - this.bestmove = bestcasemove; - } - if (bestcase >= B) { - return bestcase; - } + float bestcase = A; + HexPly bestcasemove; + HexPly testmove; + for (int i=0; i= bestcase) { + //System.out.println(" MAX new best case"); + bestcase = val; + bestcasemove = testmove; + if (depth==0) { + this.bestoutcome = bestcase; + this.bestmove = bestcasemove; + } + if(bestcase>=B){ + return bestcase; + } + } + position.undoPly(); + taken.remove(t); + } } - position.undoPly(); - taken.remove(t); - } } - } - return bestcase; + return bestcase; } } - - -private float explMINAB(HexBoard position, int depth, float A, float B){ - if (position.getResult() == Result.LOSS) { - return -1.0f; - } else if (position.getResult() == Result.WIN) { - return 1.0f; - } else if (depth == MAXDEPTH) { - return MonteCarlo(position); - } else { - float bestcase = B; - HexPly bestcasemove; - HexPly testmove; - for (int i = 0; i < position.getSize(); i++) { - for (int j = 0; j < position.getSize(); j++) { - if (depth == 0) { - //System.out.println("MIN New Line :"); - } - Integer[] t = new Integer[]{i, j}; - testmove = new HexPly(Player.PLAYER2, i, j); - if (!taken.contains(t) && position.isLegal(testmove)) { - //System.out.println(" MIN test move : "+Integer.toString(i)+","+Integer.toString(j)); - taken.add(t); - position.doPly(testmove); - float val = explMAXAB(position, depth + 1, A, bestcase); - if (val <= bestcase) { - //System.out.println(" MIN new best case"); - bestcase = val; - bestcasemove = testmove; - if (depth == 0) { - this.bestoutcome = bestcase; - this.bestmove = bestcasemove; + private float explMINAB(HexBoard position, int depth, float A, float B){ + if (position.getResult()==Result.LOSS) { + return -1.0f; + } else if (position.getResult()==Result.WIN){ + return 1.0f; + } else if (depth==MAXDEPTH) { + return MonteCarlo(position, Player.PLAYER2); + } else { + float bestcase = B; + HexPly bestcasemove; + HexPly testmove; + for (int i=0; i Date: Fri, 6 Feb 2026 11:01:27 +0100 Subject: [PATCH 07/13] cette fois-ci ce sera la bonne --- build/fr/iut_fbleau/HexGame/Arena.class | Bin 3022 -> 0 bytes build/fr/iut_fbleau/HexGame/ArenaMain.class | Bin 876 -> 0 bytes build/fr/iut_fbleau/HexGame/HexBoard.class | Bin 5632 -> 0 bytes build/fr/iut_fbleau/HexGame/HexFrame.class | Bin 3281 -> 0 bytes build/fr/iut_fbleau/HexGame/HexMain$1.class | Bin 431 -> 0 bytes build/fr/iut_fbleau/HexGame/HexMain.class | Bin 2125 -> 0 bytes build/fr/iut_fbleau/HexGame/HexPanel$1.class | Bin 716 -> 0 bytes build/fr/iut_fbleau/HexGame/HexPanel.class | Bin 4430 -> 0 bytes build/fr/iut_fbleau/HexGame/HexPly.class | Bin 1189 -> 0 bytes .../fr/iut_fbleau/HexGame/HexSimMain$Args.class | Bin 591 -> 0 bytes .../fr/iut_fbleau/HexGame/HexSimMain$Stats.class | Bin 2212 -> 0 bytes build/fr/iut_fbleau/HexGame/HexSimMain.class | Bin 6583 -> 0 bytes .../iut_fbleau/HexGame/HumanConsolePlayer.class | Bin 2871 -> 0 bytes build/fr/iut_fbleau/HexGame/RandomBot.class | Bin 1327 -> 0 bytes 14 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 build/fr/iut_fbleau/HexGame/Arena.class delete mode 100644 build/fr/iut_fbleau/HexGame/ArenaMain.class delete mode 100644 build/fr/iut_fbleau/HexGame/HexBoard.class delete mode 100644 build/fr/iut_fbleau/HexGame/HexFrame.class delete mode 100644 build/fr/iut_fbleau/HexGame/HexMain$1.class delete mode 100644 build/fr/iut_fbleau/HexGame/HexMain.class delete mode 100644 build/fr/iut_fbleau/HexGame/HexPanel$1.class delete mode 100644 build/fr/iut_fbleau/HexGame/HexPanel.class delete mode 100644 build/fr/iut_fbleau/HexGame/HexPly.class delete mode 100644 build/fr/iut_fbleau/HexGame/HexSimMain$Args.class delete mode 100644 build/fr/iut_fbleau/HexGame/HexSimMain$Stats.class delete mode 100644 build/fr/iut_fbleau/HexGame/HexSimMain.class delete mode 100644 build/fr/iut_fbleau/HexGame/HumanConsolePlayer.class delete mode 100644 build/fr/iut_fbleau/HexGame/RandomBot.class diff --git a/build/fr/iut_fbleau/HexGame/Arena.class b/build/fr/iut_fbleau/HexGame/Arena.class deleted file mode 100644 index 3f8ddcaf6e96fbf20abc31e261cda5dfc2989c0f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3022 zcmX^0Z`VEs1_pD6*<1{23|8z6)?5rs3|5>Bsth*l47MB$c3cds4E7+t0|$d6h~vc0 z;LOFq&EUe#;L6|zBHTfQ2Rnl&CxaJ*H^?9#E(Tu)KOqJNh9EA6V1^Jb233YoE`~6M za3KaphDeYxQS1!STnthSG3*Sn>S3^EMyoD8xI2_RM?h?T_7kj%xP#E=3aQrQ{O z*cs9p8Ca6?ONtp81bng*%M$fVOEPoxeKLzntQi?NgEQ0f5=%;pQW+U+(4=jA(u(vm zOH1O@l5$cLOZD9ob5k7yJoO!uic5+TlS@GSfSkn2)FNv;kWtCSW#L7cC83?dMt zGV}G_GILTPqSlNIY&MyBnI(3N49psuVT=qc&iN^+j12rfnR%&xrMXF|MInhvIjM{c zyul@j$=SY%1yDX)VoHirehDLkt_JaL0@=V^RGP=mkip2nS&)-h>6=)RoWaOYLV_VA zScgMtP-<~$4k)O(g7Zs@l2bte!pOkoSd^NVs0WG<9tK?oJw^s$5E~LVjzvX@m7oaX zVNhq#U}O*iOQ8fNBZFWf$b|SJu<^xu$;D+LgEDy-v>9|58AP4(OB4)s6hM@bjzV~5 zUS4Vu7Y{=gLpIE+%zS-Mf7goS)Pj=C{5&3p90omhhFl(oJcfK8h608{9)==@VnzlH zViN&7LkSNm@rIWWRS+L7#y{X3<6*m-#5Vr6!l)bPyzoFfxd0 zK(Y;3PjE?5W?s5AC>66M78IoBr7$vRAuDjsNGu9YEi6sVOHQ@cgy_u7*N0~|{(_>+ zyb^Fu3MooVPGw}^1G@+uMxfNi$iSSKl7eO}#HrSrQH%^M#hF#9;JoU|$iSSQS^`q) z3AG9AMyO&GzXn$pm!#%0GBD?tf;7P06##KfQEFnYH6sH@dTNPtPGWH}BZII8vXNjx zYeoisuv@{lfQ1+tc+*o$f-`dqa#H;gb5j`^L{RiWgNut{BEuv`2GO9>yu8f3bcI|{ zmbX%1R46M}U}R(v&rQrubfSWk;=%xUY3|sn(Cj%$e@O7FEl){+QP=D!>Gf^#mL}=tOM!@ zOqXJcU^SIBIVZn3m63r(!xNO!M3Bt}hdVd{vIqD$M!E(WGBU{FDCHn|%9@dZxd0UH zX2|A%@}o79d$9NtD#XYDwaJK)!30++?Fr8IPy@k<8DxQPVgcBx3L2U?oCwKf*6a+E zL8Z%dMg|o`63fgh%g;{LhlD01eYhnim*f{!vNOzNWMK2j&(AI`U}WI&1eK%UfJrT8 zWSD{MO{f`=QqChWFC{0nSOuaH>R9BIgcKeq8bc}zQn4tHMp6$AEadov8sVInlM|d- zl4{M)FpH5v6~lkn+{VZthhH6oB7-V}8Uq6Z69W^dK4M^G&;;|e7??nn4FdxM3j-sl z5@TRw&}U#^Xk=hvU}9ik(AV0|z^JvGfhlr31M^k}7OmY3tdT-&+ZoumGH_^ZVc-zr z+{VBazMO%>M|&Fs&qfAD27U%L22BQT1||jr1_lNt1`Y-W1_1^Z23`h!1|bF+24My@ z1~CRr1`!4=22ln*25|;MunMOC44Mp#>2o(zm<#j=S(PX$M7&0tlFa`&-0RzV$1}4To3<8Y*844KK z*cntA8QB>Gz{nIF_CFZdelf8AVqo=TXW#~<12YD5NRTq5Gq5nQF)%P#?`DvS6yV;@ zAnmuCK_*g2b~}Td6^kUxCI)%!Z43(GAeN#Ih_#zRDN${@+$&%nUI P$H2r8z`)252qq%{2yPVl diff --git a/build/fr/iut_fbleau/HexGame/ArenaMain.class b/build/fr/iut_fbleau/HexGame/ArenaMain.class deleted file mode 100644 index 18210ecc07ec06d438b476638bff325fd5e17128..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 876 zcmX^0Z`VEs1_pBm6D|f}1{rn+SuO@95G}{aAkUz{$^ZrimRt-h42mErC3Xg7kdz7+ z0~doTJA)b*122eH=VIVzPz9;bU}w-|XV79~V6(~0%Pg^DWMJ0N3}a+qan4UkWn|#@ z$;?ajE6q(xEec6Y%1LEpV98C)%wuE_(}?!TN-Rs%&q>Tn*AFf!%FIi*25IC9&Mz%W zPIb!!Ddux5O3h33P0Y;G11aWV5MdByWROlP($6d{iBC()Nlh%(_eia9Ps~l#2diad zkjE|?l$e*2pX-!g!p@-0!=S^U3o=ZPhe4mgfRRA~yB^=nyiDK33a9)M9tJ~*4kJbe zCG3hlQcH_6i%T+-o$^Z<8I-Xr^3BgHNp(&v%E<>CY7FuY4hMt11M)f}g8<0$kdX3E z%1TWxVPud&H6IiJjsc$f0Xd14sYQ$o>;XQGk*-08j0|!<_*7amGAL=_SK$SU6}H5b z6tKT^ajAApDlREXOfCVr1mX&CbV40s#K@qCODB?Q=AzO(21N!T24QeYWMW_h#W({a zgBSw?gDe9h10w?i1FP0{2F8sH3=E76;tUK7Y!E>PP6i1ENvP5a1~vvJ1_lO?-3&~T z+ZmXBw0ASGL~deW6=7i8&cLyafm3@o16SlG2JY<)JP;l)NP0U1AB4vbkrM#%wlN4I vY?EVPXJBApXW(GqV31_sWKd_|VlZXkW^iWUWpHQUV_;;EVqjokVvq&^t?AKH diff --git a/build/fr/iut_fbleau/HexGame/HexBoard.class b/build/fr/iut_fbleau/HexGame/HexBoard.class deleted file mode 100644 index 654424d125f8c32a0420c50ec87a355c79af4d24..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5632 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 XgCs*A0|Nse0~13(10%x(FgY0j diff --git a/build/fr/iut_fbleau/HexGame/HexFrame.class b/build/fr/iut_fbleau/HexGame/HexFrame.class deleted file mode 100644 index 29f983f61d3234468606b585d44b4b63a693b593..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3281 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 RgCm1410#bUm<$4wkpMqPb`Jmm diff --git a/build/fr/iut_fbleau/HexGame/HexMain$1.class b/build/fr/iut_fbleau/HexGame/HexMain$1.class deleted file mode 100644 index f572f6f0f079918c8f965725c3893adc083f71b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 431 zcmX^0Z`VEs1_pBmQ7#5%20nHMes%^yMg}&U%)HDJJ4OZ*4WG0k{mjym__U;))WlMK z_r%;(#{f@#PpACEq7-YNti-ZJ{nC=m9DUck(p=xf0&C4MMg|t={FGEi27aH+yi~u^ z+@#c^ki?{%R7M7_;QZ2}2qOc(YhH3resN}Ax^HSpMt%xA zgAfmcFoOsq1BYK~afwHMaS0Ct3j-@7gFLF6JW?w_&eDe(r((#+z~h;hms;eUlUQ7w zTFl6xgsK6g8srJbq~emI#N-kXpOHZpRS}x0j0`NfiJ5tf3}PD55MSpc=B4WgmlS2@ zrCV!;F(@!FF)%ZL03!nf$ej#~3~USx4Dt-jU~zUWZJq55j2jsk7#JDY85kJY7(fc8 o7+4rM7#J9s7&sZYz#6$3co=xWBHRoD3=9lh42%p+AafZQ0BMwF3;+NC diff --git a/build/fr/iut_fbleau/HexGame/HexMain.class b/build/fr/iut_fbleau/HexGame/HexMain.class deleted file mode 100644 index 10e072e70290b0436cff1ba2801aab91e3d7e30f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2125 zcmX^0Z`VEs1_pD6GA;&b1`RF-O$IG?25oi*9WDkI23>XrJx&IF1_LezHU>j>1|xO` zV=e|x1`|#OE(TL}1~V=OUIufJhy_T*lAXbdi$RdVnv21P!4{;^j*G#b!GVjxk-=Gona9W=rV;Ivl~|UjpOcuEt{+@dl$n=q4bsRP zT#}fa?VDHtR?p7h&B(wNoL^d$oa&Yd($C|OTH%|RnWqQR&B(y*ms(unn+md^n1?}@ zL5`ilhljzJ!H4uc#cgDhUl7#Re>fdr0B|D>$cMTfVc@c;ec&mE+{QwWH3Xv9+YgXA=cE)H5IHB7#SJF za}%>uo%8dO6HCG~OEN$iup}|Bq!`Uos13;R0~JE^5>ynF-dK}!@{3d18S+7StB8?7 z1spWs=+4Y5%g;`QmVyx5-4c^a@{20j8A=!#*nINyvr7vY8D=1R9I6SDZ#@$8QgTv@ zRUj&%F%LEy>H?(TLD3jeS&)iFIday;62ed;oD*|$f-_4}t=Sn$85vYDJcP|{j0|%4 z)iEeCNHIt=fB+K%BdADcU}TVIU|^7CU}RuqU|?X?+RnhZk%57MkwJlhfq@My$j!jX zpva&ERr-~Ije(tkfuT!)-9~F4%R&Y|EoP$~3`{o58CZOGGq6NTZ)afj-Oa!jxru>& zI|GN`ZU)XsA+GHV+*T}-ESng3b~ErsZerlk-Oj+bje$QLBqjh66M%{BW)O_jk!0D< zAY{cV$-0d}*otivgNV*H2GLCnB9d%77{qolh%+#3W026@#vr+ofsuieL4ZM+fti5` z>~1RtJ_ZH`J_cq6ez1%PgD`_EgD8UrgBXJ`gE)gbg9Jk~gA_wLgET`PgDgWSgB(LE zg91Y*gCc`60|SE~1Ji#7VFo641{FpIMs@~f1_l-eRR#tICI&SIbp{ZRkwK6_hJk@W jh=GYg5EP&c3=9Pf#SDcEk_^ra3=A9$j0`Rej0~;-Qh_z_ diff --git a/build/fr/iut_fbleau/HexGame/HexPanel$1.class b/build/fr/iut_fbleau/HexGame/HexPanel$1.class deleted file mode 100644 index 3166fc2f1730c9874d98aab011e54db8e76ffecd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 716 zcmX^0Z`VEs1_pBm4Ne9&1~D!Mb_Q`S1_=g95Fy3IAj}}m&LG3iAjinSR+5oftYW~( zpx~2Mq@P(@5}%folbTqn?~z*Jo|u~oq5~51Qgf^s8Q5$x^D;~97#Wl`2r1SKV`N}) z&QD2YWZ?J7%uDqv%}q)z3Q0`LNo8c<$;~e{iEiUoMFD~I>;9%ec2`aKPDDf~TGpO(|sDcPJ26aXT1^oV2F=S-m z@yyFhEppCDEG|whW@L~C*^KU7$CSi^lGGwb208rZF*2Cr2|cI$#G({yaClVc7nf(| zrR#h7BqpWifCGYA0~8#R*sKSK79#^odTL1oBLlOBrYD3G$;iN+k(if~0|{?N238GE zPt7m}1qL<-b_NCpMgaj(=rAxaFflMNa4~Q*Ff#BkFfb@FFhNALw6`)aYHep=+6Yq3 zz{|kEz{bGHz`&r+z{tSIzzSI~W<*7{CAkhJB=L diff --git a/build/fr/iut_fbleau/HexGame/HexPanel.class b/build/fr/iut_fbleau/HexGame/HexPanel.class deleted file mode 100644 index 78b3803bf1b302f7fcfb9e0fba99111ca13499b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4430 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 GSU3U5XiD$^ diff --git a/build/fr/iut_fbleau/HexGame/HexPly.class b/build/fr/iut_fbleau/HexGame/HexPly.class deleted file mode 100644 index 51bf46d6f2297899ccf99fc72bdb9f2a1141fa11..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1189 zcmX^0Z`VEs1_pBmb1nuB260XXb_NL$A<4zS&LG9bAk82n#K6Fyz|Nq^&Y;A|z+9AH z&d9*%$;iN*oS(zUz-E(~msw)R$e^s@lUAgkSy~dGmXwp4SgP-yn49Vt;He*wlUSKr zWbNsx8OF%K;+&t7%E-X)lbM(5SDKrYS`?C)l#|NHz?Pm`5(F}uSwqtk!gU6j&ry;e zTvC*om(Iu_qM_-Nl~|UjpOcuEt`8BlW@O+B&Mz%WPIb!!8N=<7S`m;_sRvTW!@$F! z%)`LRz{SJB4I)$+RM{ESco@_fG#D8KobvNaic5+T3w%>cGV)W3`PmpWIT*Bf7_=F5 z7#U!vD0rHPN#CS#qMO0~!9LTSZNgxxGO9FB#85tA_ga{}+IMY*0AOXb4prE0N zKL{Ba1VH{m_CF&7ds$*mX{vu3BZHa-QtE(To&Jw^sOh*zo$z|mvN zsH0GnUk;*@^K)z&YZ)2Da}%>uo%8dO6HCG~OER4E^NLFn^Gb>t88nbBg2scVCl;&N z8T3KHY0Su=f^c|dURi#2Dm4Be=DQ^(m*f{!vNM=6GO+pN=VzA|Ff#CX=H;apIp-u6 z7pE38GR#1>6lw+}<~$PfQgTv@RUjIzkpcngHY5=gjUklVs>)RNiCz@#O+m4SI90|Nsi13y?FNS=>@m4Tmui$Q>a zpFxm;kwE}Vf=rNQU}RuqU|?X?+QPuJ2Cj__EGWXj$RLDODKolK2?j<6VFr)}kg2*1 z%wPjVwYD*^?0^`qwS|Fs7Xupu!v-{4WEq$lM8TdFV=!W1VBlh4WH4YbVK8KnWRPWG PVBlb2WRPQEWRM2{10*6e diff --git a/build/fr/iut_fbleau/HexGame/HexSimMain$Args.class b/build/fr/iut_fbleau/HexGame/HexSimMain$Args.class deleted file mode 100644 index cdd9d64cddccaf9251b4dd26b8c04e75f213fe12..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 591 zcmX^0Z`VEs1_pBmEiML51}RPk4hCruA;ZNW%OD40$%6<55TVGv!R@Gx+*GpO@0XfSB(aIT00n6wlc74 zF>hsH(_-Apz`hZzS(Jf+L5hKmfq}t_frY`Efs4V0L6E_gL4v`KL6*Uuftf*!fq{XE YL7YJXOiMDTfStz3z`-ENpv=Gp0C59zzW@LL diff --git a/build/fr/iut_fbleau/HexGame/HexSimMain$Stats.class b/build/fr/iut_fbleau/HexGame/HexSimMain$Stats.class deleted file mode 100644 index dc3104d5c4aaa5dcb1c9e83a44795e9491348af3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2212 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 Date: Fri, 6 Feb 2026 11:13:37 +0100 Subject: [PATCH 08/13] c'est 'bon' --- build/fr/iut_fbleau/HexGame/Arena.class | Bin 0 -> 3022 bytes build/fr/iut_fbleau/HexGame/ArenaMain.class | Bin 0 -> 876 bytes build/fr/iut_fbleau/HexGame/HeuristicBot.class | Bin 0 -> 1495 bytes build/fr/iut_fbleau/HexGame/HexBoard.class | Bin 0 -> 5632 bytes build/fr/iut_fbleau/HexGame/HexFrame.class | Bin 0 -> 3281 bytes build/fr/iut_fbleau/HexGame/HexMain$1.class | Bin 0 -> 431 bytes build/fr/iut_fbleau/HexGame/HexMain.class | Bin 0 -> 2363 bytes build/fr/iut_fbleau/HexGame/HexPanel$1.class | Bin 0 -> 716 bytes build/fr/iut_fbleau/HexGame/HexPanel.class | Bin 0 -> 4430 bytes build/fr/iut_fbleau/HexGame/HexPly.class | Bin 0 -> 1189 bytes .../fr/iut_fbleau/HexGame/HexSimMain$Args.class | Bin 0 -> 591 bytes .../fr/iut_fbleau/HexGame/HexSimMain$Stats.class | Bin 0 -> 2212 bytes build/fr/iut_fbleau/HexGame/HexSimMain.class | Bin 0 -> 6583 bytes .../iut_fbleau/HexGame/HumanConsolePlayer.class | Bin 0 -> 2871 bytes build/fr/iut_fbleau/HexGame/MiniMaxBot.class | Bin 0 -> 2161 bytes build/fr/iut_fbleau/HexGame/MonteCarloBot.class | Bin 0 -> 1883 bytes build/fr/iut_fbleau/HexGame/RandomBot.class | Bin 0 -> 1327 bytes build/fr/iut_fbleau/HexGame/Simulation.class | Bin 0 -> 6560 bytes javaAPI/arena_results.csv | 0 javaAPI/fr/iut_fbleau/HexGame/HexMain.java | 14 ++++++++++---- 20 files changed, 10 insertions(+), 4 deletions(-) create mode 100644 build/fr/iut_fbleau/HexGame/Arena.class create mode 100644 build/fr/iut_fbleau/HexGame/ArenaMain.class create mode 100644 build/fr/iut_fbleau/HexGame/HeuristicBot.class create mode 100644 build/fr/iut_fbleau/HexGame/HexBoard.class create mode 100644 build/fr/iut_fbleau/HexGame/HexFrame.class create mode 100644 build/fr/iut_fbleau/HexGame/HexMain$1.class create mode 100644 build/fr/iut_fbleau/HexGame/HexMain.class create mode 100644 build/fr/iut_fbleau/HexGame/HexPanel$1.class create mode 100644 build/fr/iut_fbleau/HexGame/HexPanel.class create mode 100644 build/fr/iut_fbleau/HexGame/HexPly.class create mode 100644 build/fr/iut_fbleau/HexGame/HexSimMain$Args.class create mode 100644 build/fr/iut_fbleau/HexGame/HexSimMain$Stats.class create mode 100644 build/fr/iut_fbleau/HexGame/HexSimMain.class create mode 100644 build/fr/iut_fbleau/HexGame/HumanConsolePlayer.class create mode 100644 build/fr/iut_fbleau/HexGame/MiniMaxBot.class create mode 100644 build/fr/iut_fbleau/HexGame/MonteCarloBot.class create mode 100644 build/fr/iut_fbleau/HexGame/RandomBot.class create mode 100644 build/fr/iut_fbleau/HexGame/Simulation.class create mode 100644 javaAPI/arena_results.csv diff --git a/build/fr/iut_fbleau/HexGame/Arena.class b/build/fr/iut_fbleau/HexGame/Arena.class new file mode 100644 index 0000000000000000000000000000000000000000..3f8ddcaf6e96fbf20abc31e261cda5dfc2989c0f GIT binary patch literal 3022 zcmX^0Z`VEs1_pD6*<1{23|8z6)?5rs3|5>Bsth*l47MB$c3cds4E7+t0|$d6h~vc0 z;LOFq&EUe#;L6|zBHTfQ2Rnl&CxaJ*H^?9#E(Tu)KOqJNh9EA6V1^Jb233YoE`~6M za3KaphDeYxQS1!STnthSG3*Sn>S3^EMyoD8xI2_RM?h?T_7kj%xP#E=3aQrQ{O z*cs9p8Ca6?ONtp81bng*%M$fVOEPoxeKLzntQi?NgEQ0f5=%;pQW+U+(4=jA(u(vm zOH1O@l5$cLOZD9ob5k7yJoO!uic5+TlS@GSfSkn2)FNv;kWtCSW#L7cC83?dMt zGV}G_GILTPqSlNIY&MyBnI(3N49psuVT=qc&iN^+j12rfnR%&xrMXF|MInhvIjM{c zyul@j$=SY%1yDX)VoHirehDLkt_JaL0@=V^RGP=mkip2nS&)-h>6=)RoWaOYLV_VA zScgMtP-<~$4k)O(g7Zs@l2bte!pOkoSd^NVs0WG<9tK?oJw^s$5E~LVjzvX@m7oaX zVNhq#U}O*iOQ8fNBZFWf$b|SJu<^xu$;D+LgEDy-v>9|58AP4(OB4)s6hM@bjzV~5 zUS4Vu7Y{=gLpIE+%zS-Mf7goS)Pj=C{5&3p90omhhFl(oJcfK8h608{9)==@VnzlH zViN&7LkSNm@rIWWRS+L7#y{X3<6*m-#5Vr6!l)bPyzoFfxd0 zK(Y;3PjE?5W?s5AC>66M78IoBr7$vRAuDjsNGu9YEi6sVOHQ@cgy_u7*N0~|{(_>+ zyb^Fu3MooVPGw}^1G@+uMxfNi$iSSKl7eO}#HrSrQH%^M#hF#9;JoU|$iSSQS^`q) z3AG9AMyO&GzXn$pm!#%0GBD?tf;7P06##KfQEFnYH6sH@dTNPtPGWH}BZII8vXNjx zYeoisuv@{lfQ1+tc+*o$f-`dqa#H;gb5j`^L{RiWgNut{BEuv`2GO9>yu8f3bcI|{ zmbX%1R46M}U}R(v&rQrubfSWk;=%xUY3|sn(Cj%$e@O7FEl){+QP=D!>Gf^#mL}=tOM!@ zOqXJcU^SIBIVZn3m63r(!xNO!M3Bt}hdVd{vIqD$M!E(WGBU{FDCHn|%9@dZxd0UH zX2|A%@}o79d$9NtD#XYDwaJK)!30++?Fr8IPy@k<8DxQPVgcBx3L2U?oCwKf*6a+E zL8Z%dMg|o`63fgh%g;{LhlD01eYhnim*f{!vNOzNWMK2j&(AI`U}WI&1eK%UfJrT8 zWSD{MO{f`=QqChWFC{0nSOuaH>R9BIgcKeq8bc}zQn4tHMp6$AEadov8sVInlM|d- zl4{M)FpH5v6~lkn+{VZthhH6oB7-V}8Uq6Z69W^dK4M^G&;;|e7??nn4FdxM3j-sl z5@TRw&}U#^Xk=hvU}9ik(AV0|z^JvGfhlr31M^k}7OmY3tdT-&+ZoumGH_^ZVc-zr z+{VBazMO%>M|&Fs&qfAD27U%L22BQT1||jr1_lNt1`Y-W1_1^Z23`h!1|bF+24My@ z1~CRr1`!4=22ln*25|;MunMOC44Mp#>2o(zm<#j=S(PX$M7&0tlFa`&-0RzV$1}4To3<8Y*844KK z*cntA8QB>Gz{nIF_CFZdelf8AVqo=TXW#~<12YD5NRTq5Gq5nQF)%P#?`DvS6yV;@ zAnmuCK_*g2b~}Td6^kUxCI)%!Z43(GAeN#Ih_#zRDN${@+$&%nUI P$H2r8z`)252qq%{2yPVl literal 0 HcmV?d00001 diff --git a/build/fr/iut_fbleau/HexGame/ArenaMain.class b/build/fr/iut_fbleau/HexGame/ArenaMain.class new file mode 100644 index 0000000000000000000000000000000000000000..18210ecc07ec06d438b476638bff325fd5e17128 GIT binary patch literal 876 zcmX^0Z`VEs1_pBm6D|f}1{rn+SuO@95G}{aAkUz{$^ZrimRt-h42mErC3Xg7kdz7+ z0~doTJA)b*122eH=VIVzPz9;bU}w-|XV79~V6(~0%Pg^DWMJ0N3}a+qan4UkWn|#@ z$;?ajE6q(xEec6Y%1LEpV98C)%wuE_(}?!TN-Rs%&q>Tn*AFf!%FIi*25IC9&Mz%W zPIb!!Ddux5O3h33P0Y;G11aWV5MdByWROlP($6d{iBC()Nlh%(_eia9Ps~l#2diad zkjE|?l$e*2pX-!g!p@-0!=S^U3o=ZPhe4mgfRRA~yB^=nyiDK33a9)M9tJ~*4kJbe zCG3hlQcH_6i%T+-o$^Z<8I-Xr^3BgHNp(&v%E<>CY7FuY4hMt11M)f}g8<0$kdX3E z%1TWxVPud&H6IiJjsc$f0Xd14sYQ$o>;XQGk*-08j0|!<_*7amGAL=_SK$SU6}H5b z6tKT^ajAApDlREXOfCVr1mX&CbV40s#K@qCODB?Q=AzO(21N!T24QeYWMW_h#W({a zgBSw?gDe9h10w?i1FP0{2F8sH3=E76;tUK7Y!E>PP6i1ENvP5a1~vvJ1_lO?-3&~T z+ZmXBw0ASGL~deW6=7i8&cLyafm3@o16SlG2JY<)JP;l)NP0U1AB4vbkrM#%wlN4I vY?EVPXJBApXW(GqV31_sWKd_|VlZXkW^iWUWpHQUV_;;EVqjokVvq&^t?AKH literal 0 HcmV?d00001 diff --git a/build/fr/iut_fbleau/HexGame/HeuristicBot.class b/build/fr/iut_fbleau/HexGame/HeuristicBot.class new file mode 100644 index 0000000000000000000000000000000000000000..05312214455ad10e830872ac8b94b3720f40122b GIT binary patch literal 1495 zcmX^0Z`VEs1_pBm7cK@t203;Hd3FW`mjCtt|8p@gF(|S#D1m5YE(SIR6%b1mM5u8w z2r#IFSQ;QglaoP{un zFc>qKfGjZOVK8Gb=V7p5u;gKoVvy!xuwt<0VX$GaWoNMCVX$X#U}tdTVQ^w_W@J#p zWg^1ij0_s6ia@>w#TG0GL3~KeVYm<^1yTx$3`Pd_^wg5z%&JsI24)RSPeulT^wbjP z(xRf&yb_oR3L3bg45GpsOH{zDfvWKI1f?MM%wnI^^u!!S1~v4kgQl{4ng`XwtO2r<7v!JRoE(Tl7#Wl_JUt0|2Q5}%j)R%O9^m5`=^A9n z$RLL!EkjgVGcxcYl8tX-Nd_YWb7E34BLjfAOi?6GcbbEAp;|W2m=Fy z5(5(h69WSSo0j%=2F8sH3=E76q6`cSpj^zrz`?-Ez{$YKAjTjLRsR7j!oZNNeSm?< zSBS-p(TauHj8&9XXBz|SB8CuVGd58+2-|5l16!odHU@T4R#CR?3>;SMI+E<$7&vD# zD1jMVS~}YpxGgxuIaH_4W8f0!aFb-WV$s>gz|+FUxcvX_7FNdP|5r+~Y+ztuU;;bJ zi9vvYfq|ESm4T0egMpucn?aC4oI!{|nL(Jrgh7PCmO+%knL&)fi$Ro8yt)p NP}egu$bik31pv9+UU2{b literal 0 HcmV?d00001 diff --git a/build/fr/iut_fbleau/HexGame/HexBoard.class b/build/fr/iut_fbleau/HexGame/HexBoard.class new file mode 100644 index 0000000000000000000000000000000000000000..654424d125f8c32a0420c50ec87a355c79af4d24 GIT binary patch literal 5632 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 XgCs*A0|Nse0~13(10%x(FgY0j literal 0 HcmV?d00001 diff --git a/build/fr/iut_fbleau/HexGame/HexFrame.class b/build/fr/iut_fbleau/HexGame/HexFrame.class new file mode 100644 index 0000000000000000000000000000000000000000..29f983f61d3234468606b585d44b4b63a693b593 GIT binary patch literal 3281 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 RgCm1410#bUm<$4wkpMqPb`Jmm literal 0 HcmV?d00001 diff --git a/build/fr/iut_fbleau/HexGame/HexMain$1.class b/build/fr/iut_fbleau/HexGame/HexMain$1.class new file mode 100644 index 0000000000000000000000000000000000000000..2cc6a347e95e0db60eb5178de3dfac249fb63c7d GIT binary patch literal 431 zcmX^0Z`VEs1_pBmQ7#5%20nHMes%^yMg}&U%)HDJJ4OZ*4WG0k{mjym__U;))WlMK z_r%;(#{f@#PpACEq7-YNti-ZJ{nC=m9DUck(p=xf0&C4MMg|t={FGEi27aH+yi~u^ z+@#c^ki?{%R7M7_;QZ2}2qOc(YhH3resN}Ax^HSpMt%xA zgAfmcFoOsq1BYK~afwHMaS0Ct3j-@7gFLF6JW?w_&eDe(r((#+z~h;hms;eUlUQ7w zTFl6xgsK6g8srJbq~emI#N-kXpOHZpRS}x0j0`NfiJ5tf3}PD55MSpc=B4WgmlS2@ zrCV!;F(@!FF)%ZL03!nf$ej#~3~USx4Dt-jU~zUWZJq55j2jsk7#JDY85kJY7(fc; o8CV!N7#J9s7&sZYz#6$3co=xWBHRoD3=9lh42%p+AafZQ0BUt+5dZ)H literal 0 HcmV?d00001 diff --git a/build/fr/iut_fbleau/HexGame/HexMain.class b/build/fr/iut_fbleau/HexGame/HexMain.class new file mode 100644 index 0000000000000000000000000000000000000000..478294878df72ebf78b0f035ecd3f657a14d7e63 GIT binary patch literal 2363 zcmX^0Z`VEs1_pD6CN2gA20bnYeFg(|219lRBQ6FO24i*x6HW$G1~V=OHU@Kc1`Bou zOD+aZ1}jbmE(U9M1{*F0UItr`h#g48o`b=Gi@}k>iJifji$R#d1w^>AGq`avh=Dln z46Y#4Jh&J<8N5IWy@ePU82mxp0FVuV>HJf3-ZsYT8?iN(dK#f%JWHko;u zC3cJq%o>_uj0`N!`6;Q44E#Qsd8vM-xk;%-A&E&jsf-LPxrv#1j0|EL(LPy;Wr_MZ ziFxVz!6ikRdFj?5jl97niOJc%i3MQw>?r18P-0MKX9(kA2xo|3WRM4`fLH->gj;@5ZeodRMRICENoIZ? zBZFL8k$z@rNqkyTPHJMQzDH_>dtz=Xh<3_PEJ^{H7s<#V2sWp*Br``pI5`pIZ+3<# z9)@U!7?6Tk6a}t%rMbR|1&jYRQLkP#R1w0fiwW19Lto1Q2l+P?VX6h%;euO3TdGM-paaU@rhE%E`mwwJ=5o z_OisB(p3L6Mg}$Hu!VUZDJ&tOWzEG<$xy|}pcQm@B`9qsmMCbXlqwYDXXceCq@*g8 zm8OCyXnN38uu@=TWDw6y%uaRA&r41$3C}Fa0Ok3T#JrMXG)tj2AV(ln2+jRaQBZ

&h1l+vm|T)yRLRcJz{tSnlb@emTENIK z1KHzHO^|%=k(if~lUl3-Q3;J^u-Q--AO#PK#*oT_R4mGovp$v(h8p3Vn3EHnS(0ka z&d|unpo-xkY;I#@ki)NzL6Je8L4g4Tm>3vAwFmYah!(20krjqa6%PHp>}Ue0MXj zL`rXGVD;V2z!tfQfqgpzhu>}n&PXAy?F`&jtdgvo7_iD~U)UC5xK#bP8RxQ#(*CWGW|2H{8@N!INQB35jYY}*(_tyq>bi0x(&gNTYl zL?x_PHZe%*Y-5nx#2_ijvV%c-7lRA~!!`z4-E9nV8yOfGI2i;Ogc+C_n84oiVgS|p zybR0?d<>in{0t%tLJYDDA`BV~VhqL%;tcK#5)9D{(hNBaG7J?AvJCYMatuuj@(g_p z3Jg;jlo{qQs4%QyP-ED@pw6Jdz`$V3!1A9#n1P9%L6ebzk)45=;Xgwz0~?6T&cMPB z4meH*hW`vg$b#$)TI>v*3=9k`4B89~3``6<47y+*BZC-&A_D`15Cao~7%0vd7#M08 X>KSSoBpG}d7#KJh7#VyS7#aKkSK4ou literal 0 HcmV?d00001 diff --git a/build/fr/iut_fbleau/HexGame/HexPanel$1.class b/build/fr/iut_fbleau/HexGame/HexPanel$1.class new file mode 100644 index 0000000000000000000000000000000000000000..3166fc2f1730c9874d98aab011e54db8e76ffecd GIT binary patch literal 716 zcmX^0Z`VEs1_pBm4Ne9&1~D!Mb_Q`S1_=g95Fy3IAj}}m&LG3iAjinSR+5oftYW~( zpx~2Mq@P(@5}%folbTqn?~z*Jo|u~oq5~51Qgf^s8Q5$x^D;~97#Wl`2r1SKV`N}) z&QD2YWZ?J7%uDqv%}q)z3Q0`LNo8c<$;~e{iEiUoMFD~I>;9%ec2`aKPDDf~TGpO(|sDcPJ26aXT1^oV2F=S-m z@yyFhEppCDEG|whW@L~C*^KU7$CSi^lGGwb208rZF*2Cr2|cI$#G({yaClVc7nf(| zrR#h7BqpWifCGYA0~8#R*sKSK79#^odTL1oBLlOBrYD3G$;iN+k(if~0|{?N238GE zPt7m}1qL<-b_NCpMgaj(=rAxaFflMNa4~Q*Ff#BkFfb@FFhNALw6`)aYHep=+6Yq3 zz{|kEz{bGHz`&r+z{tSIzzSI~W<*7{CAkhJB=L literal 0 HcmV?d00001 diff --git a/build/fr/iut_fbleau/HexGame/HexPanel.class b/build/fr/iut_fbleau/HexGame/HexPanel.class new file mode 100644 index 0000000000000000000000000000000000000000..78b3803bf1b302f7fcfb9e0fba99111ca13499b9 GIT binary patch literal 4430 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 GSU3U5XiD$^ literal 0 HcmV?d00001 diff --git a/build/fr/iut_fbleau/HexGame/HexPly.class b/build/fr/iut_fbleau/HexGame/HexPly.class new file mode 100644 index 0000000000000000000000000000000000000000..51bf46d6f2297899ccf99fc72bdb9f2a1141fa11 GIT binary patch literal 1189 zcmX^0Z`VEs1_pBmb1nuB260XXb_NL$A<4zS&LG9bAk82n#K6Fyz|Nq^&Y;A|z+9AH z&d9*%$;iN*oS(zUz-E(~msw)R$e^s@lUAgkSy~dGmXwp4SgP-yn49Vt;He*wlUSKr zWbNsx8OF%K;+&t7%E-X)lbM(5SDKrYS`?C)l#|NHz?Pm`5(F}uSwqtk!gU6j&ry;e zTvC*om(Iu_qM_-Nl~|UjpOcuEt`8BlW@O+B&Mz%WPIb!!8N=<7S`m;_sRvTW!@$F! z%)`LRz{SJB4I)$+RM{ESco@_fG#D8KobvNaic5+T3w%>cGV)W3`PmpWIT*Bf7_=F5 z7#U!vD0rHPN#CS#qMO0~!9LTSZNgxxGO9FB#85tA_ga{}+IMY*0AOXb4prE0N zKL{Ba1VH{m_CF&7ds$*mX{vu3BZHa-QtE(To&Jw^sOh*zo$z|mvN zsH0GnUk;*@^K)z&YZ)2Da}%>uo%8dO6HCG~OER4E^NLFn^Gb>t88nbBg2scVCl;&N z8T3KHY0Su=f^c|dURi#2Dm4Be=DQ^(m*f{!vNM=6GO+pN=VzA|Ff#CX=H;apIp-u6 z7pE38GR#1>6lw+}<~$PfQgTv@RUjIzkpcngHY5=gjUklVs>)RNiCz@#O+m4SI90|Nsi13y?FNS=>@m4Tmui$Q>a zpFxm;kwE}Vf=rNQU}RuqU|?X?+QPuJ2Cj__EGWXj$RLDODKolK2?j<6VFr)}kg2*1 z%wPjVwYD*^?0^`qwS|Fs7Xupu!v-{4WEq$lM8TdFV=!W1VBlh4WH4YbVK8KnWRPWG PVBlb2WRPQEWRM2{10*6e literal 0 HcmV?d00001 diff --git a/build/fr/iut_fbleau/HexGame/HexSimMain$Args.class b/build/fr/iut_fbleau/HexGame/HexSimMain$Args.class new file mode 100644 index 0000000000000000000000000000000000000000..3ac94f9e4cbc97d860f1ff94c6be3e9dfee6ab06 GIT binary patch literal 591 zcmX^0Z`VEs1_pBmEiML51}RPk4hCruA;ZNW%OD40$%6<55TVGv!R@Gx+*GpO@0XfSB(aIT00n6wlc74 zF>hsH(_-Apz`hZzS(Jf+L5hKmfq}uDfrY_?fs4VDL6E_VL4v`XL6*UXftf*!fq{XE YL7YJXOiMDTfStz3z`-ENpv=Gp0Dif24FCWD literal 0 HcmV?d00001 diff --git a/build/fr/iut_fbleau/HexGame/HexSimMain$Stats.class b/build/fr/iut_fbleau/HexGame/HexSimMain$Stats.class new file mode 100644 index 0000000000000000000000000000000000000000..3f1560f00b7df6f9fb2990f3e50935b1cf2fb774 GIT binary patch literal 2212 zcmX^0Z`VEs1_pD6MlJ?v23Jl7O$Ij*;SM4^K!hhdgBNT4e+U2xc(XPzKmds6!^z;w z;0Gf7K|}x-Lm)#ChzRCl&}0Zi8;RcWvRuC3>>+cd2nW81(eBVlbM%UV#mn9tf3jk z$iU*9pOVVR!0(fpm+DuVo0M7KNduACy{Lnp0x!2{MK^xFj(-+c&WQs+%=EF&E?pW(`d*Mh5os%)Fq)l2ovz zE{qHuAV)(4I6w}EG84;WrEzw?~z&&oSEyJn3<;sQp?D|;g?!m;*nom!p@M(!(hl@#KWM)pv}Xe10r-m zgdT%7BLg2uHN<3}{JeA?27Qo}0fRO>Lmm%9K0^TyLm`MLVklr|DCS`(VJPKcC<74| z43>-x;t1^!hdGsI=A@(+F*2}&0;$+afrp`-p#nryGBPl7F*2})d-_=^C@?Z`DQKwb z8KtSJYH~3$2q4VyPs&P7F5zLYVz6dssN!L$W~gCjsO4d(W2k3jU~>s_3t$GO&S%!Jff^ zkwFbLT0K%LK#tZ&gr!PwNn%McBLgdx=JCwSOD%HFNh~e~#jOG%{frDUs7gTQBT^0{ z19P~iA0vYt{`AGjzyk6%BLfS_zbJ9$n^=;;$iSQn$_%U;US6QI#+;j2!N|atSWu9f zm%_-PtAUw%FcTCs-mDoJWHh|+Nh8ISOMWRhqp+7H=9H%Tr!g{!YPcZlg($E_iC#!D zVPs%S%P-1JEMa7@#NxhaBqu}CgEg|b5HqY98H7>Y3QED&3cf*C}x zfCyGC5eD|H44hgb3|w0ocs4RHFfcNhFfcI4F|ac*FeovwFeo!{GN>@{F{m;KGpI92 zFlaEyGiWj}Fqkr!K`oiZz{X3#3>o4Wj2O%r7(h-E5f)%zV6b4Ygt}9mfdw2G{90QW zn6$PqFehqlVPHvI3->e|SQ_MgD+X(*CL5?GNv&-RLYz}(F|hM3XW#>w&;=6d%3sgG zzyNU;M7tT(dL~{kP@vclHi;RBN#>{~*%CI11&2u%s3zGFHi;F7NtVbaF@lO9XgGag z;ACK8U|=}1n?X2oJA;UiwvgyH1~E_=ZDSA@lGw%|7OpKM2@=}EzyuPKV%f_e9my=h zAfvU7K`wg-gM9D~1_g*ZMTk0P40TGV>XaesSTNM7psG`41KXvwjX@1$Pb3Q{mF-|q z4~}F7B{2{SX7@G*jScV=0m%lo3>*x04AKnt49*M=4A~5h43in081^$bGcYqaf}`Jw Z!5K`uFyt^WFmN$2GH5cmFk~}u0RZc=$~gc4 literal 0 HcmV?d00001 diff --git a/build/fr/iut_fbleau/HexGame/HexSimMain.class b/build/fr/iut_fbleau/HexGame/HexSimMain.class new file mode 100644 index 0000000000000000000000000000000000000000..19a1a5b8f4be09e766a7b75f51a444c4cf25dc52 GIT binary patch literal 6583 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 DaCyhO literal 0 HcmV?d00001 diff --git a/build/fr/iut_fbleau/HexGame/HumanConsolePlayer.class b/build/fr/iut_fbleau/HexGame/HumanConsolePlayer.class new file mode 100644 index 0000000000000000000000000000000000000000..ab4c1f67dd53a6f560378542daacdd06fec12149 GIT binary patch literal 2871 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 H*gj1FcG|@Y literal 0 HcmV?d00001 diff --git a/build/fr/iut_fbleau/HexGame/RandomBot.class b/build/fr/iut_fbleau/HexGame/RandomBot.class new file mode 100644 index 0000000000000000000000000000000000000000..ea379a6995e4bfdcf1550ac7844bdae50f07e501 GIT binary patch literal 1327 zcmX^0Z`VEs1_pD604@em1{F>Q5e8Lu1~o1QW(IXG1`!4gb_Pu@1~vvQZU$`z9c~6i z23-)L$IhV7&7ijJX*27)(HXQ;=>m5X+pM!GfK^l97SAC@-CnLC7a7 zu`E%)v?Mb}KPWLTB|q1ik%7%7GcU8mj*-Dw!zZmsKeMzXJ}oIHHL+CRJux@cF~Czl zASbahwa6M%vt}401B-KhN-84*zfWdfs$XetQfg61Vp2{jBZCqFQX}(A zi+uCTQW+VXaq01N%1 z85y{O^Gl18Q{6H_j^l%P-zmRD4-_Ok3=#}BJPcwC;*1OeAOYks0!i9}2uVf;VT7b( zQBh*0PiAomNXm|#!Jdb~fx(f7!HL0{hrxxxm61UadvGE-mWRQO!JUV}gTa}RK^|;$ zPGVlVzGqHOYI_ej0`M!V2%h(JvfB@ld@8i zORO0gm=jY{7#T!0AZ8)Uf%LLx7Q5yalvJXr2reng%u9#3zBscg6>OC!BLh3gD$l$U zMg|rQPfbro2IlnC5|Ca`s9TZEXHaAiVGw0tU|?hr0;N0#1_ovZMg|E6Nd`s+DFy}x zZ3ZR=W(EcZZY}NY42)VjTN#)(f|W}%Ffj0erGyw*8H5=?w7#JAD8F(2a7#JC38RVe)W-u^=^@Z+cV2j+&!0xNPlYxVg z!B2N511BTHOa?I>-JJ|vj0^`DxOXz}FfoKL|NmTPCj&1?j(0Z$U!)NKb_Rj{I$B#8 zm~?hB2r@EkV-VWOAj|~Pv4Mesfr$a+bU6lg1_lNh1`Y;U27U%P1_=gv25kl<1``Hl i20I2d26+Ys23`i{zYP5B3<~TFiqb+1j0{R(?aBZtFFNf2 literal 0 HcmV?d00001 diff --git a/build/fr/iut_fbleau/HexGame/Simulation.class b/build/fr/iut_fbleau/HexGame/Simulation.class new file mode 100644 index 0000000000000000000000000000000000000000..3c970952f858e99f24170f64d824382e0324c928 GIT binary patch literal 6560 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 1) { try { size = Integer.parseInt(args[0]); } catch (NumberFormatException ignored) {} } @@ -19,12 +18,19 @@ public class HexMain { HexBoard board = new HexBoard(size); Scanner sc = new Scanner(System.in); + Result res; EnumMap players = new EnumMap<>(Player.class); players.put(Player.PLAYER1, new HumanConsolePlayer(Player.PLAYER1, sc)); players.put(Player.PLAYER2, new HumanConsolePlayer(Player.PLAYER2, sc)); - AbstractGame game = new AbstractGame(board, players) {}; - Result res = game.run(); + + if (args.length>=2 && args[1].equals("autoplay")) { + Simulation sim = new Simulation(board, players); + res = sim.run(); + } else { + AbstractGame game = new AbstractGame(board, players) {}; + res = game.run(); + } System.out.println(board); System.out.println("Résultat (du point de vue de PLAYER1) : " + res); From c278b1887286245a12d44f27a32c9173a19e98fc Mon Sep 17 00:00:00 2001 From: vaisse Date: Fri, 6 Feb 2026 11:25:47 +0100 Subject: [PATCH 09/13] definable size for arena --- javaAPI/arena_results.csv | 7 +++++++ javaAPI/fr/iut_fbleau/HexGame/Arena.java | 6 ++++-- javaAPI/fr/iut_fbleau/HexGame/ArenaMain.java | 6 +++++- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/javaAPI/arena_results.csv b/javaAPI/arena_results.csv index e69de29..6b82172 100644 --- a/javaAPI/arena_results.csv +++ b/javaAPI/arena_results.csv @@ -0,0 +1,7 @@ +Bot 1, Bot 2, Winner +RandomBot,MiniMaxBot,WIN +RandomBot,HeuristicBot,WIN +RandomBot,MonteCarloBot,WIN +MiniMaxBot,HeuristicBot,WIN +MiniMaxBot,MonteCarloBot,WIN +HeuristicBot,MonteCarloBot,WIN diff --git a/javaAPI/fr/iut_fbleau/HexGame/Arena.java b/javaAPI/fr/iut_fbleau/HexGame/Arena.java index b236f22..379fc11 100644 --- a/javaAPI/fr/iut_fbleau/HexGame/Arena.java +++ b/javaAPI/fr/iut_fbleau/HexGame/Arena.java @@ -12,11 +12,13 @@ public class Arena { private List bots = new ArrayList<>(); private FileWriter csvWriter; + private int board_size; - public Arena() { + public Arena(int size) { try { csvWriter = new FileWriter("arena_results.csv"); csvWriter.append("Bot 1, Bot 2, Winner\n"); + this.board_size = size; } catch (IOException e) { e.printStackTrace(); } @@ -51,7 +53,7 @@ public class Arena { } private Result playMatch(AbstractGamePlayer bot1, AbstractGamePlayer bot2) { - IBoard board = new HexBoard(11); + IBoard board = new HexBoard(this.board_size); EnumMap players = new EnumMap<>(Player.class); players.put(Player.PLAYER1, bot1); players.put(Player.PLAYER2, bot2); diff --git a/javaAPI/fr/iut_fbleau/HexGame/ArenaMain.java b/javaAPI/fr/iut_fbleau/HexGame/ArenaMain.java index 5dac4fe..013ac80 100644 --- a/javaAPI/fr/iut_fbleau/HexGame/ArenaMain.java +++ b/javaAPI/fr/iut_fbleau/HexGame/ArenaMain.java @@ -4,7 +4,11 @@ import fr.iut_fbleau.GameAPI.Player; public class ArenaMain { public static void main(String[] args) { - Arena arena = new Arena(); + int size = 7; + if (args.length >= 1) { + try { size = Integer.parseInt(args[0]); } catch (NumberFormatException ignored) {} + } + Arena arena = new Arena(size); arena.addBot(new RandomBot(Player.PLAYER1, 12345L)); // Correct constructor usage arena.addBot(new MiniMaxBot(Player.PLAYER2)); arena.addBot(new HeuristicBot(Player.PLAYER1)); From fe13b946b1a8463819dc01aeedc253bb1e6b62d2 Mon Sep 17 00:00:00 2001 From: vaisse Date: Fri, 6 Feb 2026 12:12:46 +0100 Subject: [PATCH 10/13] truc fonctionnel mais avec un retouchage dans l'API. dsl --- javaAPI/.~lock.arena_results.csv# | 1 + .../GameAPI/AbstractGamePlayer.java | 1 + javaAPI/fr/iut_fbleau/HexGame/Arena.java | 2 +- javaAPI/fr/iut_fbleau/HexGame/ArenaMain.java | 2 +- .../fr/iut_fbleau/HexGame/HeuristicBot.java | 4 +++ .../HexGame/HumanConsolePlayer.java | 4 +++ javaAPI/fr/iut_fbleau/HexGame/MiniMaxBot.java | 4 +++ .../fr/iut_fbleau/HexGame/MonteCarloBot.java | 4 +++ javaAPI/fr/iut_fbleau/HexGame/RandomBot.java | 4 +++ javaAPI/fr/iut_fbleau/HexGame/Simulation.java | 30 +++++++++++++++---- 10 files changed, 49 insertions(+), 7 deletions(-) create mode 100644 javaAPI/.~lock.arena_results.csv# diff --git a/javaAPI/.~lock.arena_results.csv# b/javaAPI/.~lock.arena_results.csv# new file mode 100644 index 0000000..e43af1b --- /dev/null +++ b/javaAPI/.~lock.arena_results.csv# @@ -0,0 +1 @@ +,vaisse,salle235-12,06.02.2026 11:29,file:///export/home/an23/vaisse/.config/libreoffice/4; \ No newline at end of file diff --git a/javaAPI/fr/iut_fbleau/GameAPI/AbstractGamePlayer.java b/javaAPI/fr/iut_fbleau/GameAPI/AbstractGamePlayer.java index c459eab..9b9e244 100644 --- a/javaAPI/fr/iut_fbleau/GameAPI/AbstractGamePlayer.java +++ b/javaAPI/fr/iut_fbleau/GameAPI/AbstractGamePlayer.java @@ -26,5 +26,6 @@ public abstract class AbstractGamePlayer { * @throws IllegalStateException if the Situation is already in the bookmarks */ public abstract AbstractPly giveYourMove(IBoard p); + public abstract Boolean jesuisMinimax(); } diff --git a/javaAPI/fr/iut_fbleau/HexGame/Arena.java b/javaAPI/fr/iut_fbleau/HexGame/Arena.java index 379fc11..c2e2182 100644 --- a/javaAPI/fr/iut_fbleau/HexGame/Arena.java +++ b/javaAPI/fr/iut_fbleau/HexGame/Arena.java @@ -59,6 +59,6 @@ public class Arena { players.put(Player.PLAYER2, bot2); Simulation simulation = new Simulation(board, players); - return simulation.run(); + return simulation.runForArena(); } } diff --git a/javaAPI/fr/iut_fbleau/HexGame/ArenaMain.java b/javaAPI/fr/iut_fbleau/HexGame/ArenaMain.java index 013ac80..e0b9b8a 100644 --- a/javaAPI/fr/iut_fbleau/HexGame/ArenaMain.java +++ b/javaAPI/fr/iut_fbleau/HexGame/ArenaMain.java @@ -9,7 +9,7 @@ public class ArenaMain { try { size = Integer.parseInt(args[0]); } catch (NumberFormatException ignored) {} } Arena arena = new Arena(size); - arena.addBot(new RandomBot(Player.PLAYER1, 12345L)); // Correct constructor usage + arena.addBot(new RandomBot(Player.PLAYER1, 24015L)); // Correct constructor usage arena.addBot(new MiniMaxBot(Player.PLAYER2)); arena.addBot(new HeuristicBot(Player.PLAYER1)); arena.addBot(new MonteCarloBot(Player.PLAYER2)); // Correct constructor usage diff --git a/javaAPI/fr/iut_fbleau/HexGame/HeuristicBot.java b/javaAPI/fr/iut_fbleau/HexGame/HeuristicBot.java index 8c9c4c2..169a335 100644 --- a/javaAPI/fr/iut_fbleau/HexGame/HeuristicBot.java +++ b/javaAPI/fr/iut_fbleau/HexGame/HeuristicBot.java @@ -8,6 +8,10 @@ public class HeuristicBot extends AbstractGamePlayer { super(me); // Correct constructor usage } + public Boolean jesuisMinimax(){ + return false; + } + @Override public AbstractPly giveYourMove(IBoard board) { HexBoard hb = (HexBoard) board; diff --git a/javaAPI/fr/iut_fbleau/HexGame/HumanConsolePlayer.java b/javaAPI/fr/iut_fbleau/HexGame/HumanConsolePlayer.java index 63068fc..49886f2 100644 --- a/javaAPI/fr/iut_fbleau/HexGame/HumanConsolePlayer.java +++ b/javaAPI/fr/iut_fbleau/HexGame/HumanConsolePlayer.java @@ -18,6 +18,10 @@ public class HumanConsolePlayer extends AbstractGamePlayer { this.in = in; } + public Boolean jesuisMinimax(){ + return false; + } + @Override public AbstractPly giveYourMove(IBoard board) { if (!(board instanceof HexBoard)) { diff --git a/javaAPI/fr/iut_fbleau/HexGame/MiniMaxBot.java b/javaAPI/fr/iut_fbleau/HexGame/MiniMaxBot.java index d23ab50..dfa9d81 100644 --- a/javaAPI/fr/iut_fbleau/HexGame/MiniMaxBot.java +++ b/javaAPI/fr/iut_fbleau/HexGame/MiniMaxBot.java @@ -10,6 +10,10 @@ public class MiniMaxBot extends AbstractGamePlayer { super(me); // Correct constructor usage } + public Boolean jesuisMinimax(){ + return true; + } + @Override public AbstractPly giveYourMove(IBoard board) { HexBoard hb = (HexBoard) board; diff --git a/javaAPI/fr/iut_fbleau/HexGame/MonteCarloBot.java b/javaAPI/fr/iut_fbleau/HexGame/MonteCarloBot.java index 6935120..333b655 100644 --- a/javaAPI/fr/iut_fbleau/HexGame/MonteCarloBot.java +++ b/javaAPI/fr/iut_fbleau/HexGame/MonteCarloBot.java @@ -12,6 +12,10 @@ public class MonteCarloBot extends AbstractGamePlayer { super(me); // Correct constructor usage } + public Boolean jesuisMinimax(){ + return false; + } + @Override public AbstractPly giveYourMove(IBoard board) { HexBoard hb = (HexBoard) board; diff --git a/javaAPI/fr/iut_fbleau/HexGame/RandomBot.java b/javaAPI/fr/iut_fbleau/HexGame/RandomBot.java index b670ada..8d29af7 100644 --- a/javaAPI/fr/iut_fbleau/HexGame/RandomBot.java +++ b/javaAPI/fr/iut_fbleau/HexGame/RandomBot.java @@ -19,6 +19,10 @@ public class RandomBot extends AbstractGamePlayer { this.rng = rng; } + public Boolean jesuisMinimax(){ + return false; + } + public RandomBot(Player me, long seed) { this(me, new Random(seed)); } diff --git a/javaAPI/fr/iut_fbleau/HexGame/Simulation.java b/javaAPI/fr/iut_fbleau/HexGame/Simulation.java index 6fbc9bd..95ad2ac 100644 --- a/javaAPI/fr/iut_fbleau/HexGame/Simulation.java +++ b/javaAPI/fr/iut_fbleau/HexGame/Simulation.java @@ -57,8 +57,8 @@ public class Simulation extends AbstractGame { ctaken = taken; count = 0; } - System.out.println(" wins : "+wins+"/losses : "+losses); - System.out.println(" eval : "+(wins-losses)/EVALDEPTH); + //System.out.println(" wins : "+wins+"/losses : "+losses); + //System.out.println(" eval : "+(wins-losses)/EVALDEPTH); return (wins-losses)/EVALDEPTH; } @@ -232,9 +232,7 @@ public class Simulation extends AbstractGame { } return bestcase; } - } - - + } private AbstractPly GiveBestMove(IBoard board) { @@ -269,5 +267,27 @@ public class Simulation extends AbstractGame { return simCurrentBoard.getResult(); } + public Result runForArena(){ + while(!simCurrentBoard.isGameOver()){ + AbstractGamePlayer player = simmapPlayers.get(simCurrentBoard.getCurrentPlayer()); + IBoard board = simCurrentBoard.safeCopy(); + AbstractPly ply; + if(player.jesuisMinimax()){ + ply = GiveBestMove(board); + } else { + ply = player.giveYourMove(board); + } + HexPly concretePly = (HexPly) ply; + + if (simCurrentBoard.isLegal(ply)) { + simCurrentBoard.doPly(ply); + taken.add(new Integer[]{concretePly.getRow(), concretePly.getCol()}); + System.out.println("Player "+player+" goes ("+concretePly.getRow()+","+concretePly.getCol()+")"); + } + else throw new IllegalStateException("Player "+ player + " is a bloody cheat. He tried playing : "+concretePly.getRow()+","+concretePly.getCol()+" I give up."); + } + return simCurrentBoard.getResult(); + } + } From fafebb26487420b7d48664050956636b100e5117 Mon Sep 17 00:00:00 2001 From: ducreux Date: Fri, 13 Feb 2026 16:39:48 +0100 Subject: [PATCH 11/13] Arbre --- README.md | 130 +++++------------- .../arena_results.csv => arena_results.csv | 0 javaAPI/fr/iut_fbleau/HexGame/MiniMaxBot.java | 88 ++++++++++-- 3 files changed, 115 insertions(+), 103 deletions(-) rename javaAPI/arena_results.csv => arena_results.csv (100%) diff --git a/README.md b/README.md index 6fcd83a..db6a180 100644 --- a/README.md +++ b/README.md @@ -1,115 +1,55 @@ -# Instructions de Travail sur les Tickets - -Ce document présente la procédure à suivre lors de la création et de la gestion des tickets de développement. Veuillez suivre chaque étape avec attention. -## 1. Création du Ticket - -### Titre du Ticket - -Le titre doit décrire de manière générale la tâche à réaliser. Soyez précis, mais sans entrer dans les détails techniques. Par exemple : - - Ajout d'une nouvelle fonctionnalité de recherche dans l'application - - Correction du bug d'affichage sur la page d'accueil - -### Description du Ticket - -La description doit fournir une explication légèrement détaillée des tâches à réaliser. Elle doit inclure les éléments suivants : - - Objectif global de la tâche - - Étapes spécifiques ou parties du projet concernées - - Comportement attendu une fois la tâche accomplie +# BUT3 – Projet Jeu : Hex -## 2. Création de la Branche +Il s’agit d’une implémentation du jeu **Hex** en Java, développée à partir de l’API fournie par le Monsieur Madelaine. +Le projet comprend un moteur de jeu fonctionnel, un affichage console pour le debug, ainsi que des bots permettant de jouer automatiquement. -Lorsque vous commencez à travailler sur un ticket, créez une nouvelle branche avec un nom particulier qui reflète le ticket en cours. Le format de la branche doit être : - nom-de-la-feature-#numeroduticket +## Compilation -### Pour créer une branche : +Depuis la racine du projet, compiler l’ensemble des fichiers Java avec la commande suivante : - git checkout -b feature-recherche-#123 - -## 3. Commit des Changements - -Les commits doivent suivre la convention suivante : - -- Le message de commit doit décrire brièvement le changement effectué. - -- À la fin du message de commit, vous devez toujours ajouter le numéro du ticket pour faciliter le suivi des tâches. - -Exemple de message de commit : - - Ajout du champ de recherche sur la page d'accueil #123 - -## 4. Push de la Branche - -Après avoir effectué vos changements et effectué vos commits, vous devrez pousser la branche sur le dépôt distant. Lors de votre premier git push, vous recevrez un message pour définir l'upstream de la branche. - -Exemple de message affiché : - -``` -fatal: The upstream branch 'origin/feature-recherche-#123' does not exist -To push the branch and set the upstream, use the following command: -git push --set-upstream origin nom-de-la-feature-#numero +```bash +javac -d build $(find javaAPI -name "*.java") ``` - -Vous devez copier et coller la commande dans votre terminal pour effectuer le push. Une fois cette commande exécutée, votre branche sera poussée vers le dépôt distant. - -## 5. Création d'une Pull Request (PR) - -Une fois que vous avez poussé votre branche sur Gitea, vous devez ouvrir une pull request pour demander la révision de votre code. - -Voici les étapes pour créer une pull request correctement : - -- Allez sur Gitea et naviguez vers le projet concerné. - -- Cliquez sur "Branches" et vous devriez voir la branche que vous venez de pousser. - -- Cliquez sur le bouton "Create Pull Request" à côté de votre branche. - -Remplissez les informations nécessaires : - -- Titre de la PR : Utilisez le même titre que celui du ticket. - -- Description de la PR : Décrivez brièvement ce que votre PR accomplit. Vous pouvez vous baser sur la description du ticket. - -- Revues : Assurez-vous de demander une révision par deux membres de l’équipe. - -- Cliquez sur "Create Pull Request" pour soumettre. - -Une fois la PR ouverte, vous devrez attendre la révision et l’approbation de l’équipe avant de pouvoir fusionner la branche dans main ou develop selon le flux de travail de votre projet. +Les fichiers compilés (`.class`) sont générés dans le dossier `bin`. -# Résumé des Commandes Git : +## Lancer une démonstration -Voici un récapitulatif des commandes Git que vous utiliserez fréquemment : +### Partie automatique (bot) -## 1. Créer une branche +```bash +java -cp build fr.iut_fbleau.HexGame.HexMain 3 autoplay +``` - git checkout -b feature-recherche-#123 +Ce mode permet de lancer une partie entièrement automatique en utilisant le bot implémenté dans la classe `Simulation`. + +### Partie interactive (joueur humain) + +```bash +java -cp build fr.iut_fbleau.HexGame.HexMain +``` + +Le plateau s’affiche dans le terminal et les coups sont entrés sous forme de coordonnées. -## 2. Ajouter les fichiers modifiés : +### Partie arène (bot) - git add . - git add * - git add +```bash +java -cp build fr.iut_fbleau.HexGame.ArenaMain +``` + +Créer un fichier arena_result.csv à la fin avec les résultats des combats -## 3. Commit des changements : +## Tests et validation - git commit -m "Ajout de [...] #numeroticket" +Les tests sont réalisés sous forme de **tests fonctionnels** via des méthodes `main` et des modes de démonstration : +- vérification de la validité des coups, +- alternance correcte des joueurs, +- détection des conditions de fin de partie, +- exécution de parties complètes en mode automatique. - -## 4. Pousser la branche - - git push -set-upstream origin - - -## 5. Supprimer une branche - - git branch -d \ No newline at end of file +L’affichage console du plateau, fourni par la méthode `HexBoard.toString()`, est utilisé comme outil de debug pour visualiser l’état du jeu à chaque tour. diff --git a/javaAPI/arena_results.csv b/arena_results.csv similarity index 100% rename from javaAPI/arena_results.csv rename to arena_results.csv diff --git a/javaAPI/fr/iut_fbleau/HexGame/MiniMaxBot.java b/javaAPI/fr/iut_fbleau/HexGame/MiniMaxBot.java index dfa9d81..927e3d2 100644 --- a/javaAPI/fr/iut_fbleau/HexGame/MiniMaxBot.java +++ b/javaAPI/fr/iut_fbleau/HexGame/MiniMaxBot.java @@ -6,6 +6,13 @@ public class MiniMaxBot extends AbstractGamePlayer { private int MAXDEPTH = 5; + /** + * En dessous (ou égal) à ce nombre de coups restants (cases vides), + * on considère que l'arbre est "petit" et on fait un alpha-bêta simple : + * pas de cut-off, on explore jusqu'aux positions terminales (isGameOver()). + */ + private int SMALL_TREE_MOVE_LIMIT = 6; + public MiniMaxBot(Player me) { super(me); // Correct constructor usage } @@ -20,12 +27,19 @@ public class MiniMaxBot extends AbstractGamePlayer { float bestScore = -Float.MAX_VALUE; HexPly bestMove = null; + // Détermine si l'arbre est petit ou grand + int movesLeft = countLegalMoves(hb); + boolean useCutoff = (movesLeft > SMALL_TREE_MOVE_LIMIT); + int depthToUse = useCutoff ? MAXDEPTH : 0; // 0 car en "simple" on ne coupe pas sur depth + for (int i = 0; i < hb.getSize(); i++) { for (int j = 0; j < hb.getSize(); j++) { HexPly move = new HexPly(hb.getCurrentPlayer(), i, j); if (hb.isLegal(move)) { hb.doPly(move); - float score = minimax(hb, MAXDEPTH, -Float.MAX_VALUE, Float.MAX_VALUE, true); + + float score = minimax(hb, depthToUse, -Float.MAX_VALUE, Float.MAX_VALUE, true, useCutoff); + if (score > bestScore) { bestScore = score; bestMove = move; @@ -37,8 +51,19 @@ public class MiniMaxBot extends AbstractGamePlayer { return bestMove; } - private float minimax(HexBoard board, int depth, float alpha, float beta, boolean isMaximizing) { - if (depth == 0 || board.isGameOver()) { + /** + * Minimax + alpha-bêta + * - useCutoff = false : alpha-bêta "simple" -> on s'arrête uniquement sur isGameOver() + * - useCutoff = true : alpha-bêta avec cut-off -> arrêt si depth == 0 (heuristique) + */ + private float minimax(HexBoard board, int depth, float alpha, float beta, boolean isMaximizing, boolean useCutoff) { + // Toujours prioritaire : position terminale + if (board.isGameOver()) { + return terminalScore(board); + } + + // Cut-off uniquement si demandé + if (useCutoff && depth == 0) { return evaluateBoard(board); } @@ -49,10 +74,18 @@ public class MiniMaxBot extends AbstractGamePlayer { HexPly move = new HexPly(board.getCurrentPlayer(), i, j); if (board.isLegal(move)) { board.doPly(move); - float score = minimax(board, depth - 1, alpha, beta, false); + + int nextDepth = useCutoff ? (depth - 1) : depth; + float score = minimax(board, nextDepth, alpha, beta, false, useCutoff); + bestScore = Math.max(bestScore, score); alpha = Math.max(alpha, bestScore); - if (beta <= alpha) break; // Pruning + + if (beta <= alpha) { + board.undoPly(); + break; // Pruning + } + board.undoPly(); } } @@ -65,10 +98,18 @@ public class MiniMaxBot extends AbstractGamePlayer { HexPly move = new HexPly(board.getCurrentPlayer(), i, j); if (board.isLegal(move)) { board.doPly(move); - float score = minimax(board, depth - 1, alpha, beta, true); + + int nextDepth = useCutoff ? (depth - 1) : depth; + float score = minimax(board, nextDepth, alpha, beta, true, useCutoff); + bestScore = Math.min(bestScore, score); beta = Math.min(beta, bestScore); - if (beta <= alpha) break; // Pruning + + if (beta <= alpha) { + board.undoPly(); + break; // Pruning + } + board.undoPly(); } } @@ -77,6 +118,22 @@ public class MiniMaxBot extends AbstractGamePlayer { } } + /** + * Score terminal (feuille) du point de vue de PLAYER1 : + * - WIN : PLAYER1 gagne + * - LOSS : PLAYER1 perd + */ + private float terminalScore(HexBoard board) { + Result r = board.getResult(); + if (r == null) return 0f; + if (r == Result.WIN) return 1000000f; + return -1000000f; + } + + /** + * Heuristique actuelle (inchangée) : distance au centre des pions PLAYER1. + * (Je ne la modifie pas pour ne pas toucher à la logique existante.) + */ private float evaluateBoard(HexBoard board) { int size = board.getSize(); int center = size / 2; @@ -90,4 +147,19 @@ public class MiniMaxBot extends AbstractGamePlayer { } return score; } -} + + /** + * Compte les coups légaux (cases vides) sur le plateau courant. + */ + private int countLegalMoves(HexBoard board) { + int count = 0; + for (int i = 0; i < board.getSize(); i++) { + for (int j = 0; j < board.getSize(); j++) { + if (board.getCellPlayer(i, j) == null) { + count++; + } + } + } + return count; + } +} \ No newline at end of file From 55f6492655a1dc9d1d3581d5d215cee17f78769f Mon Sep 17 00:00:00 2001 From: ducreux Date: Sun, 15 Feb 2026 21:18:16 +0100 Subject: [PATCH 12/13] nattoyage --- arena_results.csv | 7 - .../fr/iut_fbleau/GameAPI/AbstractBoard.class | Bin 2065 -> 0 bytes .../fr/iut_fbleau/GameAPI/AbstractGame.class | Bin 2148 -> 0 bytes .../GameAPI/AbstractGamePlayer.class | Bin 431 -> 0 bytes build/fr/iut_fbleau/GameAPI/AbstractPly.class | Bin 417 -> 0 bytes build/fr/iut_fbleau/GameAPI/IBoard.class | Bin 636 -> 0 bytes build/fr/iut_fbleau/GameAPI/Player.class | Bin 894 -> 0 bytes build/fr/iut_fbleau/GameAPI/Result.class | Bin 938 -> 0 bytes build/fr/iut_fbleau/HexGame/Arena.class | Bin 3022 -> 0 bytes build/fr/iut_fbleau/HexGame/ArenaMain.class | Bin 876 -> 0 bytes .../fr/iut_fbleau/HexGame/HeuristicBot.class | Bin 1495 -> 0 bytes build/fr/iut_fbleau/HexGame/HexBoard.class | Bin 5632 -> 0 bytes build/fr/iut_fbleau/HexGame/HexFrame.class | Bin 3281 -> 0 bytes build/fr/iut_fbleau/HexGame/HexMain$1.class | Bin 431 -> 0 bytes build/fr/iut_fbleau/HexGame/HexMain.class | Bin 2363 -> 0 bytes build/fr/iut_fbleau/HexGame/HexPanel$1.class | Bin 716 -> 0 bytes build/fr/iut_fbleau/HexGame/HexPanel.class | Bin 4430 -> 0 bytes build/fr/iut_fbleau/HexGame/HexPly.class | Bin 1189 -> 0 bytes .../iut_fbleau/HexGame/HexSimMain$Args.class | Bin 591 -> 0 bytes .../iut_fbleau/HexGame/HexSimMain$Stats.class | Bin 2212 -> 0 bytes build/fr/iut_fbleau/HexGame/HexSimMain.class | Bin 6583 -> 0 bytes .../HexGame/HumanConsolePlayer.class | Bin 2871 -> 0 bytes build/fr/iut_fbleau/HexGame/MiniMaxBot.class | Bin 2161 -> 0 bytes .../fr/iut_fbleau/HexGame/MonteCarloBot.class | Bin 1883 -> 0 bytes build/fr/iut_fbleau/HexGame/RandomBot.class | Bin 1327 -> 0 bytes build/fr/iut_fbleau/HexGame/Simulation.class | Bin 6560 -> 0 bytes results.csv | 10001 ---------------- 27 files changed, 10008 deletions(-) delete mode 100644 arena_results.csv delete mode 100644 build/fr/iut_fbleau/GameAPI/AbstractBoard.class delete mode 100644 build/fr/iut_fbleau/GameAPI/AbstractGame.class delete mode 100644 build/fr/iut_fbleau/GameAPI/AbstractGamePlayer.class delete mode 100644 build/fr/iut_fbleau/GameAPI/AbstractPly.class delete mode 100644 build/fr/iut_fbleau/GameAPI/IBoard.class delete mode 100644 build/fr/iut_fbleau/GameAPI/Player.class delete mode 100644 build/fr/iut_fbleau/GameAPI/Result.class delete mode 100644 build/fr/iut_fbleau/HexGame/Arena.class delete mode 100644 build/fr/iut_fbleau/HexGame/ArenaMain.class delete mode 100644 build/fr/iut_fbleau/HexGame/HeuristicBot.class delete mode 100644 build/fr/iut_fbleau/HexGame/HexBoard.class delete mode 100644 build/fr/iut_fbleau/HexGame/HexFrame.class delete mode 100644 build/fr/iut_fbleau/HexGame/HexMain$1.class delete mode 100644 build/fr/iut_fbleau/HexGame/HexMain.class delete mode 100644 build/fr/iut_fbleau/HexGame/HexPanel$1.class delete mode 100644 build/fr/iut_fbleau/HexGame/HexPanel.class delete mode 100644 build/fr/iut_fbleau/HexGame/HexPly.class delete mode 100644 build/fr/iut_fbleau/HexGame/HexSimMain$Args.class delete mode 100644 build/fr/iut_fbleau/HexGame/HexSimMain$Stats.class delete mode 100644 build/fr/iut_fbleau/HexGame/HexSimMain.class delete mode 100644 build/fr/iut_fbleau/HexGame/HumanConsolePlayer.class delete mode 100644 build/fr/iut_fbleau/HexGame/MiniMaxBot.class delete mode 100644 build/fr/iut_fbleau/HexGame/MonteCarloBot.class delete mode 100644 build/fr/iut_fbleau/HexGame/RandomBot.class delete mode 100644 build/fr/iut_fbleau/HexGame/Simulation.class delete mode 100644 results.csv diff --git a/arena_results.csv b/arena_results.csv deleted file mode 100644 index 6b82172..0000000 --- a/arena_results.csv +++ /dev/null @@ -1,7 +0,0 @@ -Bot 1, Bot 2, Winner -RandomBot,MiniMaxBot,WIN -RandomBot,HeuristicBot,WIN -RandomBot,MonteCarloBot,WIN -MiniMaxBot,HeuristicBot,WIN -MiniMaxBot,MonteCarloBot,WIN -HeuristicBot,MonteCarloBot,WIN diff --git a/build/fr/iut_fbleau/GameAPI/AbstractBoard.class b/build/fr/iut_fbleau/GameAPI/AbstractBoard.class deleted file mode 100644 index 7c1f157be56955f4e8a179a64cd2165f76336470..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2065 zcmX^0Z`VEs1_pD6a4rTR1`AFGK?X|@Va3T{&0qr}Y`Gci802o1MXjk%2e4w5TXGuOuKRu`;!YkwMNUtw=w! zv?M+)DJM0tRNp-@H`Ot~Qy(I4&B(x>ky%`lUsTD+An22oSeB??T9TQg?~+C@1=3SXoKfRn0jH7BFlS`o$}9$@3jZ=tdSTYkjACTqOiwKd zN-ZwUDPd&5Z309EC=F#6`=q8P<}fl47Xnd?3>=vysYQt;`9+KjVj7xA5$_2Vw`OFp z#wtNvG%_-6D*Xlw!@uz!jWdT9lmXmI+F0 zLa+z`%j$tL3J-%6g8~nO2!kjOgBXK2JA*F|gCB_F&mhXq5WvF_$PmQC5X=z5$e@Tl z55mk0$f@LE2xSQ2VNhaF=3$Tr8LPse%E+JqvImkO{qloLlQUd%Qgc)DN?a?FQwvHm z^Ya)Pj_^72bEGV{_Ek`wb3 zl2R2wA(WR2@=zEfgED@{f&+k&K>%T|e^ORzatR}Y40er>0L3W{NrsFJ>;XQGk*-08 zaF!7x13%ajM1jP}z>%1e;+9!dT*Am8ssTwgV827$04^`MA$bd`N(7dMkd-kqa2BMd zWCsK`OPjFfeUmU|Gh%tF?)Nbt?nYat1D~O$;ns z8JIw(G9j6&&cMZ>!63q*%^=O7!=T8(z`(-5B*MnP0!ma+bJf9KVPN3a+QPuBy_12B zi2-B`#Bp2)1L6~6@ lgE+%va7^$pFnO>u@cv=oVrSrBVPr62Fa?L788{i40|1ph=obJ0 diff --git a/build/fr/iut_fbleau/GameAPI/AbstractGame.class b/build/fr/iut_fbleau/GameAPI/AbstractGame.class deleted file mode 100644 index b2e2856db54a5c1037204cc0fe9793be89367c05..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2148 zcmX^0Z`VEs1_pD6L@ov)231Z5K?XGtq0Y^q$e;ltG`SeG7_`|LbU++kE(Uf6JrGMD zL>RC$7;-TfF&GPh%-~|+VXy!RTe34)u`^gRGVmmq78RxDl{n=m7NsyU$oZrd>1URf z#HS_Yq$ZZ?yC>$RItF;^dxGVy85y{86AJ=z5-U@SiWwP%eXv890M8)AJHbN{dn%8DcS2*x;}NVyZO`S;wT}lA^@q5|D$SD($Qp8Q5$x^D;~9 z7#U17aA<_O9Mc`vnqiC#EYA5Usf-N#KACx`ex2NbbjR}&0GYt1M|2G*2(aCoZW zasaXopdd$z&ft=w%)E3)2KKVVoYGYPG_bYcfW#G85FOTB4B-qBj0|d!;8$Q&$ShV! zR7lFn&rhjTNX|%2EYVZ&Q~-sLLTP~>BZGKuVs@%?eqM57NqA;ShI4*iaY&)fRTa6GcPZ-$T=smxHz?#kzoe1ZBR2HdC4O&FC{0nSOucd8Yv+` z>_8Sl(HK%$kcun`RUVCG0+!SXHNrVDCnq?wB-NUoA%T%W6~lkn+{VZthhH6wB7-0U zs1{>lU;-6f3=9lRpt6gBkwF~HmSA9FU}TVFkYZqBkY-?DFlJz4U}j)o;MdyDz^J9Y zm4Qi1XDb8qMg|53Mg|!M1_mJp76t|e6$TatRR&H5H3mKgb*NFY42%qN4Dt+&V1srt zFoRWQXl-F&+R4De$S{i`RBHL4c8A1K2wt7pgIEGB7Y0 zFz_%KGAJ+@F=#OuGZ-+KGT1VhF?capFhnz0GQ=@hGbk`HFbFfSF#KciWM^P!XHaBk tQ2N0j0P?>w*f14_7zPFgE(S)1D26zOXa-3J69xtb4hBXBQwBx`GXUZmRVe@f diff --git a/build/fr/iut_fbleau/GameAPI/AbstractGamePlayer.class b/build/fr/iut_fbleau/GameAPI/AbstractGamePlayer.class deleted file mode 100644 index deaa1ac26125b3ea82cfa337f9854d3f1a7464d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 431 zcmX^0Z`VEs1_pBm5iSN627XQkW(EOv20?ZPAw~w~OvhYC205R!BK^$LlK8ZwoYcfp zefPxNRL1~M{eYar%G4rjMg}&U%)HDJJ4OaY4g5+q!x$M@obyvs85#I}GV@aXN^_G^ zi$W5Ua#9%?c+xY=QX}(Ai+uCTQW+VXahc`ml%H6XVy%h8D#xValA^@ql7O5_YeojH z;QZ2}3ut*cmt&7#TPj7#Oq|m>8HC7#O&; vwlgqlX>Vm<+6Y$7#lXP8$H2_Mz#z!L!XU)J$so+a$iU6O1D53lo5KeH11f0p diff --git a/build/fr/iut_fbleau/GameAPI/AbstractPly.class b/build/fr/iut_fbleau/GameAPI/AbstractPly.class deleted file mode 100644 index 79018e631267e0837a60499a408777bc9cb0294f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 417 zcmX^0Z`VEs1_pBm5iSN627XQkW(EOv20?ZPAw~wato+i{(jrC%IiIv5{mjym__U;) z)WlMK_r%;(#{f_LfSkn2)FNv}1~!|_yv!0iMg~O<{7N;$7#Ucc^HWk88TfrN^HTjv zbCXhwLK2g5QW+UI(^E?zMlv!eXlUX$iIIUTIKQ+gIn^x_q*uT(sko#lF}Wllr&2E~ zu`H2?ft^8^hk=!WjgdhSyYrE>Ffs^$H0kFg=B4ZVCuOB3moPFgYiNeCC^9fJurM$% zFfuTK3}awmU}9ioU}xZ9U}WHAU|`T<}|L(?ZKu`E%)v?Mb} z-xDfs&B(wRoSB}NSW;S)%E(}iRgn!5w%J)TGO(uP2jo-|>%1^V2KLfCs1{}o%`ip= zj^f0$ROkGHN_^qr>6D*Xlw!@uz~Y>rlFG=y?~|FA>Q|bZlv)&$n3R*s$iNkxUs{x$ z>Xr%Oa6{DVf&9+MAcH-YAZi#H1VF0va}x8?_5G8wQj<&A7#SEDm>58SgN2cSnSq6Y zfrXKQm4OXRvommjX-)<%FwM=t!@$VE%fP_E#K6bG$iUAa02UWy5Mp3pU}O+x5Mf|s m5M^LskYWIt%)r2;wE-+6#=yY9#=ywHz~IZk$RG|jK>`3QqM||o diff --git a/build/fr/iut_fbleau/GameAPI/Player.class b/build/fr/iut_fbleau/GameAPI/Player.class deleted file mode 100644 index 6be1739d62f257aa093333e7149132b118672f47..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 894 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 P$H2r8z`)252qq%{2yPVl diff --git a/build/fr/iut_fbleau/HexGame/ArenaMain.class b/build/fr/iut_fbleau/HexGame/ArenaMain.class deleted file mode 100644 index 18210ecc07ec06d438b476638bff325fd5e17128..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 876 zcmX^0Z`VEs1_pBm6D|f}1{rn+SuO@95G}{aAkUz{$^ZrimRt-h42mErC3Xg7kdz7+ z0~doTJA)b*122eH=VIVzPz9;bU}w-|XV79~V6(~0%Pg^DWMJ0N3}a+qan4UkWn|#@ z$;?ajE6q(xEec6Y%1LEpV98C)%wuE_(}?!TN-Rs%&q>Tn*AFf!%FIi*25IC9&Mz%W zPIb!!Ddux5O3h33P0Y;G11aWV5MdByWROlP($6d{iBC()Nlh%(_eia9Ps~l#2diad zkjE|?l$e*2pX-!g!p@-0!=S^U3o=ZPhe4mgfRRA~yB^=nyiDK33a9)M9tJ~*4kJbe zCG3hlQcH_6i%T+-o$^Z<8I-Xr^3BgHNp(&v%E<>CY7FuY4hMt11M)f}g8<0$kdX3E z%1TWxVPud&H6IiJjsc$f0Xd14sYQ$o>;XQGk*-08j0|!<_*7amGAL=_SK$SU6}H5b z6tKT^ajAApDlREXOfCVr1mX&CbV40s#K@qCODB?Q=AzO(21N!T24QeYWMW_h#W({a zgBSw?gDe9h10w?i1FP0{2F8sH3=E76;tUK7Y!E>PP6i1ENvP5a1~vvJ1_lO?-3&~T z+ZmXBw0ASGL~deW6=7i8&cLyafm3@o16SlG2JY<)JP;l)NP0U1AB4vbkrM#%wlN4I vY?EVPXJBApXW(GqV31_sWKd_|VlZXkW^iWUWpHQUV_;;EVqjokVvq&^t?AKH diff --git a/build/fr/iut_fbleau/HexGame/HeuristicBot.class b/build/fr/iut_fbleau/HexGame/HeuristicBot.class deleted file mode 100644 index 05312214455ad10e830872ac8b94b3720f40122b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1495 zcmX^0Z`VEs1_pBm7cK@t203;Hd3FW`mjCtt|8p@gF(|S#D1m5YE(SIR6%b1mM5u8w z2r#IFSQ;QglaoP{un zFc>qKfGjZOVK8Gb=V7p5u;gKoVvy!xuwt<0VX$GaWoNMCVX$X#U}tdTVQ^w_W@J#p zWg^1ij0_s6ia@>w#TG0GL3~KeVYm<^1yTx$3`Pd_^wg5z%&JsI24)RSPeulT^wbjP z(xRf&yb_oR3L3bg45GpsOH{zDfvWKI1f?MM%wnI^^u!!S1~v4kgQl{4ng`XwtO2r<7v!JRoE(Tl7#Wl_JUt0|2Q5}%j)R%O9^m5`=^A9n z$RLL!EkjgVGcxcYl8tX-Nd_YWb7E34BLjfAOi?6GcbbEAp;|W2m=Fy z5(5(h69WSSo0j%=2F8sH3=E76q6`cSpj^zrz`?-Ez{$YKAjTjLRsR7j!oZNNeSm?< zSBS-p(TauHj8&9XXBz|SB8CuVGd58+2-|5l16!odHU@T4R#CR?3>;SMI+E<$7&vD# zD1jMVS~}YpxGgxuIaH_4W8f0!aFb-WV$s>gz|+FUxcvX_7FNdP|5r+~Y+ztuU;;bJ zi9vvYfq|ESm4T0egMpucn?aC4oI!{|nL(Jrgh7PCmO+%knL&)fi$Ro8yt)p NP}egu$bik31pv9+UU2{b diff --git a/build/fr/iut_fbleau/HexGame/HexBoard.class b/build/fr/iut_fbleau/HexGame/HexBoard.class deleted file mode 100644 index 654424d125f8c32a0420c50ec87a355c79af4d24..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5632 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 XgCs*A0|Nse0~13(10%x(FgY0j diff --git a/build/fr/iut_fbleau/HexGame/HexFrame.class b/build/fr/iut_fbleau/HexGame/HexFrame.class deleted file mode 100644 index 29f983f61d3234468606b585d44b4b63a693b593..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3281 zcmX^0Z`VEs1_pD616&Mx40b{c3=Ga(3@!|=TnqvXZXm*)lfi<)gOkCM!4pJyaWQx^ z_y{pDGWc^bNHPR~lmrSfFoC$i3?b|cq3jG{Ai;2Uh6o`BW`-y(1|f!M5D~-95X;3N z#$X5H#IZBPb1)>ZGbDnHNdghc>doBk<9*E8d5d|Qkkc&Z=p@^NKn4O`7k%7%7GcU8mj*)>`LomK};jsCo8cmQ9ma!FI_*lq$o2l-5R8kr?em? zu_QIPB(bEln32I;!zZmsKeMzXJ}oIHHL+CRBelXkF*g-NJLM-9rC5WFsn9Pj&&*5L z_wq?hO3eWq#2Z|an4ImKSOB(|ouQPSp^TA%HzzSSDJ4+_!&Q}sZu<6+QeFkoa5aLUgwDK05WEbvV&$;eMB=4WH55MVIiXJe@3 zVW?uLW@o73VW?%O<6)?0Xy9RJWN6}HXl7{PVQ6J&<6&rLXk%yS;9=-w=;CK%=;mPP z;bG`y=;LANXPCglFp*&r2g77`hABJ@QyHc)GRT80h6D>F;N0?yauZ8jE0R+SN;32F z7#Za7hX}~g(-|3rK<2>11?(pdh8ZB6XM$8r;9;1>FrAS>6r@Z)vAjgzDZeNswa6#2 zGQYHhhha9u9CS0lVav$Cz{ns4(gZU*7!>l(`FX`9iFqZ(AhYN4FwA3^&&a?FQU*5L zEkCb>hhYK3LLP=i42#(rmhdnvWmv|;u$*B9KK}$H=B4Ii28iutz4C@%y^Dvk)nBg-I914sK0$_K6Q=WfPR%&tyBZCZT zn1Yg+V}PfAP-<~$4sPjyoW#o1B1Q&bEQy(mVFSZPP!`$5$iQ4wn#ahXi8alG(=Q~x zgG%%AK)J*kTL_1iWaea+WTqA~GH_?+mE~ur`XrWsEEm_nW&|iNab*^RJmOylQpT*I z8O6xJnVwn#^OS;yCR*kKsYZC)nvsDy+|!SdL5`3z_5dHpNY@}k+)5!KWzEO{RceG1 z3y}QJ$iQBfm{XeSpT@|bhU_UwBw1@B`4ghUnu}pG!xlyc9!7;kh4jSqyu&LM6d4)B za}%>uo%8dO6HCG~OETbT6U|tt8CZ;EWMD5&EeT1jC}Cs}MRo~HOBf@AKzeG4b7@gg zYF-J%bBqkQ0~Dgdnvp@+Sv|G5MB(rP1xAIGRE4bkQc&CoA`+x$UP)>?NQ|Q(v8XuJ zGY^*&JQ*2SG(17k%;}L@p`fe4SiuM?S3NzkdPt%;wZtVgEwMDG#5pIwIMu%(wI~r% zo^TeYmO!#SBZD;5x1a(6BIcWzmzbVf1TIs>pt9hs0}TtX6WG&JOF(&?kwH)cYCXsV zkdQSa16N9FQD#{xh{wnvtl{Z~sRR_>5P2b}9dP|1FG_*}2v*=g3M#k60f0;z!@IT)5wK{a4OVsbVkgD5C)^OM0r9h91rSdv+m8j{b*0L!(g zMuDv2Do!m4%Ph`>RF@i2nqlk=TX`6^G3?@DuwpP_XV?uY#P={VD1ib6VlSjX(DwmX zZoa7{iD|IV;m$?y*ctXQGO+pN=VzA|Ff#CX=H;apIp-u67lR6wGms!aF%MGRc_ikg zKr|wI7n%ehfdWnxP=`P?hEx`$A}c3e5@IEOz0gF2Y^`%*PEK%UNvbs?g9=9A zKpYDx7T}3z2JL+fvDX^8ihv~(%z%UYfSqAKBZDf2Cm;a}2_9ICFfz#DSI3~ppv$1g z00JxwjG#6R10#bW0|SFB10w??0|NuA)^-NQjSQfw-H3sKfekFk$-v2A%wPglss>fc zrL~KJiGg7U12aNB7f6JGhk=tplYs+N2SfF=FfcK&FfcIKX>DU*naQB3wT*$*S7#Fg z+cE~uO$_YI8Q3;4aQJEK?qJ~D#lXeDu#JIxIfJma);0znun;d;2xJcv1IS%+4D1XH z3_1+#47vbB-t4(oY)yGe=!K~3vhvQ z4a7x^A`GkyYzzzxGX=P9wDz$qWZ=_cHrm0!XS1Av#dkM@K&13`20`E53__98(z_Uh z85p)Ri1_KUZDSDC-OV5txt&3L8-v7d2FXYvDdz1AGFB{-ERrnS7-U(5Y-3QA zWD($kz#R-q+ZdF0GpI!BNV05aP_<&!m1Gf8+s2@-E6FOP0iw4tXzDUx475@cZd&mhde z#Li&N$iT?Xz|X+I%wWU7z`(>{%dnFH)EQu8*v_z*VF!aGgFOQSgB$}3g98IIgCm0z RgCm1410#bUm<$4wkpMqPb`Jmm diff --git a/build/fr/iut_fbleau/HexGame/HexMain$1.class b/build/fr/iut_fbleau/HexGame/HexMain$1.class deleted file mode 100644 index 2cc6a347e95e0db60eb5178de3dfac249fb63c7d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 431 zcmX^0Z`VEs1_pBmQ7#5%20nHMes%^yMg}&U%)HDJJ4OZ*4WG0k{mjym__U;))WlMK z_r%;(#{f@#PpACEq7-YNti-ZJ{nC=m9DUck(p=xf0&C4MMg|t={FGEi27aH+yi~u^ z+@#c^ki?{%R7M7_;QZ2}2qOc(YhH3resN}Ax^HSpMt%xA zgAfmcFoOsq1BYK~afwHMaS0Ct3j-@7gFLF6JW?w_&eDe(r((#+z~h;hms;eUlUQ7w zTFl6xgsK6g8srJbq~emI#N-kXpOHZpRS}x0j0`NfiJ5tf3}PD55MSpc=B4WgmlS2@ zrCV!;F(@!FF)%ZL03!nf$ej#~3~USx4Dt-jU~zUWZJq55j2jsk7#JDY85kJY7(fc; o8CV!N7#J9s7&sZYz#6$3co=xWBHRoD3=9lh42%p+AafZQ0BUt+5dZ)H diff --git a/build/fr/iut_fbleau/HexGame/HexMain.class b/build/fr/iut_fbleau/HexGame/HexMain.class deleted file mode 100644 index 478294878df72ebf78b0f035ecd3f657a14d7e63..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2363 zcmX^0Z`VEs1_pD6CN2gA20bnYeFg(|219lRBQ6FO24i*x6HW$G1~V=OHU@Kc1`Bou zOD+aZ1}jbmE(U9M1{*F0UItr`h#g48o`b=Gi@}k>iJifji$R#d1w^>AGq`avh=Dln z46Y#4Jh&J<8N5IWy@ePU82mxp0FVuV>HJf3-ZsYT8?iN(dK#f%JWHko;u zC3cJq%o>_uj0`N!`6;Q44E#Qsd8vM-xk;%-A&E&jsf-LPxrv#1j0|EL(LPy;Wr_MZ ziFxVz!6ikRdFj?5jl97niOJc%i3MQw>?r18P-0MKX9(kA2xo|3WRM4`fLH->gj;@5ZeodRMRICENoIZ? zBZFL8k$z@rNqkyTPHJMQzDH_>dtz=Xh<3_PEJ^{H7s<#V2sWp*Br``pI5`pIZ+3<# z9)@U!7?6Tk6a}t%rMbR|1&jYRQLkP#R1w0fiwW19Lto1Q2l+P?VX6h%;euO3TdGM-paaU@rhE%E`mwwJ=5o z_OisB(p3L6Mg}$Hu!VUZDJ&tOWzEG<$xy|}pcQm@B`9qsmMCbXlqwYDXXceCq@*g8 zm8OCyXnN38uu@=TWDw6y%uaRA&r41$3C}Fa0Ok3T#JrMXG)tj2AV(ln2+jRaQBZ

&h1l+vm|T)yRLRcJz{tSnlb@emTENIK z1KHzHO^|%=k(if~lUl3-Q3;J^u-Q--AO#PK#*oT_R4mGovp$v(h8p3Vn3EHnS(0ka z&d|unpo-xkY;I#@ki)NzL6Je8L4g4Tm>3vAwFmYah!(20krjqa6%PHp>}Ue0MXj zL`rXGVD;V2z!tfQfqgpzhu>}n&PXAy?F`&jtdgvo7_iD~U)UC5xK#bP8RxQ#(*CWGW|2H{8@N!INQB35jYY}*(_tyq>bi0x(&gNTYl zL?x_PHZe%*Y-5nx#2_ijvV%c-7lRA~!!`z4-E9nV8yOfGI2i;Ogc+C_n84oiVgS|p zybR0?d<>in{0t%tLJYDDA`BV~VhqL%;tcK#5)9D{(hNBaG7J?AvJCYMatuuj@(g_p z3Jg;jlo{qQs4%QyP-ED@pw6Jdz`$V3!1A9#n1P9%L6ebzk)45=;Xgwz0~?6T&cMPB z4meH*hW`vg$b#$)TI>v*3=9k`4B89~3``6<47y+*BZC-&A_D`15Cao~7%0vd7#M08 X>KSSoBpG}d7#KJh7#VyS7#aKkSK4ou diff --git a/build/fr/iut_fbleau/HexGame/HexPanel$1.class b/build/fr/iut_fbleau/HexGame/HexPanel$1.class deleted file mode 100644 index 3166fc2f1730c9874d98aab011e54db8e76ffecd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 716 zcmX^0Z`VEs1_pBm4Ne9&1~D!Mb_Q`S1_=g95Fy3IAj}}m&LG3iAjinSR+5oftYW~( zpx~2Mq@P(@5}%folbTqn?~z*Jo|u~oq5~51Qgf^s8Q5$x^D;~97#Wl`2r1SKV`N}) z&QD2YWZ?J7%uDqv%}q)z3Q0`LNo8c<$;~e{iEiUoMFD~I>;9%ec2`aKPDDf~TGpO(|sDcPJ26aXT1^oV2F=S-m z@yyFhEppCDEG|whW@L~C*^KU7$CSi^lGGwb208rZF*2Cr2|cI$#G({yaClVc7nf(| zrR#h7BqpWifCGYA0~8#R*sKSK79#^odTL1oBLlOBrYD3G$;iN+k(if~0|{?N238GE zPt7m}1qL<-b_NCpMgaj(=rAxaFflMNa4~Q*Ff#BkFfb@FFhNALw6`)aYHep=+6Yq3 zz{|kEz{bGHz`&r+z{tSIzzSI~W<*7{CAkhJB=L diff --git a/build/fr/iut_fbleau/HexGame/HexPanel.class b/build/fr/iut_fbleau/HexGame/HexPanel.class deleted file mode 100644 index 78b3803bf1b302f7fcfb9e0fba99111ca13499b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4430 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 GSU3U5XiD$^ diff --git a/build/fr/iut_fbleau/HexGame/HexPly.class b/build/fr/iut_fbleau/HexGame/HexPly.class deleted file mode 100644 index 51bf46d6f2297899ccf99fc72bdb9f2a1141fa11..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1189 zcmX^0Z`VEs1_pBmb1nuB260XXb_NL$A<4zS&LG9bAk82n#K6Fyz|Nq^&Y;A|z+9AH z&d9*%$;iN*oS(zUz-E(~msw)R$e^s@lUAgkSy~dGmXwp4SgP-yn49Vt;He*wlUSKr zWbNsx8OF%K;+&t7%E-X)lbM(5SDKrYS`?C)l#|NHz?Pm`5(F}uSwqtk!gU6j&ry;e zTvC*om(Iu_qM_-Nl~|UjpOcuEt`8BlW@O+B&Mz%WPIb!!8N=<7S`m;_sRvTW!@$F! z%)`LRz{SJB4I)$+RM{ESco@_fG#D8KobvNaic5+T3w%>cGV)W3`PmpWIT*Bf7_=F5 z7#U!vD0rHPN#CS#qMO0~!9LTSZNgxxGO9FB#85tA_ga{}+IMY*0AOXb4prE0N zKL{Ba1VH{m_CF&7ds$*mX{vu3BZHa-QtE(To&Jw^sOh*zo$z|mvN zsH0GnUk;*@^K)z&YZ)2Da}%>uo%8dO6HCG~OER4E^NLFn^Gb>t88nbBg2scVCl;&N z8T3KHY0Su=f^c|dURi#2Dm4Be=DQ^(m*f{!vNM=6GO+pN=VzA|Ff#CX=H;apIp-u6 z7pE38GR#1>6lw+}<~$PfQgTv@RUjIzkpcngHY5=gjUklVs>)RNiCz@#O+m4SI90|Nsi13y?FNS=>@m4Tmui$Q>a zpFxm;kwE}Vf=rNQU}RuqU|?X?+QPuJ2Cj__EGWXj$RLDODKolK2?j<6VFr)}kg2*1 z%wPjVwYD*^?0^`qwS|Fs7Xupu!v-{4WEq$lM8TdFV=!W1VBlh4WH4YbVK8KnWRPWG PVBlb2WRPQEWRM2{10*6e diff --git a/build/fr/iut_fbleau/HexGame/HexSimMain$Args.class b/build/fr/iut_fbleau/HexGame/HexSimMain$Args.class deleted file mode 100644 index 3ac94f9e4cbc97d860f1ff94c6be3e9dfee6ab06..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 591 zcmX^0Z`VEs1_pBmEiML51}RPk4hCruA;ZNW%OD40$%6<55TVGv!R@Gx+*GpO@0XfSB(aIT00n6wlc74 zF>hsH(_-Apz`hZzS(Jf+L5hKmfq}uDfrY_?fs4VDL6E_VL4v`XL6*UXftf*!fq{XE YL7YJXOiMDTfStz3z`-ENpv=Gp0Dif24FCWD diff --git a/build/fr/iut_fbleau/HexGame/HexSimMain$Stats.class b/build/fr/iut_fbleau/HexGame/HexSimMain$Stats.class deleted file mode 100644 index 3f1560f00b7df6f9fb2990f3e50935b1cf2fb774..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2212 zcmX^0Z`VEs1_pD6MlJ?v23Jl7O$Ij*;SM4^K!hhdgBNT4e+U2xc(XPzKmds6!^z;w z;0Gf7K|}x-Lm)#ChzRCl&}0Zi8;RcWvRuC3>>+cd2nW81(eBVlbM%UV#mn9tf3jk z$iU*9pOVVR!0(fpm+DuVo0M7KNduACy{Lnp0x!2{MK^xFj(-+c&WQs+%=EF&E?pW(`d*Mh5os%)Fq)l2ovz zE{qHuAV)(4I6w}EG84;WrEzw?~z&&oSEyJn3<;sQp?D|;g?!m;*nom!p@M(!(hl@#KWM)pv}Xe10r-m zgdT%7BLg2uHN<3}{JeA?27Qo}0fRO>Lmm%9K0^TyLm`MLVklr|DCS`(VJPKcC<74| z43>-x;t1^!hdGsI=A@(+F*2}&0;$+afrp`-p#nryGBPl7F*2})d-_=^C@?Z`DQKwb z8KtSJYH~3$2q4VyPs&P7F5zLYVz6dssN!L$W~gCjsO4d(W2k3jU~>s_3t$GO&S%!Jff^ zkwFbLT0K%LK#tZ&gr!PwNn%McBLgdx=JCwSOD%HFNh~e~#jOG%{frDUs7gTQBT^0{ z19P~iA0vYt{`AGjzyk6%BLfS_zbJ9$n^=;;$iSQn$_%U;US6QI#+;j2!N|atSWu9f zm%_-PtAUw%FcTCs-mDoJWHh|+Nh8ISOMWRhqp+7H=9H%Tr!g{!YPcZlg($E_iC#!D zVPs%S%P-1JEMa7@#NxhaBqu}CgEg|b5HqY98H7>Y3QED&3cf*C}x zfCyGC5eD|H44hgb3|w0ocs4RHFfcNhFfcI4F|ac*FeovwFeo!{GN>@{F{m;KGpI92 zFlaEyGiWj}Fqkr!K`oiZz{X3#3>o4Wj2O%r7(h-E5f)%zV6b4Ygt}9mfdw2G{90QW zn6$PqFehqlVPHvI3->e|SQ_MgD+X(*CL5?GNv&-RLYz}(F|hM3XW#>w&;=6d%3sgG zzyNU;M7tT(dL~{kP@vclHi;RBN#>{~*%CI11&2u%s3zGFHi;F7NtVbaF@lO9XgGag z;ACK8U|=}1n?X2oJA;UiwvgyH1~E_=ZDSA@lGw%|7OpKM2@=}EzyuPKV%f_e9my=h zAfvU7K`wg-gM9D~1_g*ZMTk0P40TGV>XaesSTNM7psG`41KXvwjX@1$Pb3Q{mF-|q z4~}F7B{2{SX7@G*jScV=0m%lo3>*x04AKnt49*M=4A~5h43in081^$bGcYqaf}`Jw Z!5K`uFyt^WFmN$2GH5cmFk~}u0RZc=$~gc4 diff --git a/build/fr/iut_fbleau/HexGame/HexSimMain.class b/build/fr/iut_fbleau/HexGame/HexSimMain.class deleted file mode 100644 index 19a1a5b8f4be09e766a7b75f51a444c4cf25dc52..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6583 zcmX^0Z`VEs1_pCRYc7T;hAJ+GNQP=oh8l)i4u(1|hBStHP6j)M1`yE*BAP%%vk(IV zLpujUhY$lJLl-+kHx~mhLk~McFBbzpLlrwiA3H-o7lRPP1TF?ahKU>ulR)%jc7`cj z4B`w^*%_v>Gfd}VkYt#_$solrlbvA}NdIgu23dwVAmOrUcaxfg@U^vdfa02AolUxj^7*2CAoZ(?lUrQ6_w`s=cT$Q=B6?-m}vN<73pV|mc*we<)kK->Vt$G13dLT zo$?clQmi31l$K=X=)2~X=K3ZUSZjK+Gdy5tc*w}W8JwA(msnC-l*-6ZN3uaSIBX8c zNvupQvc@6nm{eR+l$cxsawk-!owcSXBLinaVo`A_B!F$O1`V2t9;p=|L-ajTD}pm~ zeG@bDR6x3|85!8~QY%Uvi_#extgsp62?-RGV8;|cGV)W3`PmrWaWK5+VfeuCk&%IcgW(g1 z`I(VH0OS^ZaFPfDTLp5-7e)p()P#g3c%kWB3~WGVzP?jwT3TvRYD#!fW=U!hBZCl3 z0_1;)Ajs@zAmS?{gLHagZfbmHUP@|(PEl%cX--LefuT-repzZU7Z1ZXhG&cnayZ=p zPR<~MzB4iig6#qOz!j3H85v|yb%Ig`C>ubM7)aj_9)_O`zZeo52HAv1P`MmqZA{92CC;^p@5m`co?M_Wq2568Rd8wF|8nNfvqgBZCq~csdrPm*%GCmB51( zCD0)?gj;@5ZX%Kj#?a8>#Pn1v1(0b9X+?U7l3ouQ)*u>M{wYM~gHua!ESEooVa27O z01Yrd1qc9VBn41BC}^alrX`l4fKm}71EVJ+11mU@Ffy=!;-8U$(TkCRJ-N6nAh9HakwFMz1K3lLV6f(5G-5Pn zWMETBE-tfWWMmM}P0UVp&d*CuED6sn$#BlkD=taQ1GTEuu+_ep1~M{8D1cM7Eh8lT z*fN6CqAepMBZH=fr>7UD9!*RkMg|rQFHj>)7;0^1zCJju6@i;(tmUAp4y4Evq(}s+ z2<$U(dl0OO9a_vYGRUE|Szs{(sg|r688|>q6`%aPba1QDi;=+?S33-<1>$6I-3Q5W zU>lhWKrv~C>>Nod-$2*2sQ_3NbQ39c;wNz?q&}0!xYt8k#tq4^d&w$iP;V znw(#h!pNY6%h^z+;NW5hm(>1gj0`A|3Uvmu%b=-*k%5g-hf#--i;+P?152~b6RRFx zSb^dSDo+?0cmtqyij@MRJ|n2%?TK9@N<$CksxU?d*5sW0;#5Wk=G3AhMh33*)Dqv+ zVo<~vD#30jR?uM7)KMtT&rL1K$jnOzHTcSl^7GR5K&2=4)W(sKSeyarBeJCymL}#D zgVZ9q7aB<*4?|kKU|)FVm87PFQV9pR!-Tts;>pOs2WmDz`j?P02GYrbuu)PwENr|O z8Tdl;vh(uG^Ar+`(!r^hCAA{6gq_g@)Z{Z~WKcmEnweLYpPdTryFyBDx5VU<{Gv*B zMoUHpHlO_b?9u{8h8f5a1JwlSrg$XgrR1a*t3XsDmse01A%zEu#*oT_R4mGo>ty*ma*h6Dx%23ZD1 z21W)323D=@42&BY7#J8C5*Zj6*ua7c44e!}49O6s%!Uk{3_J`BjJ;Yr7?^xEF)$0U zY-3>E#K5e*g@H|b3j@3M76uOOEexE;82CZdE(R_JhUE;bLfpGR`nEB!?q=YP1S#6i zz~{T0fj@FPgMc5S6$?o5F$THa41$rn8H7M8IJYwhZ)Xs(Vv%GK65Yli#%#ta$_lb# z5yR%)4B{XqY}*+mtk`xlNJa`tZD)|SVwYs!#2~YqK{gUh@kZ)wW02dN5qB{L35wrvc`R-C$$oT41t7*r%#jxmTyvWT)ua_(SI73J8) zpvJ(kjX_L%3xoPR1|?BemIM&9U>1YeCI)6Gmwgw521pfa3oGOD|6ZVg(u4$*?luN3 zkdeNUEZZ2gmovCpu`XwDuwvcBpexC`jX`f0gFaXzh+_a!r~*|e15zk%#RU@Mg^ICS zaZ7UT-^jqu=)~yG=*6JJ5Wr~5=+B_Tn9W$gSPbP?FfcIsGo~?u=z7K$#&!lB#tOzN z5TAhw9M#hpR2di;0vK2sf*5!if*E8OLKw^#f*C9s!Wdi`!Wn!SA{hc0q8Y*&Vi>X+ zVi}4U5*X?jk{G%fQW&N&q%v$_NMpFfkil@9A&cP=LpH-JhFpgC40()9426uM3`L9@ z3<->S3}uXF4CRcr47H3-40VkD43&(53{{MY4AqQj47H5e40VhZ47H5)40Vj13=NDu z42=va3=9nW82J7(=rb^}Go-RJ*fFrMGo&#xvixUYgbT4kgxDF<|1mhQGw`xA@Ut@r z{$XHZ{Lj$Czy;9=7iVN=5NBtQWMpT^U|{&qpvu68u7H8z7XxcFJA;l3JA+O#gwFiW zz{kLirV^Bu7}yyy85r3abQu3LFfp)Vs^9|k%^8@$IqfY23j;d?149e5t=0hs@ofx- zP%6VtYbS#dBf~6)EN!iw491KM+Zap^Fqm4gXzgS$V`Q*mm1F^>2y-hoElIYW3>Hib zvp~7UGE$Ol2ZJg^%MJ$BT?|$X4BHv3_k&g0Ffp_+G0Mm;VG!KSU>Pa1i@_EmyZrxT znKcXy(Ac+P;A3E5=wM)C=wuLL=w^^+=wZ-e=w&cs=wq;En84u1Fp(jVVKPG|!xV-b zhG`6i4AU9v8D=sxG0XzTkT?U&Uj`vY#(xZc># z1_p+}qps>_85kG}85me^GcYhLWSSt6#=yYP=wHh6kb!|=qJI^OAOizKqJNd>LIwr~ zM@beT$88KwGa1sE%~+Q+BucUfIfMD(EFgZMB#V#>nD5RC;)B$?g8AlbAikj_i;x?b zug(tQD@w8mxr6!Q93Z}+B#V#-n9nZ21}d6Xfl~v+WC+E;#=yX!!@$7cz`(!|!oUDZ zYz#FF3=F*>tgQu#7a`9b3|>1Jytgv2EobP3iuu6A*q1X@LdAT+Vt!j0IF>V{LdE>S zV%}RB)R!{^Ld61hFnDcc;9Sn&u!A9RIfIq%4u+ta3@W-i7`)9ur8AoV_W}kUZBaI` zjhtWx`*H@MO$@rayBLDO<<1U5zNHQ=m%wynSn9m@pK$@hA#h^SXAu1h%CmNi{}@8q z8PeGq(i!=|fLB*oSXfwq^$&v_<1YqQrXLJ^zZh5Ow)C^s)Ees62pz=R_ z8v`rz4u%Ls1v;wahU*MG3^y297|OvxUcpcau6~&q>=^hNVi*`0q!^eP>=+^$ zq8UI_8IcUJ3|x$+j24V$43Z2j3=9lL3>*xt42%qIV6qcTE(Vj!z~nkGxf4w80h3n% DaCyhO diff --git a/build/fr/iut_fbleau/HexGame/HumanConsolePlayer.class b/build/fr/iut_fbleau/HexGame/HumanConsolePlayer.class deleted file mode 100644 index ab4c1f67dd53a6f560378542daacdd06fec12149..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2871 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 H*gj1FcG|@Y diff --git a/build/fr/iut_fbleau/HexGame/RandomBot.class b/build/fr/iut_fbleau/HexGame/RandomBot.class deleted file mode 100644 index ea379a6995e4bfdcf1550ac7844bdae50f07e501..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1327 zcmX^0Z`VEs1_pD604@em1{F>Q5e8Lu1~o1QW(IXG1`!4gb_Pu@1~vvQZU$`z9c~6i z23-)L$IhV7&7ijJX*27)(HXQ;=>m5X+pM!GfK^l97SAC@-CnLC7a7 zu`E%)v?Mb}KPWLTB|q1ik%7%7GcU8mj*-Dw!zZmsKeMzXJ}oIHHL+CRJux@cF~Czl zASbahwa6M%vt}401B-KhN-84*zfWdfs$XetQfg61Vp2{jBZCqFQX}(A zi+uCTQW+VXaq01N%1 z85y{O^Gl18Q{6H_j^l%P-zmRD4-_Ok3=#}BJPcwC;*1OeAOYks0!i9}2uVf;VT7b( zQBh*0PiAomNXm|#!Jdb~fx(f7!HL0{hrxxxm61UadvGE-mWRQO!JUV}gTa}RK^|;$ zPGVlVzGqHOYI_ej0`M!V2%h(JvfB@ld@8i zORO0gm=jY{7#T!0AZ8)Uf%LLx7Q5yalvJXr2reng%u9#3zBscg6>OC!BLh3gD$l$U zMg|rQPfbro2IlnC5|Ca`s9TZEXHaAiVGw0tU|?hr0;N0#1_ovZMg|E6Nd`s+DFy}x zZ3ZR=W(EcZZY}NY42)VjTN#)(f|W}%Ffj0erGyw*8H5=?w7#JAD8F(2a7#JC38RVe)W-u^=^@Z+cV2j+&!0xNPlYxVg z!B2N511BTHOa?I>-JJ|vj0^`DxOXz}FfoKL|NmTPCj&1?j(0Z$U!)NKb_Rj{I$B#8 zm~?hB2r@EkV-VWOAj|~Pv4Mesfr$a+bU6lg1_lNh1`Y;U27U%P1_=gv25kl<1``Hl i20I2d26+Ys23`i{zYP5B3<~TFiqb+1j0{R(?aBZtFFNf2 diff --git a/build/fr/iut_fbleau/HexGame/Simulation.class b/build/fr/iut_fbleau/HexGame/Simulation.class deleted file mode 100644 index 3c970952f858e99f24170f64d824382e0324c928..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6560 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 Date: Sun, 15 Feb 2026 21:46:10 +0100 Subject: [PATCH 13/13] Keep README from master --- README.md | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index db6a180..4573406 100644 --- a/README.md +++ b/README.md @@ -35,15 +35,6 @@ java -cp build fr.iut_fbleau.HexGame.HexMain Le plateau s’affiche dans le terminal et les coups sont entrés sous forme de coordonnées. -### Partie arène (bot) - -```bash -java -cp build fr.iut_fbleau.HexGame.ArenaMain -``` - -Créer un fichier arena_result.csv à la fin avec les résultats des combats - - ## Tests et validation Les tests sont réalisés sous forme de **tests fonctionnels** via des méthodes `main` et des modes de démonstration : @@ -53,3 +44,13 @@ Les tests sont réalisés sous forme de **tests fonctionnels** via des méthodes - exécution de parties complètes en mode automatique. L’affichage console du plateau, fourni par la méthode `HexBoard.toString()`, est utilisé comme outil de debug pour visualiser l’état du jeu à chaque tour. + + +## Organisation du projet + +- `HexBoard` : représentation du plateau et gestion des règles du jeu +- `HexPly` : représentation d’un coup +- `Simulation` : bot basé sur une recherche Minimax à profondeur limitée +- `HexMain` : point d’entrée du programme + +Les classes principales sont documentées à l’aide de **Javadoc**. \ No newline at end of file