!"# $ % & #
... 4 "... 5 '($)*'+ $, *$+*$'- $..$+/, 01.2$, 2*$0, - $'($)*'+ $, *$+*$ 3+'0+1$+/, 0... 5 "" $0+4, - $*$2*'1/25 1.... 6 " 4$+26 *... 8 Objektorientierung... 8 Kontrollstrukturen... 9 Projekt... 9 "7 0$3.1, *$+8$+.1/- $226 /. 1.(1 +$2... 9... 12 /, *$++6 *2$, *5 /+9'($)*$:1**+/*$/, -, 2*1, ;$,... 12... 12... 12... 16 Grobziele... 16 Feinziele... 16... 17!"... 18 #... 19 Tafelanschrift... 19 Folie 1 Beziehung von Entitäten und Objekten... 19 Spielzeugautos... 20 " /, *$++6 *2$, *5 /+9$, 4 +/, 08', $-, 0*$+/, -$5 16 *$+ 1, 5 $2/, 0... 21... 21... 21... 26 Grobziele... 26 Feinziele... 26... 26!"... 27 #... 28 Folie 1- Struktogramm zu Bedingungen... 28 Folie 2 Umsetzung in Java-Quellcode... 28 Folie 3 Aufgabenstellung... 28 Folie 4 wichtige Methoden von KARA... 28 Folie 5 Lösung zur Aufgabe... 29 Folie 6 Zusatzaufgabe... 29 Folie 7 Lösung... 30
... 31 7 3+'($)*8$+0$5,, *... 31 $... 31 %&... 33 Klasse VierGewinnt... 33 Klasse Spiel... 33 Klasse Spieler... 34 Klasse Spielfeld... 35 Klasse Chip... 40 Klasse Fenster... 41 7".*$+1*/+... 44
; 1 $% %$ <% 3% %:= = % / = < > * 8%8%= %%%9 - % 2? % ) % - + 2 5 : =! 5 < $ <% 3% % 8<%% - % % = %* = = = 9 $ <% < ; %% 0% + % :, 0 - - $ % : ) &@A?: = (% < = = % ) 3% %><%5 %%:2< 36% %% $< 2< B% : 6 2.B%1% - 2 % = - * % * : = = < *C : = %<%< $ % 3% % % 0 % =.>% 2< %? * = %< -= *? = / = <:= * % 1D = 0 )? E7) 1%F <3 >=.
!"#$% " ' % $ % 3% % % = 2$ %G)H ) % G''H? = 3% % %<= ) = )?> % -$ % * = 1D%- = 1% = %% := ':) ; I3?- 2< ; % <% % - 0'' 91D: $= %- = 82 >%% + % 8% 3:= 1 := $ <%) = %+ - * '' > % < : 5?%.%= = 5 2= $= % 2= %: % 3% % 2= $= %>- 1D:- %$= % %* 2= 1 $ 5 % >? % 2 = : 1D $= > %< 3% % : < % 3 B% 1 0 1 > E 1% %% = : 5 8 ;%? % 1D %>' ) 1 E 1 > ' % = ' : 2<':% %= $ / = % ) /.I- % B% 2<: %=
' = % 2% > 2 %11% >% % - 1%>) = $%>' J % 1 = = >(% - $ <%) >(>)% = %'? (: 2< %= 3% %%? < "" %<2= - >= B"7%= - E $ <% 3% % := %0 ' %? %%%: - %3D - ' % 8? > ' ) %B % $ % 8 % $ = % % % = ) %%%: = 8% ()") % = := 2K % ; % 0< > > = : $%?%? ; )> B% - %&< %BE 0 3% = ) $ % / % %=? 3% : (> / + +% %: = 8= %>1D % > '% E 3 8 %= 1D >= : % ) C? > $ <%?)>%- 8= %>2 I2% <3 +: =?; -0 > % '? % (> 8% 3% %BE %:= / % 8? >)8= %>
B% 1 5 <% $%?% 3 =? % '? %1 %2: ' %> - > B% * ( = %B: = ; / - >? % 8= % B% > ( B %2> =
" 4 *+!" #$%& '()) +, -") ( *() #$%&'()).) /' 1 2 -)) ( 0/ ( ',0 3(/ 4/! 5 ' (" ( $ 0/ /$ ""/$ ( 6 $"/( *(7
$ 8 3!((,(!(,!!( 0/,0) (" " < 9( /:";" :";" = " *() ;" ; ()),+? 6 @. A(! B >!" -)) (0/ #$%&'()),0 "7 082 $ 4 < 8 4 = - 3 2= <?= -.? 0% 1D: $= %: =?3 $ =? 1D 3 B: = % 2 8= % > ) B% - $?% % ' 1% 1D ' 2< 5
'% / = % ' 0 % ; :8? '>- = ' %<: = %?8? <1 %% < - ' + : = 2<? ' %2 % $ % ; : 2< % ) :'/ > - ' = $%?%' $?%; '$ % = $ <%>) >= - 2< ) 6 ) ' ': = = %;'%=.2 < ' >? ; - 0% < : ' ) % /.I- % = -5 =? - %%' ( 2 = 3 $= % 1 8= %/.I*/ %>/.I- % > = 2= 3 - > %D = 8%: 1%%% 1 >% = > % % %; % % > ' ) %B % $ %= / % 3% %%3 8 %B %- D%= - = 1 %- >-D 1= % %< = 1 E= >/.I- % %<% * %% 1% ) : $% ' - : = J > 1 = > 3% % % % = : =?%% = 6? ;% $ <%/ %%(>%= : = E% = ( $ <%* >? = 5 B% > ( ; %?=
1 E ' >'GH (% % = > ) <%%% = : 2< > $?% $ % ' %:= 8%>% $ = % 3 % =? %% 3 $ 2 $ <% < = %) 1 0 = %: / % 3 2<1% % %?= ; > ) = ( % '? (>)= 2 = 8= %% 5 % - $ <% > 2% $% > %% 2 = %8% % %=? 3 % 3 2< 2? %= B -3= >??E %%E 1 % : 3 D: $= % >.B%? / % 3% 2 8 %= % 1 1%= 3>% 'D%<:= >2< >? %/.I- % = - = 1D 4 % $= <.B% % > ( 0E 3% %= - 2<= % % 3 % B: = %?E % 5 % 2 %=? = - 1= < %%3 %E+ = <:= * 3% >%%: / %2 1D
&'(#) / = 9':1 ; % 3% % %? % >. % / %%?% 0%?) <18 = %: = = 4<% - ' 1 : B% 8<%> - > % / 2 3% %- >> B% 1?$ <% 3% %- / = : = < = : -: -: - D :0 1 2= > ' % ' %= % %-' %% 1 > 3% % : < = / * < I G) C?: 2 % : 2% : 0 :.% :H I G2= I$= %: 2= I$% %:- D : H I G; D :6 :2%% :H I %= G0 :- :H $ %3% I > I I % G= H I
% $ *+ % 0% : %: /% % 2= I $= % ' > $C >- %:3 % 5 8%= $ ' " ("% " - / %%1E '?: > ' - *+. $ %: ' > ' 1% $C ' :=? % 1 = -? '? $ '= % - $ % '= ') : 8 % >*&- ' - = $ % )1' ) 1 : 1 = ' :*&%: - %: ' / %%8<%%2 %?= 8'$ ' <*? % 2 1% 2 '<$ I 1% $ $ % 0 > - %:.= % % 5 ) 0 % > ' $ % 8 $ ) : ' %:%)! "## $%&'( )* +,-./0&( *1% 2 2 34,* +,
/.I- % /. G/ %.%%H " L, % -% ) ; % - % %B ) % : ' % 7 : ) % & 2K %! ) ) 1 9- D M 1 G- H 1, 9- D, GH M, GH ' 9) 1 NM 1 "NM M 1, NM GH M, GH ' GH ' 9) 1 5!% + 5 * 16( 55 $1) 3 )* &)% -50& 55 %,50& 7' * %,50& 85)%! 316( )* & 91*)%: )1 '),&' 5 ),* ;%''5 <-)% *5 316(*%''5 )' 50&,: *)0& &0&50& )'')% * $%1 *5 35'5 )* * 50&,50&)% *)0& ;, 5* $1),5=) *51 %,50& 15 85)% '!( >0&5! 50&, -50& 316( )* 55: 50&, -* *)0& & 316( )* 55 *)0& %50&?5
/ % (> *$$+$$, -.# /%#, 0)$' #1.+2$#32# +$$, 4#, #$5-6 7.8 "2& (*3 /%8 "2&, 4#, #$5-6 7 7 ) - %)0%/.I) % : = 1 % - ) 4 < >= -D- = )= ' %? ) '
= ) = ' / - 2< ': 1 %B %) %% 0-2< %B %1 ' B > %B %) ' B / >'%B
* - % ':1 %?= : 8<% * %%= - >: % $?% < >? / % "$ 9 G$ <%H 3 4 < > * %% = $ % %2 2 "$9G$ %H; 2<% 1 ' G 9 3H = : % / > ' 1% ) "$ 9 G5 %H - >%%% - = : 8<% % $?1 "$:9G4%H- 2<? % $ % = 'G 91H 0 "$:9 G %%H 1 $ 2 % / >'= = := %%?=
!" ; "$ " ##*"$)2#,. 8& " I%<E%:'% 3 I* < I$ %3%.>% @ 3 I)?%% ' / %? 1 I %1 3 & I %1 = 3GH I)?%% / %? & 3 I5 %>$? 1 I$?? & & I$ <%) I '.>% ) ' I8 %>2 % / %? I5 %% ' 2 % = / 2< & 38 I$ %1 ' 1 I, 1 ) I$ %1 = % I, 1 ' " I; % 1 38 I5 %% I)?%>% 3 2 % ) ' ) %? *
# "" 0 1 2! (. *+ $
& - 2 % $ %: > 1 1= : B% 1 2< = B
" / = 9 $ <% > % = 1= %, $ <% ' %% := 2< 0 )>% 1 1% $?%> %%: % 2% > E (>I3% %= - 3% %%= (>) : %% '? % % = 1% : 6 : >%%%2%?= - ; %= : * 1% = : %%2 B%.%1? - * / % %<= := 8= % %1= %G"I1= %H 8% 1= <8 / %% 3% = 1= %G)I1= %H% 1% $ 1% 3.B% 3 %> %: : < 2 - = K % %< < 1% =? %5 % 92 : 6 5 %> 2 > < < : %%:? = 2% 2% = B % 2K > 2B %: > % = - 8 % 8 : 1%?% % > 8 '5)% 1-0& $-5)% -* *!1 +)* 0&,% *0& 5 * +0&@5 15 *),!1 -*
3% % = B 1 5 2% = %0%< / %>1% >< 2 %3% %1= % - % 1= %: (> 2<= " % = : % = * 9 << %%= 1= %= 1= %: %<= := %% < 5 B %B1= %%<= : %%- = 2<= 4<% %% % = : 8% = % ' 1= % 2< H1= 1 > 2% - = & %= := '$$ 2*3%<:= %1= %> - & 1= % 5 *D - '$$ 2*3 E %>1= %1< / % (> )4&5 - ' $$ 2*3 7 H1= 1 >
2% - = & %= := '$$ 2*3%<: & " : = '$$ 2*3 <% '$$ 2*3 - %1= %= E> / % (> )4&5 - ' $$ 2*3 7 $ - ' $$ 2*3 7
H > 2% - 1= % % 1= % = % 1= % / % (> )4&5 - ' $$ 2*3 7 $ - )4& 5 - ' $$ 2*3 7 $ - ' $$ 2*3 7 7 = 1= % = 1= % >= %%: (> 2<= ) % = -
5 B% < 8 "I1= % - 3% < % 2% - $&#*3= %= - 5 $&#*3 < := '$$ <*3 %< - 5 $% > $&#*3 < <$2$ >:= '$$ 2*3%< - 5 1 > *D:: - : :M= ) *D:$&#*3 - E= = 1= %> / % (> $' *"4$&#*35 - *$9' $$ 2*3 *$ 9' $$ 2*3 6 *$=9' $$ 2*3 &)9' $$ 2*3&) 7
/ - 2< 1% % = % %% (>?= B 2% B 0-2< 1% :2 :2 2K=?B "I)I1= % B 8% % 1< B - %> %% 2BB 2%.B%1% 2%? %(>I3% (>) - 8= % > % ' 8% 1 %= = : / % > %</ %3% = / % "$9; 2% = 2>>% "$ 9-1% I% = %=? = -= %8= % % %=? 1 = =, = % > 2 %%, = "I)I1= % %< "$9?2 = B1%%-= 2K > 2B > = %?: = %% 2% % = - E% / % (>IF
"$:9 3 = 3% %% (>) >%1 E 2< 1%%:? %(>I3% = - (>)= >%% O "$:9-3 2<: > $ 2.B 1% % 2 ; %: %=!" # "$ " ##*"$)2#,. 8& " 3 @ 3 $ % @ O & 3 $ % 38 %% 38 %% I%<E% I1 2= %% I5 % %% 1% I% I$ <%> %% I$?%> %% 2% I$ % %B %(>I6 I8% 3% B %= I/ %1% (>I3% I/ %; % (>I3% I1% %.>% / %?.>% / %?.>% 6 3 6 3 B% 8 5 5*,%* A15 '' -* &BB---*)0&0&B,'(B(6!B6!(B
# 0 2 0 1 3!4 )4&5 - ' $$ 2*3 7 $ - ' $$ 2*3 7 0 1 '" -< 1= % (><)1+195 > : 3 :% 2 >:% 2 : 0 1 ) 5! $'6' +>+2,, &2$ +>$2# >GH GH.GH.GH + %GH + %GH.GH GH >.GH.GH
0 1 78 '" )4?3#@##245AA3#@, $"#22, #2455-3#@, 2B451 3#@#"451 7 $ - )4?3#@##2455-3#@#)451 3#@, 2B451 7 7 0 # 1 9" ) > 2%>)?:$ ) := ) : = %8=.B%1% 6:;: ) >: ) % 5 %<
0 < 1 78,%2#B+##2#, 1 **$$*"$ C&$ B+##2#, - B2&*"$45-3#@#"451 3#@, 2B451 3#@%)451 3#@#)451 3#@#)451 3#@, 2B451 3#@#"451 7 % *B2&,/#2#, 45 - )43#@2)455-*"$4517 '"4?3#@##2455-3#@, 2B451 )43#@2)455-*"$4517 7 7 7
" 7 38 %= $ 8 0= 2 L L2 GHL> 2 L6 L2 % 2 GH GHL %GHL6 % GHL2 % L2 L2 "L2 L2 2 GH GHL> %GHL> > = GHL> >%GHL 2 L6 P QP!Q 2 GH %= GHL2 %= GHL6 >GHL %= %GHL >%= GHL >%= GHL > %= %GH L GHL %GHL> GHL> > 2 GHL> > 6 GHL> > 06 GH L >
6 L2 L6 6 GH % GH L 2 %GHL6 % GH L > L3 L3 L L "L L 7L &L!L L L6 GH %GHL> 3 GHL> >= GHL> >%= GHL> > GHL> >%GHL>
%& $ -/) class VierGewinnt public static Spiel spiel = new Spiel(); //für die grafische Ausführung public static Fenster fenster = new Fenster(spiel.spielfeld); public static void main(string [] arg) //spiel.start(); $ & import java.awt.color; //ohne grafische Ausführung class Spiel //Attribute public Spielfeld spielfeld; public Spieler spieler1; public Spieler spieler2; public Spieler aktuellerspieler; //Konstruktor public Spiel() spielfeld = new Spielfeld(); spieler1 = new Spieler(Color.blue); spieler2 = new Spieler(Color.red); aktuellerspieler = spieler2; //Methoden public void start() spielausgabe(); int spalte; do spielerwechsel(); spalte = aktuellerspieler.chipsetzen(); spielfeld.chipsetzen(spalte, aktuellerspieler); spielausgabe(); while(!ueberpruefung(spalte)); private boolean ueberpruefung(int spalte) if(spielfeld.istvoll())
System.out.println("Das Spielfeld ist voll!"); return true; if (spielfeld.gewinnzug(aktuellerspieler, spalte)) Spieler spieler = spielfeld.gewinner(spalte); System.out.println("Der Spieler "+ spieler.getname() +" hat gewonnen"); return true; return false; private void spielerwechsel() if (aktuellerspieler == spieler1) aktuellerspieler = spieler2; else aktuellerspieler = spieler1; public void spielausgabe() spielfeld.spielfeldausgabe(); $ & import java.awt.color; public class Spieler //Attribute public Color farbe; public String name; //Konstruktor public Spieler (Color neuefarbe) farbe = neuefarbe; if(neuefarbe == Color.red) name = "Rot"; else name = "Blau"; //Methoden public Color getfarbe() return this.farbe; public String getname()
return this.name; public int chipsetzen() System.out.println("Bitte Spalte angeben, " + this.getname() + "!"); int spalte = Keyboard.readInt(); return spalte; $ &" import java.awt.color; import java.awt.panel; import java.awt.graphics; public class Spielfeld extends Panel //Attribute Chip[][] spielfeld; //Konstruktor public Spielfeld () spielfeld = new Chip[7][6]; for (int j=0; j<=5; j++) for (int i=0; i<=6; i++) spielfeld[i][j]=null; //Methoden public boolean istvoll() for (int i = 0; i < spielfeld.length; i++ ) if (spielfeld[i][0] == null) return false; return true; public void spielfeldausgabe() System.out.println(); Chip chip = null; for(int i = 0; i<6; i++) System.out.print(" ");
for(int j = 0; j<7; j++) chip = spielfeld[j][i]; if(chip == null) System.out.print(" "); else chip.chipausgabe(); System.out.print(" "); System.out.println(); System.out.println("-----------------------------"); System.out.println(" 1 2 3 4 5 6 7"); System.out.println(); public boolean chipsetzen(int spalte, Spieler aktuellerspieler) for(int zeile = 5; zeile>=0; zeile--) if(spielfeld[spalte-1][zeile] == null) Chip chip = new Chip(aktuellerspieler); spielfeld[spalte-1][zeile] = chip; return true; return false; public Spieler gewinner(int spalte) int zeile = 0; while (spielfeld[spalte-1][zeile] == null) zeile++; Chip chip = spielfeld [spalte-1] [zeile]; return chip.getspieler(); public boolean gewinnzug (Spieler spieler, int spalte) Color farbe = spieler.getfarbe(); spalte = spalte - 1; //Feldindex spalte)) if (gewinnspalte (farbe, spalte) gewinnzeile (farbe, spalte) gewinndiagonale (farbe, return true; return false; private boolean gewinnspalte(color farbe, int spaltenindex) int j; for (j=0 ; j<3 ; j++) if (spielfeld [spaltenindex] [j]!= null)
return false; for (int i=j+1 ; i<=j+3 && i<6; i++) Chip chip = spielfeld [spaltenindex] [i]; if(chip.getfarbe()!= farbe) return false; System.out.println("Gewinn in Spalte"); return true; private boolean gewinnzeile (Color farbe, int spaltenindex) int cnt = 1; int zeile = 0; while (spielfeld[spaltenindex][zeile] == null) zeile++; int i = 1; //nach rechts prüfen while (i<(7-spaltenindex) && spielfeld[spaltenindex+i][zeile]!=null && spielfeld[spaltenindex+i][zeile].getfarbe() == farbe) cnt++; i++; if (cnt >= 4) return true; i = 1; //nach links prüfen while (i <= spaltenindex && spielfeld[spaltenindex-i][zeile]!= null && spielfeld[spaltenindex-i][zeile].getfarbe() == farbe ) cnt++; i++; if (cnt >= 4) System.out.println("Gewinn in Zeile"); return true; return false; private boolean gewinndiagonale(color farbe, int spaltenindex) int zeile=0;
while (spielfeld[spaltenindex][zeile] == null) zeile++; int h=1; //Hauptdiagonale (der gesetzte Chip zählt mit) int n=1; //Nebendiagonale //Überprüfung nach rechts unten int x=spaltenindex+1; int y=zeile+1; while (x<7 && y<6 && spielfeld[x][y]!= null && spielfeld[x][y].getfarbe()==farbe) y++; x++; h++; //Überprüfung nach links oben x=spaltenindex-1; y=zeile-1; while (x>=0 && y>=0 && spielfeld[x][y]!= null && spielfeld[x][y].getfarbe()==farbe) y--; x--; h++; //Überprüfung nach rechts oben x=spaltenindex+1; y=zeile-1; while (x<7 && y>=0 && spielfeld[x][y]!= null && spielfeld[x][y].getfarbe()==farbe) y--; x++; n++; //Überprüfung nach links unten x=spaltenindex-1; y=zeile+1; while (x>=0 && y<6 && spielfeld[x][y]!= null && spielfeld[x][y].getfarbe()==farbe) y++; x--; n++; if (h>=4 n>=4) System.out.println("Gewinn in Diagonale"); return true; else
return false; //------------------- //fuer grafische Ausfuehrung public boolean chipsetzen(int spalte, Color farbe) for(int zeile = 5; zeile>=0; zeile--) if(spielfeld[spalte-1][zeile] == null) Chip chip = new Chip(farbe); spielfeld[spalte-1][zeile] = chip; return true; return false; public Color gewinnerfarbe(int spalte) int zeile = 0; while (spielfeld[spalte][zeile] == null) zeile++; Chip chip = spielfeld [spalte] [zeile]; return chip.getfarbe(); public boolean gewinnzug (Color farbe, int spalte) if (gewinnspalte (farbe, spalte-1) gewinnzeile (farbe, spalte-1) gewinndiagonale (farbe, spalte-1)) return true; else return false; public void paint (Graphics graphic) zeichnespielfeld(graphic); zeichnegesetztechips(graphic); private void zeichnespielfeld (Graphics graphic) for (int i = 0; i <= 7; i++) graphic.drawline(56 + 330/7* i, 320-330/7* 7, 56+ 330/7* i, 270); graphic.drawline(56, 270, 56+ 330, 270); graphic.drawstring("spieler Blau ist am Zug!", 165, 290); private void zeichnegesetztechips (Graphics graphic)
for (int zeile = 0; zeile < 6; zeile++) for (int spalte = 0; spalte < 7; spalte++) if ( (spielfeld[spalte][zeile]!= null)) zeichnechip(graphic, spalte, zeile, spielfeld[spalte][zeile]); private void zeichnechip(graphics graphic, int spalte, int zeile, Chip chip) Color c = graphic.getcolor(); graphic.setcolor(chip.getfarbe()); graphic.filloval((56 + 1) + spalte * 330/7,270 - (330/7-1) - (5 - zeile) * (330/7-2), (330/7-2), (330/7-2)); graphic.setcolor(c); $ =& import java.awt.color; public class Chip //Attribute public Color farbe; public Spieler spieler; //Konstruktor public Chip (Spieler neuerspieler) farbe = neuerspieler.getfarbe(); spieler = neuerspieler; //Methoden public Color getfarbe() return this.farbe; public Spieler getspieler() return this.spieler; public void chipausgabe() if(this.getfarbe() == Color.red)
else System.out.print("r"); System.out.print("b"); //------------------- //fuer grafische Ausfuehrung //Konstruktor public Chip(Color neuefarbe) farbe = neuefarbe; spieler = new Spieler(neuefarbe); $ 0 import java.awt.frame; import java.awt.panel; import java.awt.button; import java.awt.color; import java.awt.label; import java.awt.graphics; //abstrakte Klasse import java.awt.event.windowadapter; import java.awt.event.windowevent; import java.awt.event.actionlistener; import java.awt.event.actionevent; public class Fenster extends Frame implements ActionListener //Attribute public static Button ende, knopf1, knopf2, knopf3, knopf4, knopf5, knopf6, knopf7; public static Panel buttonpanel, endepanel; public static Spielfeld feldpanel; public static Color farbe = Color.red; //Konstruktor public Fenster(Spielfeld spielfeld) settitle("viergewinnt"); setsize (450, 400); setlocation (200, 200); setvisible(true); // Fenster schliessen addwindowlistener(new WindowAdapter() public void windowclosing(windowevent e) System.exit(0); ); // Button-Panel (oben)
buttonpanel = new Panel(); endepanel = new Panel(); ende = new Button ("Spiel beenden!"); knopf1 = new Button("1"); knopf2 = new Button("2"); knopf3 = new Button("3"); knopf4 = new Button("4"); knopf5 = new Button("5"); knopf6 = new Button("6"); knopf7 = new Button("7"); ende.addactionlistener(this); endepanel.add(ende); knopf1.addactionlistener(this); buttonpanel.add(knopf1); knopf2.addactionlistener(this); buttonpanel.add(knopf2); knopf3.addactionlistener(this); buttonpanel.add(knopf3); knopf4.addactionlistener(this); buttonpanel.add(knopf4); knopf5.addactionlistener(this); buttonpanel.add(knopf5); knopf6.addactionlistener(this); buttonpanel.add(knopf6); knopf7.addactionlistener(this); buttonpanel.add(knopf7); add("north", buttonpanel); add("south", endepanel); //Spielfeld-Panel (unten) feldpanel = spielfeld; add("center", spielfeld); setvisible(true); //--------------------------- //ActionListener public void actionperformed(actionevent event) Button knopf = (Button)event.getSource(); if(knopf == ende) System.exit(0); int spalte = java.lang.integer.valueof(knopf.getlabel()).intvalue(); zugausfuehren(spalte); private void zugausfuehren(int spalte) if (feldpanel.chipsetzen(spalte, farbe)) if(feldpanel.gewinnzug(farbe, spalte))
spielgewonnen(feldpanel.gewinner(spalte).getname()); if(feldpanel.istvoll()) unentschieden(); farbwechsel(); feldpanel.repaint(); private void farbwechsel() if(farbe == Color.red) farbe = Color.blue; else farbe = Color.red; private void spielgewonnen(string name) Button gewonnen = new Button("Spieler " + name + " hat gewonnen!"); gewonnen.addactionlistener( new ActionListener() public void actionperformed(actionevent e) Runtime.getRuntime().exit(0); ); remove(buttonpanel); buttonpanel.add(gewonnen); add("north", gewonnen); private void unentschieden () Button unentschieden = new Button(" Alle Steine gesetzt: Unentschieden!"); unentschieden.addactionlistener( new ActionListener() public void actionperformed(actionevent e) Runtime.getRuntime().exit(0); ); remove(buttonpanel); add("north", unentschieden);
7". *3%3=, ##", %9 9RR RRR R =#D@97 / %") :, /.:(>: 6 SS:1% 2= I* : %L L'C:### Hubwieser, P.: Didaktik der Informatik. Grundlagen, Konzepte, Beispiele. Berlin, Heidelberg, New York: Springer Verlag, 2000. 9RR= = = R R>R>R