'($)*'+ $, *$+*$'- $..$+/, 01.2$, 2*$0, - $'($)*'+ $, *$+*$

Ähnliche Dokumente
Übung Nr. 20 Freitag, 09:00-11:00 Uhr in E3.301

Betreutes Programmieren Vorlesung Informatik II, Blatt 5

Probeklausur Informatik 2 Sommersemester 2013

Anweisungen zur Ablaufsteuerung

Keine Bepunktung! Betreutes Programmieren Vorlesung Informatik II, Blatt 12 SS 2011

Institut für Programmierung und Reaktive Systeme 17. Juli Programmieren II. Übungsklausur

1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays)

Grundlagen der Programmierung (GP) Prof. Dr. H. Schlingloff Joachim Hänsel

Grafische Benutzeroberflächen

Beispiele für Ausdrücke. Der imperative Kern. Der imperative Kern. Imperativer Kern - Kontrollstrukturen. Deklarationen mit Initialisierung

Musterlösung Stand: 5. Februar 2009

Grafische Benutzeroberflächen

Betreutes Programmieren Vorlesung Informatik II, Blatt 11 Musterlösung

class BahnTest2 { public static void main(string[] args) { Zug myice = new Zug("ICE Duisburg", 1200, 0, 50); BahnCardFahrer kunde2 = new BahnCardFahre

Fakultät IV Elektrotechnik/Informatik

1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen

GUI Programmierung mit JAVA Swing

Übersicht. 1 Vorbemerkungen zu Sequenzdiagrammen. 2 Sequenzdiagramm aus Code ableiten. 3 Sequenzdiagramm konstruieren und in Java implementieren

Klausur vom 14. Juni Informatik 4

DHBW Karlsruhe, Angewandte Informatik Programmieren in JAVA W. Geiger, T. Schlachter, C. Schmitt, W.

CoMa 04. Java II. Paul Boeck. 7. Mai Humboldt Universität zu Berlin Institut für Mathematik. Paul Boeck CoMa 04 7.

Grafische Benutzeroberflächen

! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete. II.4.2 Abstrakte Klassen und Interfaces - 1 -

public class MyChoice implements PlayConstants { private PlayGround ground; private YourChoice yours; private int acceptablechoice, value; public

Zugriffsrechte und Packages

1. Konventionelle Ein-/Ausgabebetonte Programmierung

Klausur Softwaretechnik / JAVA Fachbereich BW, für WINFO

16. Dezember 2004 Dr. M. Schneider, P. Ziewer

Objektorientierte Programmierung

II.4.2 Abstrakte Klassen und Interfaces - 1 -

(C) Sortieren und Suchen mit Java.-AWT Seite 1

Fachhochschule Stuttgart Prof. Uwe Schulz 5. Juli 2006 Hochschule der Medien Klausur Informatik, EDV-Nr (42021) Seite 1 von 4

Hauptklausur: PRGII MD

System.out.println("TEXT");

Java - Programmierung - Prozedurale Programmierung 1

Aufgabe 1: Objekte, Klassen, Vererbung (15 Punkte)

1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays)

Hochschule der Medien Prof. Uwe Schulz 13. Juli 2009 Klausur Informatik, EDV-Nr Seite 1 von 6. Teil 2: Aufgaben

Institut für Programmierung und Reaktive Systeme 6. Juli Programmieren II. Übungsklausur

Instrumentierung und Dekodierung

Fachhochschule Stuttgart Prof. Uwe Schulz 14. Juli 2005 Hochschule der Medien Klausur Informatik, EDV-Nr (42021) Seite 1 von 4

Speichern der Benutzereinstellungen

Lesen Sie zuerst die Hinweise auf der Rückseite!

Hochschule der Medien Prof. Uwe Schulz 14. Juli 2010 Klausur Informatik, EDV-Nr Seite 1 von 5. Teil 2: Aufgaben

// compiliert, aber Programmabbruch zur Laufzeit: einesuppe = ((EßbarerPilz)einPilz).kochen();

Fakultät Angewandte Informatik Programmierung verteilter Systeme Übungen zur Vorlesung Informatik II, Blatt 8

B1. Ein-/Ausgabebetonte Programmierung

II.4.1 Unterklassen und Vererbung - 1 -

Beispielprüfung CuP WS 2015/2016

II.4.1 Unterklassen und Vererbung - 1 -

Vergleich verschiedener OO-Programmiersprachen

Klausur zur Informatik A WS 2001/2002 Name: Korrektor: Punkte: a) Zeichnen Sie zu der nachstehenden Syntax in EBNF die passenden Syntaxdiagramme.

Eingabe von Texten. Vorlesung Software-Entwicklung / Folie 101

Institut für Programmierung und Reaktive Systeme 7. Juli Programmieren II. Übungsklausur

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

PR1-MB, SS10 Seite 1 Hauptklausur, geschrieben am Di

Übung 09: Vererbung und Dynamische Bindung

Kapitel 15. Systemarchitektur

Grundlagen der Informatik / Algorithmen und Datenstrukturen. Aufgabe 139

Übungen / Lösungen Programmieren 1 Felix Rohrer LÖSUNGEN

Städtisches Gymnasium Olpe Java Ht Informatik - Q1 Die Klasse List im Abitur Methoden und Beispielcode Hier alle wichtigen Methoden. Ein Beispielcode

B1. Ein-/Ausgabebetonte Programmierung

Informatik II Aufgabenblatt 7

Punkte. Teil 1. Teil 2. Summe. 1. Zeigen Sie, dass der untenstehende Suchbaum die AVL-Bedingung verletzt und überführen Sie ihn in einen AVL-Baum.

B1. Ein-/Ausgabebetonte Programmierung

Technische Universität Braunschweig

Hintergrund und Motivation

Aufgabe11. Methode test1. import java.util.hashmap; import java.util.arraylist; public class Aufgabe11 {

Arrays von Objekten. Dr. Philipp Wendler. Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung

Konzepte objektorientierter Programmierung

Subnetting Version 0 Munz FTE1- JAVA Programm Analyse

II.3.1 Rekursive Algorithmen - 1 -

Praktikum Informatik II Prof. Dr. Martin Trauth, Dr. Michael Männel

Objektorientierte Programmierung Studiengang Medieninformatik

Ziele. Kapitel 8: Grafische Benutzerschnittstellen. AWT und Swing. Ziele (2)

7. Architektur interaktiver Systeme

import JavaKaraProgram; public class Quadrat extends JavaKaraProgram { // Anfang von Quadrat void turnaround() { kara.turnleft(); kara.

Grafik-Programmierung

II.4.1 Unterklassen und Vererbung - 1 -

Betreutes Programmieren Vorlesung Informatik II, Blatt 11

II.4.1 Unterklassen und Vererbung - 1 -

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme

Beispiellösung zur Klausur AI2 im Sommersemester 2007

! 1. Rekursive Algorithmen.! 2. Rekursive (dynamische) Datenstrukturen. II.3.2 Rekursive Datenstrukturen - 1 -

Konstruktor. public Rational(int i) { Zaehler = i; Nenner = 1; }

Lösungen. 1. Aufgabe. // ActionExample.java import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.

Probeklausur: Programmierung WS04/05

Arrays. Gilbert Beyer und Annabelle Klarl. Einführung in die Informatik. Zentralübung zur Vorlesung Einführung in die Informatik

Java-Schulung Grundlagen

Lesen Sie zuerst die Hinweise auf der folgenden Seite! Musterlösung. Klausurort: Aufgabe Summe

Transkript:

!"# $ % & #

... 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