Skip to content

Commit

Permalink
Update Additional Material
Browse files Browse the repository at this point in the history
  • Loading branch information
appenmaier committed Nov 6, 2024
1 parent b08979b commit 57636bc
Show file tree
Hide file tree
Showing 9 changed files with 347 additions and 54 deletions.
Original file line number Diff line number Diff line change
@@ -1,14 +1,12 @@
---
title: Klausurergebnisse
description: ''
sidebar_position: 60
sidebar_position: 20
tags: []
---

import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem';

## Programmierung 1

<Tabs>
<TabItem value="wwibe23" label="Klausur Q1 2024 (WWIBE23)" default>

Expand Down Expand Up @@ -53,50 +51,3 @@ xychart-beta

</TabItem>
</Tabs>

## Programmierung 2

<Tabs>
<TabItem value="wwibe23" label="Klausur Q3 2024 (WWIBE23)" default>

- Punkteschnitt: 36 von 50
- Durchfallquote: 22%

```mermaid
xychart-beta
title "Verteilung"
x-axis "Punkte" ["40-50", "30-49", "20-29", "10-19", "0-9"]
y-axis "Studierende (%)" 0 --> 50
bar [52, 14, 17, 13, 3]
```

</TabItem>
<TabItem value="wwibe22" label="Klausur Q2 2023 (WWIBE22)">

- Punkteschnitt: 29 von 50
- Durchfallquote: 38%

```mermaid
xychart-beta
title "Verteilung"
x-axis "Punkte" ["40-50", "30-49", "20-29", "10-19", "0-9"]
y-axis "Studierende (%)" 0 --> 50
bar [35, 16, 19, 16, 14]
```

</TabItem>
<TabItem value="wwibe21" label="Klausur Q3 2022 (WWIBE21)">

- Punkteschnitt: 26 von 50
- Durchfallquote: 41%

```mermaid
xychart-beta
title "Verteilung"
x-axis "Punkte" ["40-50", "30-49", "20-29", "10-19", "0-9"]
y-axis "Studierende (%)" 0 --> 50
bar [24, 16, 27, 13, 19]
```

</TabItem>
</Tabs>
10 changes: 10 additions & 0 deletions docs/additional-material/daniel/java1/java1.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
title: Programmierung 1
description: ''
sidebar_position: 10
tags: []
---

import DocCardList from '@theme/DocCardList';

<DocCardList />
90 changes: 90 additions & 0 deletions docs/additional-material/daniel/java1/kill-team.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
---
title: Kill Team
description: ''
sidebar_position: 40
tags: []
---

Im Rahmen der Vorlesungswiederholung soll Schritt für Schritt eine abgespeckte
Variante des Tabletop-Spiels
_[Warhammer 40,000 Kill Team](https://www.warhammer.com/en-GB/other-games-kill-team-LP)_
entwickelt werden. Bei diesem Strategiespiel für zwei Spieler kämpfen zwei
sogenannten Kill Teams mit dem Ziel gegeneinander, entsprechende Missionsziele
zu erfüllen bzw. das gegnerische Team auszulöschen.

## Spielablauf

Das Spiel soll aus mehreren Runden bestehen und solange dauern, bis ein Spieler
keine Kämpfer mehr hat. In jeder Runde sollen sich die Kämpfer der Spieler
gegenseitig abwechselnd angreifen können. Dabei soll jeder Spieler entscheiden
können, ob der eigene Kämpfer einen Fernkampfangriff oder einen Nahkampfangriff
ausführen soll. "Stirbt" einer Kämpfer (LP \<= 0), soll das Spiel enden.

## Ablauf eines Fernkampfangriffs und Ermittlung des Schadens

Der angreifende Spieler würfelt mit der Anzahl AW seiner Fernkampfwaffe, der
verteidigende Spieler würfelt mit der Anzahl VW. Anschließend wird der Schaden
berechnet und dem verteidigenden Spieler Lebenspunkte in Höhe des Schadens
abgezogen. Der Schaden berechnet sich dabei gemäß der Formel _(Anzahl Treffer -
Anzahl Blocks) x SW + (Anzahl Kritischer Treffer - Anzahl Kritischer Blocks) x
KS_. Die Anzahl Treffer ergibt sich aus der Summe der Wurfwerte des angreifenden
Spielers >= BF_KG, die Anzahl Blocks aus der Summe der Wurfwerte des
verteidigenden Spielers >= RW.

**Hinweise**

- Wurfwerte sollen zwischen 1 und 6 liegen
- Wurfwerte gleich 6 sollen Kritische Treffer bzw. Kritische Blocks darstellen

## Ablauf eines Nahkampfangriffs und Ermittlung des Schadens

Beide Spieler würfeln mit der Anzahl AW ihrer Nahkampfwaffe. Anschließend soll
jeder Spieler, beginnend beim angreifenden Spieler, abwechselnd entscheiden
können, ob eine (Kritische) Attacke als (Kritischer) Schlag oder als (Kritische)
Parade gelten soll. Die Anzahl Attacken ergibt sich aus der Summe der
Wurfwerte >= BF_KG. Bei einem (Kritischen) Schlag werdem dem gegnerischen
Spieler Lebenspunkte in Höhe SW bzw. KS abgezogen, bei einer (Kritischen) Parade
wird die Anzahl (Kritischer) Attacken des gegnerischen Spielers um 1 reduziert.

**Hinweise**

- Wurfwerte sollen zwischen 1 und 6 liegen
- Wurfwerte gleich 6 sollen Kritische Attacken darstellen

## ER-Modell

```mermaid
erDiagram
Spieler ||--o{ "Kämpfer" : hat
"Kämpfer" ||--|{ Waffe : hat
"Würfel"
Spieler {
String Name
}
"Kämpfer" {
String Name
String Rasse
int LP
int VW
int RW
}
Waffe {
String Name
String Typ
int AW
int BF_KG
int SW
int KS
}
"Würfel" {
int Wurfwert
}
```

LP = Lebenspunkte, VW = Verteidigungswert, RW = Rüstungswurf, AW = Attackenwert,
BF_KG = Ballistische Fertigkeit / Kampfgeschick, SW = Schadenswert, KS =
Kritischer Schadenswert
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: Klausur Programmierung 1
title: Musterklausur
description: ''
sidebar_position: 10
tags: []
Expand Down
179 changes: 179 additions & 0 deletions docs/additional-material/daniel/java1/wwibe224.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,179 @@
---
title: WWIBE224
description: ''
sidebar_position: 40
tags: []
---

## Links

- [GitHub Repository Demos](https://github.com/appenmaier/java_wwibe224)
- [GitHub Repository Musterlösungen Übungsaufgaben](https://github.com/appenmaier/java_exercises)
- [GitHub Repository Musterlösungen Klausuraufgaben](https://github.com/appenmaier/java_exam_exercises)
- [Abbildungen](https://app.mural.co/t/programmierungwwibe2248240/m/programmierungwwibe2248240/1729834706630/301020393cfaff8bb3d89e41e78d79d332f429aa)

## Wiederholungsaufgabe 1

Es soll eine erste Version des Kill Team Spiels erstellt werden. Erstelle hierzu
eine ausführbare Klasse wie folgt:

- es sollen Datenobjekte für die Eigenschaften _Name Spieler_, _Name Kämpfer_,
_LP Kämpfer_ sowie _Wurfert_ des ER-Modells für 2 Spieler, 2 Kämpfer und 10
Würfel deklariert werden
- es soll möglich sein, den Datenobjekten für die Eigenschaften der Spieler und
Kämpfer Werte über die Konsole zuzuweisen
- es sollen lediglich zwei einfache Angriffe simuliert werden

### Ablauf eines einfachen Angriffs und Ermittlung des Schadens

Der angreifende Spieler würfelt mit 4 Würfeln, der verteidigende Spieler würfelt
mit 3 Würfeln. Anschließend wird der Schaden berechnet und dem verteidigenden
Spieler Lebenspunkte in Höhe des Schadens abgezogen. Der Schaden berechnet sich
dabei gemäß der Formel _Anzahl Treffer - Anzahl Blocks_. Die Anzahl Treffer
ergibt sich aus der Summe der Wurfwerte des angreifenden Spielers, die Anzahl
Blocks aus der Summe der Wurfwerte des verteidigenden Spielers.

**Hinweise**

- Wurfwerte sollen zwischen 1 und 6 liegen
- Die Problematiken, dass ein verteidigender Spieler bei einem Angriff "geheilt"
wird (Anzahl Treffer < Anzahl Blocks) und dass ein "toter" Spieler angreift
(Schaden beim ersten Angriff >= LP), sollen aktuell noch ignoriert werden.

### Beispielhafte Konsolenausgabe

```console
Spieler 1, Name: Hans
Spieler 1, Kämpfer 1, Name: Gregor
Spieler 1, Kämpfer 1, LP: 8

Spieler 2, Name: Peter
Spieler 2, Kämpfer 1, Name: Bonekraka
Spieler 2, Kämpfer 1, LP: 10

*----------------*
* Runde 1, Zug 1 *
*----------------*
Kämpfer von Hans: Gregor (8 LP)
Kämpfer von Peter: Bonekraka (10 LP)

Gregor würfelt 2, 2, 3 und 6.
Gregor erzielt 13 Treffer.
Bonekraka würfelt 1, 4 und 5.
Bonekraka erzielt 10 Blocks.
Bonekraka erleidet 3 Schaden und hat noch 7 LP.

*----------------*
* Runde 1, Zug 2 *
*----------------*
Kämpfer von Hans: Gregor (8 LP)
Kämpfer von Peter: Bonekraka (7 LP)

Bonekraka würfelt 1, 1, 3 und 5.
Bonekraka erzielt 10 Treffer.
Gregor würfelt 2, 4 und 5.
Gregor erzielt 11 Blocks.
Gregor erleidet -1 Schaden und hat noch 9 LP.
```

## Wiederholungsaufgabe 2

Es soll eine zweite Version des Kill Team Spiels entwickelt werden. Passe hierzu
die ausführbare Klasse wie folgt an:

- es sollen zusätzliche Datenobjekte für die Eigenschaften _VW Kämpfer_, _RW
Kämpfer_, _Name Waffe_, _Typ Waffe_, _AW Waffe_, _BF/KG Waffe_, _SW Waffe_ und
_KS Waffe_ des ER-Modells für 2 Spieler, 2 Kämpfer, 2 Nah- sowie 2
Fernkampfwaffen (je eine Nah- und Fernkampfwaffe pro Kämpfer) und 10 Würfel
deklariert werden
- es soll möglich sein, den neuen Datenobjekten Werte über die Konsole
zuzuweisen (alternativ können den Datenobjekten auch statisch Werte zugewiesen
werden)
- es soll ein vollständiges Spiel umgesetzt werden

### Beispielhafte Konsolenausgabe

```console
Spieler 1, Name: Hans
Spieler 1, Kämpfer 1, Name: Gregor
Spieler 1, Kämpfer 1, LP: 8
Spieler 1, Kämpfer 1, VW: 3
Spieler 1, Kämpfer 1, RW: 5
Spieler 1, Kämpfer 1, Waffe 1, Name: Boltpistole
Spieler 1, Kämpfer 1, Waffe 1, Ty: Fernkampfwaffe
Spieler 1, Kämpfer 1, Waffe 1, AW: 4
Spieler 1, Kämpfer 1, Waffe 1, BF_KG: 3
Spieler 1, Kämpfer 1, Waffe 1, SW: 2
Spieler 1, Kämpfer 1, Waffe 1, KS: 3
Spieler 1, Kämpfer 1, Waffe 2, Name: Energieschwert
Spieler 1, Kämpfer 1, Waffe 2, Typ: Nahkampfwaffe
Spieler 1, Kämpfer 1, Waffe 2, AW: 4
Spieler 1, Kämpfer 1, Waffe 2, BF_KG: 3
Spieler 1, Kämpfer 1, Waffe 2, SW: 3
Spieler 1, Kämpfer 1, Waffe 2, KS: 5

Spieler 2, Name: Peter
Spieler 2, Kämpfer 1, Name: Bonekraka
Spieler 2, Kämpfer 1, LP: 10
Spieler 2, Kämpfer 1, VW: 3
Spieler 2, Kämpfer 1, RW: 5
Spieler 2, Kämpfer 1, Waffe 1, Name: Bolter
Spieler 2, Kämpfer 1, Waffe 1, Typ: Fernkampfwaffe
Spieler 2, Kämpfer 1, Waffe 1, AW: 4
Spieler 2, Kämpfer 1, Waffe 1, BF_KG: 3
Spieler 2, Kämpfer 1, Waffe 1, SW: 3
Spieler 2, Kämpfer 1, Waffe 1, KS: 4
Spieler 2, Kämpfer 1, Waffe 2, Name: Spalta
Spieler 2, Kämpfer 1, Waffe 2, Typ: Nahkampfwaffe
Spieler 2, Kämpfer 1, Waffe 2, AW: 4
Spieler 2, Kämpfer 1, Waffe 2, BF_KG: 4
Spieler 2, Kämpfer 1, Waffe 2, SW: 3
Spieler 2, Kämpfer 1, Waffe 2, KS: 4

*----------------*
* Runde 1, Zug 1 *
*----------------*
Kämpfer von Hans: Gregor (8 LP)
Kämpfer von Peter: Bonekraka (10 LP)

Gregor, Angriffsart (N-Nahkampfangriff, F-Fernkampfangriff): F

Gregor würfelt 6, 4, 3 und 2.
Gregor erzielt 2 Treffer und 1 Kritische Treffer.
Bonekraka würfelt 4, 1 und 5.
Bonekraka erzielt 1 Blocks und 0 Kritische Blocks.
Bonekraka erleidet 2 Schaden und 3 Kritischen Schaden und hat noch 5 LP.

*----------------*
* Runde 1, Zug 2 *
*----------------*
Kämpfer von Hans: Gregor (8 LP)
Kämpfer von Peter: Bonekraka (5 LP)

Bonekraka, Angriffsart (N-Nahkampfangriff, F-Fernkampfangriff): N

Bonekraka würfelt 6, 4, 5 und 1.
Bonekraka erzielt 2 Attacken und 1 Kritische Attacken.
Gregor würfelt 4, 5, 4 und 2.
Gregor erzielt 3 Attacken und 0 Kritische Attacken.

Bonekraka, Aktion (1-Kritisch Schlagen, 2-Schlagen, 3-Kritisch Blocken oder 4-Blocken): 1
Gregor erleidet 4 Kritischen Schaden und hat noch 4 LP.
Gregor, Aktion (1-Kritisch Schlagen, 2-Schlagen, 3-Kritisch Blocken oder 4-Blocken): 2
Bonekraka erleidet 3 Schaden und hat noch 2 LP.
Bonekraka, Aktion (1-Kritisch Schlagen, 2-Schlagen, 3-Kritisch Blocken oder 4-Blocken): 2
Gregor erleidet 3 Schaden und hat noch 1 LP.
Gregor, Aktion (1-Kritisch Schlagen, 2-Schlagen, 3-Kritisch Blocken oder 4-Blocken): 2
Bonekraka erleidet 3 Schaden und stirbt.
```

## Wiederholungsaufgabe 3

Es soll eine dritte Version des Kill Team Spiels entwickelt werden. Passe hierzu
die ausführbare Klasse wie folgt an:

- es sollen zusätzliche Datenobjekte für zusätzliche Kämpfer und Waffen
deklariert werden
- es soll möglich sein, den neuen Datenobjekten Werte über die Konsole
zuzuweisen (alternativ können den Datenobjekten auch statisch Werte zugewiesen
werden)
Loading

0 comments on commit 57636bc

Please sign in to comment.