Programmieren 20.1.05 - is.inf.uni-due.de
Transcript of Programmieren 20.1.05 - is.inf.uni-due.de
import javax.sw
ing.*;im
port java.awt.*;
public class ListDisplay extends JP
anel {
java.util.Vector elem
ents;
public ListDisplay () { elem
ents = new java.util.V
ector();}
public void paintCom
ponent(Graphics g) {
int ypos = 10; for (int i=0; i<elem
ents.size(); i++) { g.draw
String(elem
ents.elementA
t(i).toString(), 10, ypos);
ypos += 10; } } public void add(O
bject o) {elements.add(o);}
}
import javax.sw
ing.JFrame;
public class DisplayTest {
public static void main(S
tring[] args) { JFram
e f = new JFram
e(); f.setS
ize(400,400);
ListDisplay ld = new
ListDisplay();
f.getContentP
ane().add(ld); f.setV
isible(true); for (int i=0; i<10; i++) { ld.add(i + "-tes E
lement");
try {Thread.sleep(1000);} catch (InterruptedE
xception e) {} f.repaint(); } }}
interface EinkaufslistenS
chnittstelle {
void fuegeHinzu(A
rtikel a);
Artikel gibA
rtikel();}public class TestE
inkauf {
public static void main(S
tring[] args) {
EinkaufslistenS
chnittstelle e; e = new
Einkaufsliste();
Artikel a = new
Artikel(1);
Artikel b = new
Artikel(2);
e.fuegeHinzu(a);
e.fuegeHinzu(b);
System
.out.println(e.gibArtikel().num
mer);
System
.out.println(e.gibArtikel());
}}
public class Einkaufsliste im
plements E
inkaufslistenSchnittstelle {
private java.util.Vector sam
mlung = new
java.util.Vector();
public void fuegeHinzu(A
rtikel a) { sam
mlung.addE
lement(a);
} public Artikel gibA
rtikel() { return (A
rtikel) samm
lung.firstElem
ent(); }}
class Gefaengnisdirektor {
public static void main(S
tring[] args) { //G
efangener g1 = new G
efangener(new N
utzenMaxS
trategie()); G
efangener g1 = new G
efangener(new TitForTatS
trategie()); //G
efangener g2 = new G
efangener(new N
utzenMaxS
trategie()); G
efangener g2 = new G
efangener(new TitForTatS
trategie()); boolean a1; boolean a2; for (int i=0; i<10; i++) { a1 = g1.m
acheAussage();
a2 = g2.macheA
ussage(); if (!a1 &
!a2) {g1.bestrafe(1); g2.bestrafe(1);} else if (!a1) {g1.bestrafe(10); g2.bestrafe(0);} else if (!a2) {g1.bestrafe(0); g2.bestrafe(10);} else {g1.bestrafe(5); g2.bestrafe(5);} } S
ystem.out.println("g1-S
trafe:" + g1.gesamtstrafe());
System
.out.println("g2-Strafe:" + g2.gesam
tstrafe()); }}
public class Gefangener {
private int strafmass;
private SpielS
trategie strategie;
public Gefangener (S
pielStrategie s) {strategie = s;}
boolean macheA
ussage() {return strategie.waehleA
ktion();}
void bestrafe(int strafe) { strafm
ass += strafe; if (strafe >= 5) strategie.letzteA
ktion(false); else strategie.letzteA
ktion(true); } int gesam
tstrafe() {return strafmass;}
}
interface SpielS
trategie {
boolean waehleA
ktion(); void letzteA
ktion(boolean l);}public class N
utzenMaxS
trategie implem
ents SpielS
trategie {
public boolean waehleA
ktion() {return false;} public void letzteA
ktion(boolean l) {return;}}class TitForTatS
trategie implem
ents SpielS
trategie { boolean letzteG
egnerwahl = true;
public boolean waehleA
ktion() {return letzteGegnerw
ahl;} public void letzteA
ktion(boolean l) {letzteGegnerw
ahl = l;}}
public class DeLuxeFabrikA
lt {
public KeksP
ackung produziere() { K
ekse k = backe(); return verpacke(k); } private K
ekse backe() { return new
Kekse("S
chokokeks"); } private K
eksPackung verpacke(K
ekse k) { return new
KeksP
ackung( "D
eLuxeFirmaV
erpackung", k); }}
public class BilligFabrikA
lt {
public KeksP
ackung produziere() { K
ekse k = backe(); return verpacke(k); } private K
ekse backe() { return new
Kekse("S
chokokeks"); } private K
eksPackung verpacke(K
ekse k) { return new
KeksP
ackung( "B
illigFirmaV
erpackung", k); }}
public abstract class KeksFabrik {
public final KeksP
ackung produziere() { K
ekse k = backe(); return verpacke(k); } private final K
ekse backe() { return new
Kekse("S
chokokeks"); } protected abstract K
eksPackung verpacke(K
ekse k);}
public class BilligFabrik extends
KeksFabrik {
protected KeksP
ackung verpacke(Kekse k) {
return new K
eksPackung
("BilligFirm
aVerpackung", k);
}}
public class DeLuxeFabrik extends
KeksFabrik {
protected KeksP
ackung verpacke(Kekse k)
{ return new K
eksPackung
("DeluxeFirm
aVerpackung", k);
}}
public class Superm
arkt {
public static void main(S
tring[] args) { K
eksFabrik f; K
eksPackung p;
f = new D
eLuxeFabrik(); p = f.produziere(); S
ystem.out.println(p);
f = new
BilligFabrik();
p = f.produziere(); S
ystem.out.println(p);
}}