---
# System prepended metadata

title: Projekt OOP mit Schach
tags: [Programmierung]

---

# Einstieg Programmieren mit Schach

[toc]

Ziel ist es einen Objektorientierten Einstieg in die Programmierung zu ermöglichen.

- **Projekt**: Schach

## Brainstorming Spielablauf

...

## Schach Grundlagen

### Schachspiel

- Schachregeln [^1]

### Schachbrett

Ausgabe in HTML (Überlegung in Emmett)
- div.chessboard>div#row$@-*8>div*8

### Schachfiguren Eigenschaften

| Name               | HTML     |  Figur  |
| ---                | ---      | :---:   |
| Bauer (schwarz)    | \&#9823; | &#9823; |
| Springer (schwarz) | \&#9822; | &#9822; |
| Läufer (schwarz)   | \&#9821; | &#9821; |
| Turm (schwarz)     | \&#9820; | &#9820; |
| Dame (schwarz)     | \&#9819; | &#9819; |
| König (schwarz)    | \&#9818; | &#9818; |
| Bauer (weiß)       | \&#9817; | &#9817; |
| Springer (weiß)    | \&#9816; | &#9816; |
| Läufer (weiß)      | \&#9815; | &#9815; |
| Turm (weiß)        | \&#9814; | &#9814; |
| Dame (weiß)        | \&#9813; | &#9813; |
| König (weiß)       | \&#9812; | &#9812; |


### Schachfiguren Ausgabe

- Die Schachfiguren stehen im Standard-Zeichensatz UTF8 zur Verfügung: [^2]

| Name               | HTML     |  Figur  |
| ---                | ---      | :---:   |
| Bauer (schwarz)    | \&#9823; | &#9823; |
| Springer (schwarz) | \&#9822; | &#9822; |
| Läufer (schwarz)   | \&#9821; | &#9821; |
| Turm (schwarz)     | \&#9820; | &#9820; |
| Dame (schwarz)     | \&#9819; | &#9819; |
| König (schwarz)    | \&#9818; | &#9818; |
| Bauer (weiß)       | \&#9817; | &#9817; |
| Springer (weiß)    | \&#9816; | &#9816; |
| Läufer (weiß)      | \&#9815; | &#9815; |
| Turm (weiß)        | \&#9814; | &#9814; |
| Dame (weiß)        | \&#9813; | &#9813; |
| König (weiß)       | \&#9812; | &#9812; |

<div style="color: black; font-size: 15rem;">&#9821;</div>


## Klassendiagramm

```plantuml
skinparam style strictuml
skinparam class {
    BackgroundColor white
    ArrowColor gray
    BorderColor black
}

class Player
{
    - name: string
    - color: char
    + setName(string)
    + getName(): string
    + setColor(char)
    + getColor(): char
}

class Chessgame
{
    - board: Chessboard
    - status: int
    - player_1: Player
    - player_2: Player
    - player_active: Player
    - piece_active: Piece
}

class Chessboard
{
    squares[x][y]: array
    pieces[]: array
    
}

class Chesspiece
{
    x: int
    y: int
}

Player "2" -- "1" Chessgame
Chessgame "1" o-- "1" Chessboard
Chessgame "1" o-- "n" Chesspiece
Chessboard "1" o-- "*" Chesspiece
```

[^1]: Übersicht [Schachregeln in Wikipedia](https://de.wikipedia.org/wiki/Kategorie:Schachregeln)

[^2]: Schachfiguren [UTF8: 9812-9823](https://www.w3schools.com/charsets/ref_utf_misc_symbols.asp)
