Hier gibt es die dritte Hausaufgabe zur Vorlesung Programmiermethodik im SS2010: Programmiermethodik Hausaufgabe 3. Abgabe bis spätestens Mittwoch 05.05.2010 um 23.59 Uhr.
Tag Archives: exercise
Das PDF mit den Punkten der abgegebenen Hausaufgaben ist passwortgeschützt. Das Passwort wird am Freitag in der Übung mitgeteilt – wer es nicht abwarten kann, möge mir bitte eine Mail schreiben
Wie versprochen hier der Screencast zur PM Übung 2: Zum Screencast
Hi,
aufgrund einiger Nachfragen wurde die Hausaufgabe 2 aktualisiert und steht zum Download bereit: PMSS2010 Hausaufgabe 2 (Aktualisiert).
Änderungen:
- Es muss KEINE Bank implementiert werden. Es genügt der Geldautomat mit dahinter hängendem Bankkonto.
- Es soll NICHT der komplette Workspace abgegeben werden. Projekt in Eclipse exportieren und als E-Mail Anhang versenden (genau wie in der Übung gezeigt).
Hey,
hier gibts die Folien zur heutigen Übung.
- PowerPoint: PMSS2010 – Uebung 2 (PowerPoint)
- PDF: PMSS2010 – Uebung 2 Folien (PDF)
Gruß,
Andreas
Hi,
hier gibt es die zweite Hausaufgabe zum Download: PMSS2010 Hausaufgabe 2 (Aktualisiert). Abgabe ist der Mittwoch der 28.04.2010 23.59 per Mail.
Hi,
ihr braucht heute keinen Rechner (bitte aus lassen), dafür aber Karopapier und Stifte. Anbei die Folien zur Übung 1 und die Hausaufgabe 1. Abgabe bis Mittwoch abend!
bye,
Ruben

Ziel des Spiels
Mancala ist ein besonders in Afrika, Asien und der Karibik weit verbreitetes Spiel. Meist werden Bohnen als Spielsteine verwendet, weshalb das Spiel auch als “Bohnenspiel” bekannt ist.
Ziel des Spiels ist es, möglichst viele Spielsteine in die eigene Sammelgrube zu befördern.
Spielaufbau
Das Spielfeld ist ein längliches Brett mit sechs Spielgruben auf jeder langen Seite. Links und rechts befindet sich je ein Vorratsloch für die gewonnenen Steine, die sog. Kalah. Zu Beginn des Spiels ist diese noch leer. In jeder Spielgrube 4 Steine liegen. Die eigene Kalah befindet sich vom Spieler aus gesehen auf der rechten Seite.
Spielbeginn und Ziehen
Gezogen wird abwechselnd und nach folgenden Regeln:
Der erste Spieler nimmt aus einer Spielgrube auf seiner Seite alle vier Steine und legt jeweils einen in die folgenden Gruben. Dabei geht er gegen den Uhrzeigersinn vor und wird eventuell auch in den Gruben des Gegners Steine ablegen. Die gegnerische Kalah wird ausgelassen. Der Gegner verfährt nun ebenso und verteilt alle Steine aus einer seiner Gruben. Man darf nochmal ziehen, wenn der letzte Stein eines Zuges in der eigenen Kalah landet.
Schlagen
Trifft einer der Spieler mit dem letzten Stein in der eigenen Hälfte auf eine leere Grube, darf er diese Steine und die des Gegners aus der gegenüberliegenden Grube nehmen und in seine Kalah legen. Auf der gegnerischen Seite muss mindestens ein Stein übrigbleiben, damit derjenige Spieler weiterspielen kann. In dem speziellen Fall, dass ein Spieler mit dem letzten Stein in der eigeenen Hälfte auf eine leere Grube trifft UND alle Gruben des Gegners bis auf die gegenüberliegenden Grube leer sind, dürfen keine Steine geklaut werden.
Spielende
Bleibt auf der gegenerischen Seite kein Stein übrig, darf der andere Spieler alle seine Steine in seine Kalah legen. Damit ist das Spiel beendet. Es werden nun die Steine gezählt, und wer die meisten hat, ist der Gewinner.
Online spielen könnt ihr z.B: hier (ACHTUNG: Das Spiel spiegelt nicht notwendigerweise unsere Interpretation der Regeln wieder!!)
This homework continues the Xtext exercise from homework #10. This time, you have to generate Java code from EngineeringC code. Add this example model to your EngineeringC project:
EngineeringCDiagram diag {
ECBlockDecl test {
ECStore x {
value : "0"
}
ECStore y {
value : "7"
}
ECComputeBlock comp1 {
expression : "x = 6 * y"
}
}
ECBlockDecl callTest {
ECStore z {
value : "0"
}
ECBlockAppl callTest {
instanceof : test
}
ECComputeBlock comp2 {
expression : "z = x + 42"
}
}
}
(Remember to first modify your grammar before creating a code generation template!)
The generated Java code should calculate the correct result for all ECComputeBlocks. To ensure this, create a JUnit test in the same package as the generated class. Call the generated methods from the test and ensure that the expected values are computed. To make cross-block variable access possible, you have to modify the Xpand template so that these variables are accessible from the generated methods.
Xtext Workflow from the lecture:
<workflow>
<property file="workflow.properties"/>
<component class="org.eclipse.xtext.MweReader" uri="${modelFile}">
<register class="de.unikassel.se.compilerbau.ECStandaloneSetup"/>
</component>
<component id="generator" class="org.eclipse.xpand2.Generator">
<metaModel id="mm" class="org.eclipse.xtend.typesystem.emf.EmfMetaModel">
<metaModelPackage value="de.unikassel.se.compilerbau.eC.ECPackage"/>
</metaModel>
<expand value="GenerateEC::Root FOR model"/>
<outlet path="${srcGenPath}/">
<postprocessor class="org.eclipse.xpand2.output.JavaBeautifier"/>
</outlet>
</component>
</workflow>
Helpful links: