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.
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.
Implementiere die Funktion rank_range/0. Sie sollte einen Bereich von Ganzzahlen von 1 bis 8 zurückgeben.
Chessboard.rank_range()
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()
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]
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"]
Melde dich bei Exercism an, um Elixir mit 58 Konzepte168 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.