128 lines
8.1 KiB
HTML
128 lines
8.1 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
|
<title>Chess: Chess</title>
|
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javaScript" src="search/search.js"></script>
|
|
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
|
</head>
|
|
<body onload='searchBox.OnSelectItem(0);'>
|
|
<!-- Generated by Doxygen 1.7.0 -->
|
|
<script type="text/javascript"><!--
|
|
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
|
--></script>
|
|
<div class="navigation" id="top">
|
|
<div class="tabs">
|
|
<ul class="tablist">
|
|
<li class="current"><a href="index.html"><span>Main Page</span></a></li>
|
|
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
|
<li><a href="files.html"><span>Files</span></a></li>
|
|
<li id="searchli">
|
|
<div id="MSearchBox" class="MSearchBoxInactive">
|
|
<span class="left">
|
|
<img id="MSearchSelect" src="search/mag_sel.png"
|
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
|
alt=""/>
|
|
<input type="text" id="MSearchField" value="Search" accesskey="S"
|
|
onfocus="searchBox.OnSearchFieldFocus(true)"
|
|
onblur="searchBox.OnSearchFieldFocus(false)"
|
|
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
|
</span><span class="right">
|
|
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
|
|
</span>
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
<div class="header">
|
|
<div class="headertitle">
|
|
<h1>Chess </h1> </div>
|
|
</div>
|
|
<div class="contents">
|
|
<dl class="author"><dt><b>Author:</b></dt><dd>Peter Bauer</dd></dl>
|
|
<h2><a class="anchor" id="intro"></a>
|
|
Einführung</h2>
|
|
<p>Sie haben die Aufgabe einige grundlegende Schachfunktionen zu implementieren. Wir beschränken uns auf Verwaltungsfunktionen (Initialisieren, Schachfiguren auf dem Brett zu platzieren, etc.) und erste Überlegungen, wie sich Schachfiguren gegenseitig bedrohen können (Teilen zwei verschiedene Felder eine Zugbahn einer bestimmten Schachfigur?).</p>
|
|
<h2><a class="anchor" id="basics"></a>
|
|
Grundsätzliches</h2>
|
|
<p>Schach wird auf einem quadratischen Brett mit acht Spalten (files, mit den Buchstaben "a" bis "h" bezeichnet) und acht Zeilen (ranks, mit den Ziffern 1 bis 8 bezeichnet) gespielt. Ein Feld (square) ist somit mit der Kombination eines file-Bezeichners und eines rank-Bezeichners eindeutig bestimmt. Viele der zu implementierenden Funktionen werden mit diesen Postionen zu tun haben.</p>
|
|
<p>Zur Illustration ist hier nochmal ein Schachbrett abgebildet: </p>
|
|
<div align="center">
|
|
<img src="../chess_board_blank.gif" alt="chess_board_blank.gif"/>
|
|
</div>
|
|
<p>Da die vorgegebenen Datentypen auf Englisch bezeichnet sind, hier nochmal die Übersetzung der wichtigsten Begriffe: </p>
|
|
<table class="doxtable">
|
|
<tr>
|
|
<th>Englisch</th><th>Deutsch </th></tr>
|
|
<tr>
|
|
<td>Chess board</td><td>Schachbrett </td></tr>
|
|
<tr>
|
|
<td>Square</td><td>Feld </td></tr>
|
|
<tr>
|
|
<td>File</td><td>Spalte </td></tr>
|
|
<tr>
|
|
<td>Rank</td><td>Zeile </td></tr>
|
|
<tr>
|
|
<td>to capture</td><td>schlagen </td></tr>
|
|
<tr>
|
|
<td>Pawn</td><td>Bauer </td></tr>
|
|
<tr>
|
|
<td>Rook</td><td>Turm </td></tr>
|
|
<tr>
|
|
<td>Knight</td><td>Springer </td></tr>
|
|
<tr>
|
|
<td>Bishop</td><td>Läufer </td></tr>
|
|
<tr>
|
|
<td>Queen</td><td>Dame </td></tr>
|
|
<tr>
|
|
<td>King</td><td>König </td></tr>
|
|
</table>
|
|
<h2><a class="anchor" id="usage"></a>
|
|
Verwendung des Projektes</h2>
|
|
<h3><a class="anchor" id="call"></a>
|
|
Aufruf</h3>
|
|
<p>Sie können nach einem erfolgreichen Build das Programm auf folgende Weisen aufrufen:</p>
|
|
<ul>
|
|
<li><pre>./chess</pre>Es wird ein Schachbrett mit den Figuren in der Startaufstellung ausgegeben.</li>
|
|
<li><pre>./chess test</pre>Es werden die automatisierten Unit Tests ausgeführt.</li>
|
|
</ul>
|
|
<h3><a class="anchor" id="files"></a>
|
|
Bestandteile des Projektes</h3>
|
|
<p>Das Projekt besteht aus folgenden Files</p>
|
|
<ul>
|
|
<li>makefile: Dient zur Steuerung des make Utilities.</li>
|
|
<li><a class="el" href="chess__main__driver_8cpp.html">chess_main_driver.cpp</a>: Enthält die <a class="el" href="chess__main__driver_8cpp.html#a0ddf1224851353fc92bfbff6f499fa97">main()</a> Funktion, welche ein Schachbrett mit den Figuren in der Startaufstellung ausgibt.</li>
|
|
<li><a class="el" href="chess__test__driver_8cpp.html">chess_test_driver.cpp</a>: Enthält die <a class="el" href="chess__main__driver_8cpp.html#a0ddf1224851353fc92bfbff6f499fa97">main()</a> Funktion, welche ein Schachbrett mit den Figuren in der Startaufstellung ausgibt.</li>
|
|
<li><a class="el" href="test__chess_8h.html">test_chess.h</a>: Enthält alle Prototypen der Testfunktionen.</li>
|
|
<li><a class="el" href="test__chess_8cpp.html">test_chess.cpp</a>: Enthält alle Implementierung der Testfunktionen und einige generell für die Testfunktionen gebrauchte Daten.</li>
|
|
<li><a class="el" href="chess_8h.html">chess.h</a>: Enthält die Datenstrukturen, welche in diesem Projekt verwendet werden und die Prototypen der Funktionen, welche Sie implementieren müssen.</li>
|
|
<li><a class="el" href="chess_8cpp.html">chess.cpp</a>: Enthält Leerimplementierungen der Funktionen, die Sie implementieren müssen.</li>
|
|
<li><a class="el" href="general_8h.html">general.h</a>: Enthält Macro-Definitionen für MIN und MAX.</li>
|
|
<li><a class="el" href="shortcut_8h.html">shortcut.h</a>, <a class="el" href="shortcut_8cpp.html">shortcut.cpp</a>: Enthalten Funktionen, zur Ausführung der automatisierten Tests. Sie müssen diese Files nicht weiter beachten.</li>
|
|
<li><a class="el" href="chess__printer_8h.html">chess_printer.h</a> und chess_printer.c: Enthalten Funktionen, zur Darstellung eines Schachfeldes in einem ASCII Terminal. Ist für Ihre Arbeit nicht von Bedeutung.</li>
|
|
<li><a class="el" href="mainpage_8h.html" title="Beschreibung der Aufgabe Chess.">mainpage.h</a>, Doxyfile: Files, zur Erstellung der Dokumentation, die Sie gerade lesen. Diese Files müssen Sie nicht weiter beachten. </li>
|
|
</ul>
|
|
</div>
|
|
<!--- window showing the filter options -->
|
|
<div id="MSearchSelectWindow"
|
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
|
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Defines</a></div>
|
|
|
|
<!-- iframe showing the search results (closed by default) -->
|
|
<div id="MSearchResultsWindow">
|
|
<iframe src="" frameborder="0"
|
|
name="MSearchResults" id="MSearchResults">
|
|
</iframe>
|
|
</div>
|
|
|
|
<hr class="footer"/><address class="footer"><small>Generated on Wed Oct 11 2017 22:56:40 for Chess by
|
|
<a href="http://www.doxygen.org/index.html">
|
|
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.0 </small></address>
|
|
</body>
|
|
</html>
|