--*- coding: utf-8; -*-- L?sningsforslag til ?velse 4. september 2012 Oppgave 1 --------- : else if (CharGenerator.curC == '<' && CharGenerator.nextC == '=') { nextNextToken = lessEqualToken; CharGenerator.readNext(); CharGenerator.readNext(); } else if (CharGenerator.curC == '<') { nextNextToken = lessToken; CharGenerator.readNext(); } ... Oppgave 2 --------- public static void noteToken() { if (! doLogScanner) return; String logLine = "Scanner: " + Scanner.nextNextToken; if (Scanner.nextNextToken == Token.nameToken) { logLine += " " + Scanner.nextNextName; } else if (Scanner.nextNextToken == Token.numberToken) { logLine += " " + Scanner.nextNextNum; } writeLogLine(logLine); } Oppgave 3 --------- import java.util.*; enum Farge { Kl?ver, Ruter, Hjerter, Spar; } class Spillkort implements Comparable { Farge f; int v; Spillkort (Farge f, int v) { this.f = f; this.v = v; } public String toString () { String vim = ""+v; if (v == 1) vim = "A"; if (v == 11) vim = "J"; if (v == 12) vim = "Q"; if (v == 13) vim = "K"; return f.toString().substring(0,2)+"-"+vim; } public int compareTo (Spillkort x) { if (f == x.f) return (v==1 ? 14: v)-(x.v==1 ? 14 : x.v); return f.compareTo(x.f); } public boolean equals (Spillkort x) { return f.equals(x.f) && v==x.v; } } class DelUt { public static void main (String arg[]) { // Lag en full kortstokk: List kortstokk = new ArrayList(); for (Farge fx: Farge.values()) { for (int vx = 1; vx <= 13; ++vx) { kortstokk.add(new Spillkort(fx,vx)); } } // Stokk den: java.util.Collections.shuffle(kortstokk); // Del ut kortene: for (int spiller = 1; spiller <= 4; ++spiller) { List bunke = new ArrayList(); for (int i = 1; i <= 13; ++i) { bunke.add(kortstokk.remove(0)); } java.util.Collections.sort(bunke); System.out.print("Spiller " + spiller + ":"); for (Spillkort k: bunke) { System.out.print(" "+k); } System.out.println(); System.out.println(); } } }