Tracks
/
Elixir
Elixir
/
Übungen
/
Schachbrett
Schachbrett

Schachbrett

Lernübung

Einführung

Bereiche

Bereiche repräsentieren eine Folge von einer oder mehreren aufeinanderfolgenden Ganzzahlen. Sie entstehen, wenn du zwei Ganzzahlen mit .. verbindest.

1..5

Bereiche können aufsteigend oder absteigend sein. Der erste und der letzte Wert sind immer eingeschlossen.

Ein Bereich implementiert das Enumerable-Protokoll. Das bedeutet, du kannst Funktionen im Enum-Modul verwenden, um mit Bereichen zu arbeiten.

Anleitung

Als Schachfan möchtest du deine eigene Version des Spiels schreiben. Ja, es gibt vielleicht schon jede Menge Schach-Implementierungen online, aber deine wird einzigartig!

Doch bevor du deiner Fantasie freien Lauf lassen kannst, musst du dich um die Grundlagen kümmern. Fangen wir damit an, das Brett zu erzeugen.

Jedes Feld des Schachbretts wird durch ein Buchstaben-Zahlen-Paar identifiziert. Die vertikalen Spalten der Felder, die man Linien nennt, sind mit A bis H beschriftet. Die horizontalen Reihen der Felder, die man Reihen nennt, sind mit 1 bis 8 nummeriert.

1. Definiere den Bereich der Reihen

Implementiere die Funktion rank_range/0. Sie sollte einen Bereich von Ganzzahlen von 1 bis 8 zurückgeben.

Chessboard.rank_range()

2. Definiere den Bereich der Linien

Implementiere die Funktion file_range/0. Sie sollte einen Bereich von Ganzzahlen zurückgeben, vom Codepunkt des Großbuchstabens A bis zum Codepunkt des Großbuchstabens H.

Chessboard.file_range()

3. Wandle den Bereich der Reihen in eine Liste von Reihen um

Implementiere die Funktion ranks/0. Sie sollte eine Liste von Ganzzahlen von 1 bis 8 zurückgeben. Schreibe die Liste nicht von Hand, sondern erzeuge sie aus dem Bereich, den die Funktion rank_range/0 zurückgibt.

Chessboard.ranks()
# => [1, 2, 3, 4, 5, 6, 7, 8]

4. Wandle den Bereich der Linien in eine Liste von Linien um

Implementiere die Funktion files/0. Sie sollte eine Liste von Buchstaben (Strings) von „A“ bis „H“ zurückgeben. Schreibe die Liste nicht von Hand, sondern erzeuge sie aus dem Bereich, den die Funktion file_range/0 zurückgibt.

Chessboard.files()
# => ["A", "B", "C", "D", "E", "F", "G", "H"]
Über GitHub bearbeiten Der Link öffnet sich in einem neuen Fenster oder Tab
Elixir Exercism

Bereit, mit Schachbrett zu starten?

Melde dich bei Exercism an, um Elixir mit 58 Konzepte168 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.