Browse Source
Merge branch 'fdai7492' into 'main'
Merge branch 'fdai7492' into 'main'
Projekt überarbeitung See merge request fdai7834/taktikmeister!1remotes/origin/Läufer-fertig,-Hendrik-Voß
fdai7492
11 months ago
38 changed files with 282 additions and 1241 deletions
-
7.vscode/launch.json
-
58Plan.md
-
3build/test/cache/defines_dependency.yml
-
242build/test/cache/input.yml
-
257build/test/cache/test_schach.c
-
6build/test/dependencies/cmock.d
-
0build/test/dependencies/force_build
-
1build/test/dependencies/schach.d
-
4build/test/dependencies/test_schach.d
-
4build/test/dependencies/test_schach_runner.d
-
4build/test/dependencies/unity.d
-
BINbuild/test/out/c/cmock.o
-
BINbuild/test/out/c/schach.o
-
BINbuild/test/out/c/test_schach.o
-
BINbuild/test/out/c/test_schach_runner.o
-
BINbuild/test/out/c/unity.o
-
BINbuild/test/out/test_schach.out
-
257build/test/preprocess/files/test_schach.c
-
3build/test/preprocess/includes/test_schach.c
-
34build/test/results/test_schach.pass
-
89build/test/runners/test_schach_runner.c
-
32src/Input.c
-
6src/Input.h
-
17src/Moving.c
-
10src/Moving.h
-
68src/Schachbrett.c
-
8src/Schachbrett.h
-
9src/Spieler.h
-
4src/main.c
-
9src/main.h
-
195src/schach.c
-
BINsrc/schach.exe
-
15src/schach.h
-
2team.md
-
1temp_input.txt
-
45test/test_Input.c
-
26test/test_Schachbrett.c
-
107test/test_schach.c
@ -1,7 +0,0 @@ |
|||
{ |
|||
// Use IntelliSense to learn about possible attributes. |
|||
// Hover to view descriptions of existing attributes. |
|||
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 |
|||
"version": "0.2.0", |
|||
"configurations": [] |
|||
} |
@ -0,0 +1,58 @@ |
|||
## Spielablauf: |
|||
|
|||
1. Ausgabe vom Spielfeld |
|||
|
|||
2. Weiß nach Figur für Zug fragen |
|||
|
|||
3. Weiß nach Ziel der Figur fragen |
|||
|
|||
4. Überprüfen ob Eingabe möglich ist |
|||
|
|||
4.1. falls nicht Schritt 2,3 und 4 Wiederholen |
|||
|
|||
4.2. Schach überprüfen bzw Schachmatt |
|||
|
|||
5. Figur bewegen |
|||
|
|||
5.1. falls gegnerische Figur -> Schlagen |
|||
|
|||
6. Wiederholung von 1-5 für Schwarz |
|||
|
|||
|
|||
|
|||
## Programmablauf: |
|||
|
|||
1. Spielfeld in der create_Schachfeld erstellen |
|||
|
|||
1.1 Schachfeld füllen |
|||
|
|||
2. Spielfeld anzeigen mit print_Schachfeld |
|||
|
|||
3. Eingabe mit choose_Figur |
|||
|
|||
3.1 erst x dann y |
|||
|
|||
4. Eingabe mit choose_destination_Figur |
|||
|
|||
4.1 erst x dann y |
|||
|
|||
5. Überprüfung der Figur mit check_Figur |
|||
|
|||
5.1.bsp.: Eingabe choose_Figur x=0 y=0 temp. char welcher die eingabe des Spielfeldarray an der Stelle 0 0 speichert |
|||
|
|||
5.2. if abfrage welche Figur da steht |
|||
|
|||
5.2.1. wechsel in die seperaten Figuren-Funktionen(Datein) |
|||
|
|||
5.3. Prüfen ob schwarz oder weiß durch groß und kleinschreibung |
|||
|
|||
6. In den seperaten Figuren-Funktionen wird überprüft ob der Zug möglich ist |
|||
|
|||
6.1 wenn möglich wird die Figur an die stelle gesetzt |
|||
|
|||
6.2 wenn es nicht möglich ist dann wird Schritt 2-6 wiederholt |
|||
|
|||
7.(Schachmatt wird in check_checkmate überprüft) |
|||
|
|||
8.Schritt 2-8 wird Wiederholt |
|||
|
@ -1,3 +0,0 @@ |
|||
--- |
|||
src/schach.c: |
|||
- TEST |
@ -1,242 +0,0 @@ |
|||
--- |
|||
:project: |
|||
:use_exceptions: false |
|||
:use_mocks: true |
|||
:compile_threads: 1 |
|||
:test_threads: 1 |
|||
:use_test_preprocessor: true |
|||
:use_preprocessor_directives: false |
|||
:use_deep_dependencies: false |
|||
:generate_deep_dependencies: true |
|||
:auto_link_deep_dependencies: false |
|||
:test_file_prefix: test_ |
|||
:options_paths: [] |
|||
:release_build: false |
|||
:use_auxiliary_dependencies: true |
|||
:build_root: build |
|||
:which_ceedling: gem |
|||
:ceedling_version: 0.31.1 |
|||
:default_tasks: |
|||
- test:all |
|||
:release_build: |
|||
:use_assembly: false |
|||
:artifacts: [] |
|||
:paths: |
|||
:test: |
|||
- "+:test/**" |
|||
- "-:test/support" |
|||
:source: |
|||
- src/** |
|||
:support: |
|||
- test/support |
|||
:include: [] |
|||
:libraries: [] |
|||
:test_toolchain_include: [] |
|||
:release_toolchain_include: [] |
|||
:files: |
|||
:test: [] |
|||
:source: [] |
|||
:assembly: [] |
|||
:support: [] |
|||
:include: [] |
|||
:environment: |
|||
- :rake_columns: '120' |
|||
:defines: |
|||
:test: |
|||
- &1 [] |
|||
- TEST |
|||
:test_preprocess: |
|||
- *1 |
|||
- TEST |
|||
:release: [] |
|||
:release_preprocess: [] |
|||
:use_test_definition: false |
|||
:common: [] |
|||
:libraries: |
|||
:flag: "-l${1}" |
|||
:path_flag: "-L ${1}" |
|||
:test: [] |
|||
:test_preprocess: [] |
|||
:release: [] |
|||
:release_preprocess: [] |
|||
:placement: :end |
|||
:system: [] |
|||
:flags: {} |
|||
:extension: |
|||
:header: ".h" |
|||
:source: ".c" |
|||
:assembly: ".s" |
|||
:object: ".o" |
|||
:libraries: |
|||
- ".a" |
|||
- ".so" |
|||
:executable: ".out" |
|||
:map: ".map" |
|||
:list: ".lst" |
|||
:testpass: ".pass" |
|||
:testfail: ".fail" |
|||
:dependencies: ".d" |
|||
:unity: |
|||
:vendor_path: C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/ceedling-0.31.1/vendor |
|||
:defines: [] |
|||
:cmock: |
|||
:vendor_path: C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/ceedling-0.31.1/vendor |
|||
:defines: [] |
|||
:includes: [] |
|||
:mock_prefix: mock_ |
|||
:when_no_prototypes: :warn |
|||
:enforce_strict_ordering: true |
|||
:plugins: |
|||
- :ignore |
|||
- :callback |
|||
:treat_as: |
|||
uint8: HEX8 |
|||
uint16: HEX16 |
|||
uint32: UINT32 |
|||
int8: INT8 |
|||
bool: UINT8 |
|||
:mock_path: build/test/mocks |
|||
:verbosity: 3 |
|||
:unity_helper: false |
|||
:cexception: |
|||
:vendor_path: C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/ceedling-0.31.1/vendor |
|||
:defines: [] |
|||
:test_runner: |
|||
:includes: [] |
|||
:file_suffix: _runner |
|||
:tools: |
|||
:test_compiler: |
|||
:executable: gcc.exe |
|||
:name: default_test_compiler |
|||
:stderr_redirect: :none |
|||
:background_exec: :none |
|||
:optional: false |
|||
:arguments: |
|||
- '' |
|||
- '' |
|||
- -I"$": COLLECTION_PATHS_TEST_SUPPORT_SOURCE_INCLUDE_VENDOR |
|||
- -I"$": COLLECTION_PATHS_TEST_TOOLCHAIN_INCLUDE |
|||
- "-D$": COLLECTION_DEFINES_TEST_AND_VENDOR |
|||
- "-DGNU_COMPILER" |
|||
- "-g" |
|||
- '' |
|||
- -c "${1}" |
|||
- -o "${2}" |
|||
- "-MMD" |
|||
- -MF "${4}" |
|||
:test_fixture: |
|||
:executable: "${1}" |
|||
:name: default_test_fixture |
|||
:stderr_redirect: :auto |
|||
:background_exec: :none |
|||
:optional: false |
|||
:arguments: [] |
|||
:test_linker: |
|||
:executable: gcc.exe |
|||
:name: default_test_linker |
|||
:stderr_redirect: :none |
|||
:background_exec: :none |
|||
:optional: false |
|||
:arguments: |
|||
- '' |
|||
- '' |
|||
- '' |
|||
- '"${1}"' |
|||
- "${5}" |
|||
- -o "${2}" |
|||
- '' |
|||
- "${4}" |
|||
- '' |
|||
:test_file_preprocessor: |
|||
:executable: gcc.exe |
|||
:name: default_test_file_preprocessor |
|||
:stderr_redirect: :none |
|||
:background_exec: :none |
|||
:optional: false |
|||
:arguments: |
|||
- '' |
|||
- '' |
|||
- "-E" |
|||
- -I"$": COLLECTION_PATHS_TEST_SUPPORT_SOURCE_INCLUDE_VENDOR |
|||
- -I"$": COLLECTION_PATHS_TEST_TOOLCHAIN_INCLUDE |
|||
- "-D$": COLLECTION_DEFINES_TEST_AND_VENDOR |
|||
- "-D$": DEFINES_TEST_PREPROCESS |
|||
- "-DGNU_COMPILER" |
|||
- '"${1}"' |
|||
- -o "${2}" |
|||
:test_file_preprocessor_directives: |
|||
:executable: gcc.exe |
|||
:name: default_test_file_preprocessor_directives |
|||
:stderr_redirect: :none |
|||
:background_exec: :none |
|||
:optional: false |
|||
:arguments: |
|||
- "-E" |
|||
- -I"$": COLLECTION_PATHS_TEST_SUPPORT_SOURCE_INCLUDE_VENDOR |
|||
- -I"$": COLLECTION_PATHS_TEST_TOOLCHAIN_INCLUDE |
|||
- "-D$": COLLECTION_DEFINES_TEST_AND_VENDOR |
|||
- "-D$": DEFINES_TEST_PREPROCESS |
|||
- "-DGNU_COMPILER" |
|||
- "-fdirectives-only" |
|||
- '"${1}"' |
|||
- -o "${2}" |
|||
:test_includes_preprocessor: |
|||
:executable: gcc.exe |
|||
:name: default_test_includes_preprocessor |
|||
:stderr_redirect: :none |
|||
:background_exec: :none |
|||
:optional: false |
|||
:arguments: |
|||
- '' |
|||
- '' |
|||
- "-E" |
|||
- "-MM" |
|||
- "-MG" |
|||
- -I"$": COLLECTION_PATHS_TEST_SUPPORT_SOURCE_INCLUDE_VENDOR |
|||
- -I"$": COLLECTION_PATHS_TEST_TOOLCHAIN_INCLUDE |
|||
- "-D$": COLLECTION_DEFINES_TEST_AND_VENDOR |
|||
- "-D$": DEFINES_TEST_PREPROCESS |
|||
- "-DGNU_COMPILER" |
|||
- '"${1}"' |
|||
:test_compiler: |
|||
:arguments: [] |
|||
:test_linker: |
|||
:arguments: [] |
|||
:test_fixture: |
|||
:arguments: [] |
|||
:link_objects: [] |
|||
:test_includes_preprocessor: |
|||
:arguments: [] |
|||
:test_file_preprocessor: |
|||
:arguments: [] |
|||
:test_file_preprocessor_directives: |
|||
:arguments: [] |
|||
:test_dependencies_generator: |
|||
:arguments: [] |
|||
:release_compiler: |
|||
:arguments: [] |
|||
:release_linker: |
|||
:arguments: [] |
|||
:release_assembler: |
|||
:arguments: [] |
|||
:release_dependencies_generator: |
|||
:arguments: [] |
|||
:plugins: |
|||
:load_paths: |
|||
- C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/ceedling-0.31.1/lib/../plugins |
|||
:enabled: |
|||
- stdout_pretty_tests_report |
|||
- module_generator |
|||
:display_raw_test_results: false |
|||
:stdout_pretty_tests_report_path: C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/ceedling-0.31.1/lib/../plugins/stdout_pretty_tests_report |
|||
:module_generator_path: C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/ceedling-0.31.1/lib/../plugins/module_generator |
|||
:gcov: |
|||
:reports: |
|||
- HtmlDetailed |
|||
:gcovr: |
|||
:html_medium_threshold: 75 |
|||
:html_high_threshold: 90 |
|||
:module_generator: |
|||
:project_root: "./" |
|||
:source_root: src/ |
|||
:test_root: test/ |
@ -1,257 +0,0 @@ |
|||
#include "src/schach.h" |
|||
#include "C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/ceedling-0.31.1/vendor/unity/src/unity.h" |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
void setUp(void) |
|||
|
|||
{ |
|||
|
|||
} |
|||
|
|||
|
|||
|
|||
void tearDown(void) |
|||
|
|||
{ |
|||
|
|||
} |
|||
|
|||
|
|||
|
|||
void test_print_Schachfeld(void){ |
|||
|
|||
|
|||
|
|||
char expected = 'S'; |
|||
|
|||
int x = 8; |
|||
|
|||
int y = 8; |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
char** Spielfeld = create_Schachfeld(x, y); |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
UnityAssertEqualNumber((UNITY_INT)(UNITY_INT8 )((expected)), (UNITY_INT)(UNITY_INT8 )((Spielfeld[5][0])), ( |
|||
|
|||
((void *)0) |
|||
|
|||
), (UNITY_UINT)(26), UNITY_DISPLAY_STYLE_CHAR); |
|||
|
|||
UnityAssertEqualNumber((UNITY_INT)(UNITY_INT8 )((expected)), (UNITY_INT)(UNITY_INT8 )((Spielfeld[4][3])), ( |
|||
|
|||
((void *)0) |
|||
|
|||
), (UNITY_UINT)(27), UNITY_DISPLAY_STYLE_CHAR); |
|||
|
|||
} |
|||
|
|||
|
|||
|
|||
void test_print_Schachfeld_Turm_weiss(void){ |
|||
|
|||
|
|||
|
|||
char expected = 'T'; |
|||
|
|||
int x = 8; |
|||
|
|||
int y = 8; |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
char** Spielfeld = create_Schachfeld(x, y); |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
UnityAssertEqualNumber((UNITY_INT)(UNITY_INT8 )((expected)), (UNITY_INT)(UNITY_INT8 )((Spielfeld[0][0])), ( |
|||
|
|||
((void *)0) |
|||
|
|||
), (UNITY_UINT)(40), UNITY_DISPLAY_STYLE_CHAR); |
|||
|
|||
UnityAssertEqualNumber((UNITY_INT)(UNITY_INT8 )((expected)), (UNITY_INT)(UNITY_INT8 )((Spielfeld[0][7])), ( |
|||
|
|||
((void *)0) |
|||
|
|||
), (UNITY_UINT)(41), UNITY_DISPLAY_STYLE_CHAR); |
|||
|
|||
} |
|||
|
|||
|
|||
|
|||
void test_print_Schachfeld_Bauern_weiss(void){ |
|||
|
|||
|
|||
|
|||
char expected = 'B'; |
|||
|
|||
int x = 8; |
|||
|
|||
int y = 8; |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
char** Spielfeld = create_Schachfeld(x, y); |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
for(int l = 0;l<y;l++){ |
|||
|
|||
UnityAssertEqualNumber((UNITY_INT)(UNITY_INT8 )((expected)), (UNITY_INT)(UNITY_INT8 )((Spielfeld[1][l])), ( |
|||
|
|||
((void *)0) |
|||
|
|||
), (UNITY_UINT)(55), UNITY_DISPLAY_STYLE_CHAR); |
|||
|
|||
} |
|||
|
|||
|
|||
|
|||
} |
|||
|
|||
|
|||
|
|||
void test_print_Schachfeld_dame_schwarz(void){ |
|||
|
|||
|
|||
|
|||
char expected = 'd'; |
|||
|
|||
int x = 8; |
|||
|
|||
int y = 8; |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
char** Spielfeld = create_Schachfeld(x, y); |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
UnityAssertEqualNumber((UNITY_INT)(UNITY_INT8 )((expected)), (UNITY_INT)(UNITY_INT8 )((Spielfeld[7][3])), ( |
|||
|
|||
((void *)0) |
|||
|
|||
), (UNITY_UINT)(70), UNITY_DISPLAY_STYLE_CHAR); |
|||
|
|||
|
|||
|
|||
} |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
void test_read_input(void) { |
|||
|
|||
|
|||
|
|||
const char *input = "8\n"; |
|||
|
|||
int result = 0; |
|||
|
|||
int expected = 7; |
|||
|
|||
|
|||
|
|||
FILE *original_stdin = freopen( |
|||
|
|||
((void *)0) |
|||
|
|||
, "r", |
|||
|
|||
(__acrt_iob_func(0)) |
|||
|
|||
); |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
FILE *tempInput = fopen("temp_input.txt", "w"); |
|||
|
|||
fputs(input, tempInput); |
|||
|
|||
fclose(tempInput); |
|||
|
|||
|
|||
|
|||
tempInput = freopen("temp_input.txt", "r", |
|||
|
|||
(__acrt_iob_func(0)) |
|||
|
|||
); |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
result = read_input(); |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
UnityAssertEqualNumber((UNITY_INT)((expected)), (UNITY_INT)((result)), ( |
|||
|
|||
((void *)0) |
|||
|
|||
), (UNITY_UINT)(96), UNITY_DISPLAY_STYLE_INT); |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
fclose(tempInput); |
|||
|
|||
freopen("/dev/tty", "r", |
|||
|
|||
(__acrt_iob_func(0)) |
|||
|
|||
); |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
freopen( |
|||
|
|||
((void *)0) |
|||
|
|||
, "r", |
|||
|
|||
(__acrt_iob_func(0)) |
|||
|
|||
); |
|||
|
|||
} |
@ -1,6 +0,0 @@ |
|||
build/test/out/c/cmock.o: \ |
|||
C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/ceedling-0.31.1/vendor/cmock/src/cmock.c \ |
|||
C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/ceedling-0.31.1/vendor/cmock/src/cmock.h \ |
|||
C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/ceedling-0.31.1/vendor/cmock/src/cmock_internals.h \ |
|||
C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/ceedling-0.31.1/vendor/unity/src/unity.h \ |
|||
C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/ceedling-0.31.1/vendor/unity/src/unity_internals.h |
@ -1 +0,0 @@ |
|||
build/test/out/c/schach.o: src/schach.c src/main.h |
@ -1,4 +0,0 @@ |
|||
build/test/out/c/test_schach.o: test/test_schach.c \ |
|||
C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/ceedling-0.31.1/vendor/unity/src/unity.h \ |
|||
C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/ceedling-0.31.1/vendor/unity/src/unity_internals.h \ |
|||
src/schach.h src/main.h |
@ -1,4 +0,0 @@ |
|||
build/test/out/c/test_schach_runner.o: \ |
|||
build/test/runners/test_schach_runner.c \ |
|||
C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/ceedling-0.31.1/vendor/unity/src/unity.h \ |
|||
C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/ceedling-0.31.1/vendor/unity/src/unity_internals.h |
@ -1,4 +0,0 @@ |
|||
build/test/out/c/unity.o: \ |
|||
C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/ceedling-0.31.1/vendor/unity/src/unity.c \ |
|||
C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/ceedling-0.31.1/vendor/unity/src/unity.h \ |
|||
C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/ceedling-0.31.1/vendor/unity/src/unity_internals.h |
@ -1,257 +0,0 @@ |
|||
#include "src/schach.h" |
|||
#include "C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/ceedling-0.31.1/vendor/unity/src/unity.h" |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
void setUp(void) |
|||
|
|||
{ |
|||
|
|||
} |
|||
|
|||
|
|||
|
|||
void tearDown(void) |
|||
|
|||
{ |
|||
|
|||
} |
|||
|
|||
|
|||
|
|||
void test_print_Schachfeld(void){ |
|||
|
|||
|
|||
|
|||
char expected = 'S'; |
|||
|
|||
int x = 8; |
|||
|
|||
int y = 8; |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
char** Spielfeld = create_Schachfeld(x, y); |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
UnityAssertEqualNumber((UNITY_INT)(UNITY_INT8 )((expected)), (UNITY_INT)(UNITY_INT8 )((Spielfeld[5][0])), ( |
|||
|
|||
((void *)0) |
|||
|
|||
), (UNITY_UINT)(26), UNITY_DISPLAY_STYLE_CHAR); |
|||
|
|||
UnityAssertEqualNumber((UNITY_INT)(UNITY_INT8 )((expected)), (UNITY_INT)(UNITY_INT8 )((Spielfeld[4][3])), ( |
|||
|
|||
((void *)0) |
|||
|
|||
), (UNITY_UINT)(27), UNITY_DISPLAY_STYLE_CHAR); |
|||
|
|||
} |
|||
|
|||
|
|||
|
|||
void test_print_Schachfeld_Turm_weiss(void){ |
|||
|
|||
|
|||
|
|||
char expected = 'T'; |
|||
|
|||
int x = 8; |
|||
|
|||
int y = 8; |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
char** Spielfeld = create_Schachfeld(x, y); |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
UnityAssertEqualNumber((UNITY_INT)(UNITY_INT8 )((expected)), (UNITY_INT)(UNITY_INT8 )((Spielfeld[0][0])), ( |
|||
|
|||
((void *)0) |
|||
|
|||
), (UNITY_UINT)(40), UNITY_DISPLAY_STYLE_CHAR); |
|||
|
|||
UnityAssertEqualNumber((UNITY_INT)(UNITY_INT8 )((expected)), (UNITY_INT)(UNITY_INT8 )((Spielfeld[0][7])), ( |
|||
|
|||
((void *)0) |
|||
|
|||
), (UNITY_UINT)(41), UNITY_DISPLAY_STYLE_CHAR); |
|||
|
|||
} |
|||
|
|||
|
|||
|
|||
void test_print_Schachfeld_Bauern_weiss(void){ |
|||
|
|||
|
|||
|
|||
char expected = 'B'; |
|||
|
|||
int x = 8; |
|||
|
|||
int y = 8; |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
char** Spielfeld = create_Schachfeld(x, y); |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
for(int l = 0;l<y;l++){ |
|||
|
|||
UnityAssertEqualNumber((UNITY_INT)(UNITY_INT8 )((expected)), (UNITY_INT)(UNITY_INT8 )((Spielfeld[1][l])), ( |
|||
|
|||
((void *)0) |
|||
|
|||
), (UNITY_UINT)(55), UNITY_DISPLAY_STYLE_CHAR); |
|||
|
|||
} |
|||
|
|||
|
|||
|
|||
} |
|||
|
|||
|
|||
|
|||
void test_print_Schachfeld_dame_schwarz(void){ |
|||
|
|||
|
|||
|
|||
char expected = 'd'; |
|||
|
|||
int x = 8; |
|||
|
|||
int y = 8; |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
char** Spielfeld = create_Schachfeld(x, y); |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
UnityAssertEqualNumber((UNITY_INT)(UNITY_INT8 )((expected)), (UNITY_INT)(UNITY_INT8 )((Spielfeld[7][3])), ( |
|||
|
|||
((void *)0) |
|||
|
|||
), (UNITY_UINT)(70), UNITY_DISPLAY_STYLE_CHAR); |
|||
|
|||
|
|||
|
|||
} |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
void test_read_input(void) { |
|||
|
|||
|
|||
|
|||
const char *input = "8\n"; |
|||
|
|||
int result = 0; |
|||
|
|||
int expected = 7; |
|||
|
|||
|
|||
|
|||
FILE *original_stdin = freopen( |
|||
|
|||
((void *)0) |
|||
|
|||
, "r", |
|||
|
|||
(__acrt_iob_func(0)) |
|||
|
|||
); |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
FILE *tempInput = fopen("temp_input.txt", "w"); |
|||
|
|||
fputs(input, tempInput); |
|||
|
|||
fclose(tempInput); |
|||
|
|||
|
|||
|
|||
tempInput = freopen("temp_input.txt", "r", |
|||
|
|||
(__acrt_iob_func(0)) |
|||
|
|||
); |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
result = read_input(); |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
UnityAssertEqualNumber((UNITY_INT)((expected)), (UNITY_INT)((result)), ( |
|||
|
|||
((void *)0) |
|||
|
|||
), (UNITY_UINT)(96), UNITY_DISPLAY_STYLE_INT); |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
fclose(tempInput); |
|||
|
|||
freopen("/dev/tty", "r", |
|||
|
|||
(__acrt_iob_func(0)) |
|||
|
|||
); |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
freopen( |
|||
|
|||
((void *)0) |
|||
|
|||
, "r", |
|||
|
|||
(__acrt_iob_func(0)) |
|||
|
|||
); |
|||
|
|||
} |
@ -1,3 +0,0 @@ |
|||
--- |
|||
- C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/ceedling-0.31.1/vendor/unity/src/unity.h |
|||
- src/schach.h |
@ -1,34 +0,0 @@ |
|||
--- |
|||
:source: |
|||
:path: test |
|||
:file: test_schach.c |
|||
:successes: |
|||
- :test: test_print_Schachfeld |
|||
:line: 16 |
|||
:message: '' |
|||
:unity_test_time: 0 |
|||
- :test: test_print_Schachfeld_Turm_weiss |
|||
:line: 30 |
|||
:message: '' |
|||
:unity_test_time: 0 |
|||
- :test: test_print_Schachfeld_Bauern_weiss |
|||
:line: 44 |
|||
:message: '' |
|||
:unity_test_time: 0 |
|||
- :test: test_print_Schachfeld_dame_schwarz |
|||
:line: 60 |
|||
:message: '' |
|||
:unity_test_time: 0 |
|||
- :test: test_read_input |
|||
:line: 77 |
|||
:message: '' |
|||
:unity_test_time: 0 |
|||
:failures: [] |
|||
:ignores: [] |
|||
:counts: |
|||
:total: 5 |
|||
:passed: 5 |
|||
:failed: 0 |
|||
:ignored: 0 |
|||
:stdout: [] |
|||
:time: 1.9014686000300571 |
@ -1,89 +0,0 @@ |
|||
/* AUTOGENERATED FILE. DO NOT EDIT. */ |
|||
|
|||
/*=======Automagically Detected Files To Include=====*/ |
|||
#include "unity.h" |
|||
|
|||
int GlobalExpectCount; |
|||
int GlobalVerifyOrder; |
|||
char* GlobalOrderError; |
|||
|
|||
/*=======External Functions This Runner Calls=====*/ |
|||
extern void setUp(void); |
|||
extern void tearDown(void); |
|||
extern void test_print_Schachfeld(void); |
|||
extern void test_print_Schachfeld_Turm_weiss(void); |
|||
extern void test_print_Schachfeld_Bauern_weiss(void); |
|||
extern void test_print_Schachfeld_dame_schwarz(void); |
|||
extern void test_read_input(void); |
|||
|
|||
|
|||
/*=======Mock Management=====*/ |
|||
static void CMock_Init(void) |
|||
{ |
|||
GlobalExpectCount = 0; |
|||
GlobalVerifyOrder = 0; |
|||
GlobalOrderError = NULL; |
|||
} |
|||
static void CMock_Verify(void) |
|||
{ |
|||
} |
|||
static void CMock_Destroy(void) |
|||
{ |
|||
} |
|||
|
|||
/*=======Test Reset Options=====*/ |
|||
void resetTest(void); |
|||
void resetTest(void) |
|||
{ |
|||
tearDown(); |
|||
CMock_Verify(); |
|||
CMock_Destroy(); |
|||
CMock_Init(); |
|||
setUp(); |
|||
} |
|||
void verifyTest(void); |
|||
void verifyTest(void) |
|||
{ |
|||
CMock_Verify(); |
|||
} |
|||
|
|||
/*=======Test Runner Used To Run Each Test=====*/ |
|||
static void run_test(UnityTestFunction func, const char* name, UNITY_LINE_TYPE line_num) |
|||
{ |
|||
Unity.CurrentTestName = name; |
|||
Unity.CurrentTestLineNumber = line_num; |
|||
#ifdef UNITY_USE_COMMAND_LINE_ARGS |
|||
if (!UnityTestMatches()) |
|||
return; |
|||
#endif |
|||
Unity.NumberOfTests++; |
|||
UNITY_CLR_DETAILS(); |
|||
UNITY_EXEC_TIME_START(); |
|||
CMock_Init(); |
|||
if (TEST_PROTECT()) |
|||
{ |
|||
setUp(); |
|||
func(); |
|||
} |
|||
if (TEST_PROTECT()) |
|||
{ |
|||
tearDown(); |
|||
CMock_Verify(); |
|||
} |
|||
CMock_Destroy(); |
|||
UNITY_EXEC_TIME_STOP(); |
|||
UnityConcludeTest(); |
|||
} |
|||
|
|||
/*=======MAIN=====*/ |
|||
int main(void) |
|||
{ |
|||
UnityBegin("test_schach.c"); |
|||
run_test(test_print_Schachfeld, "test_print_Schachfeld", 16); |
|||
run_test(test_print_Schachfeld_Turm_weiss, "test_print_Schachfeld_Turm_weiss", 30); |
|||
run_test(test_print_Schachfeld_Bauern_weiss, "test_print_Schachfeld_Bauern_weiss", 44); |
|||
run_test(test_print_Schachfeld_dame_schwarz, "test_print_Schachfeld_dame_schwarz", 60); |
|||
run_test(test_read_input, "test_read_input", 77); |
|||
|
|||
return UnityEnd(); |
|||
} |
@ -0,0 +1,32 @@ |
|||
#include <stdio.h> |
|||
#include <stdlib.h> |
|||
#include <string.h> |
|||
|
|||
char* getUserInput() { |
|||
|
|||
const int BUFFER_SIZE = 64; |
|||
char *input = (char*)malloc(BUFFER_SIZE * sizeof(char)); |
|||
if (input == NULL) { |
|||
// Fehler bei speicherzuweisung |
|||
return NULL; |
|||
} |
|||
|
|||
printf("-> "); |
|||
if (fgets(input, BUFFER_SIZE, stdin) == NULL) { |
|||
// Fehler bei fgets |
|||
free(input); |
|||
return NULL; |
|||
} |
|||
|
|||
size_t len = strlen(input); |
|||
if (len > 0 && input[len - 1] == '\n') { |
|||
input[len - 1] = '\0'; |
|||
} |
|||
|
|||
// Länge an den eigentlichen input anpassen um speicher zu sparen |
|||
char *resizedInput = realloc(input, strlen(input) + 1); |
|||
if (resizedInput != NULL) { |
|||
input = resizedInput; |
|||
} |
|||
return input; |
|||
} |
@ -0,0 +1,6 @@ |
|||
#ifndef INPUT |
|||
#define INPUT |
|||
|
|||
char* getUserInput(); |
|||
|
|||
#endif // INPUT |
@ -0,0 +1,17 @@ |
|||
#include <stdio.h> |
|||
#include <stdlib.h> |
|||
#include <stdbool.h> |
|||
#include "spieler.h" |
|||
|
|||
bool istzugerlaubt(char** Brett, int startX, int startY, int endX, int endY, Player player) { |
|||
/* Regeln hierhin |
|||
z.B. schauen ob der zug auch innerhalb vom spielbrett ist, |
|||
schauen ob auf dem zielfeld keine eigene Figur steht, |
|||
schauen ob von der startposition aus der zug auch für die ausgewählte figur möglich ist. |
|||
|
|||
return true wenn möglich oder false falls nicht. |
|||
*/ |
|||
} |
|||
void machezug(char** Brett, int startX, int startY, int endX, int endY) { |
|||
//wenn istzugerlaubt true ist wird das hier ausgeführt |
|||
} |
@ -0,0 +1,10 @@ |
|||
#ifndef MOVING_H |
|||
#define MOVING_H |
|||
|
|||
#include <stdbool.h> |
|||
#include "spieler.h" |
|||
|
|||
bool istzugerlaubt(char** Brett, int startX, int startY, int endX, int endY, Player player); |
|||
void machezug(char** Brett, int startX, int startY, int endX, int endY); |
|||
|
|||
#endif // MOVING_H |
@ -0,0 +1,68 @@ |
|||
#include <stdio.h> |
|||
#include <stdlib.h> |
|||
|
|||
char** Schachbrett_erstellen() { |
|||
|
|||
int R = 8; //Reihen |
|||
int Z = 8; //zeilen |
|||
|
|||
//Dynamisch Platz zuweisen für schachbrett |
|||
char** Brett = (char**)malloc(R * sizeof(char*)); |
|||
|
|||
if (Brett == NULL) { |
|||
// Fehler bei speicherzuweißung |
|||
return NULL; |
|||
} |
|||
for (int i = 0; i < R; i++) { |
|||
Brett[i] = (char*)malloc(Z * sizeof(char)); |
|||
if (Brett[i] == NULL) { |
|||
// Speicherfehlerbehbung |
|||
for (int j = 0; j < i; j++) { |
|||
free(Brett[j]); |
|||
} |
|||
free(Brett); |
|||
return NULL; |
|||
} |
|||
} |
|||
|
|||
// Spielbrett befüllen, groß und kleinschreibung unterschiedlich um schwarz/weiß zu trennen |
|||
char Aufbau[8][8] = { |
|||
{ 'R' , 'N' , 'B' , 'Q' , 'K' , 'B' , 'N' , 'R' }, |
|||
{ 'P' , 'P' , 'P' , 'P' , 'P' , 'P' , 'P' , 'P' }, |
|||
{ ' ' , ' ' , ' ' , ' ' , ' ' , ' ' , ' ' , ' ' }, |
|||
{ ' ' , ' ' , ' ' , ' ' , ' ' , ' ' , ' ' , ' ' }, |
|||
{ ' ' , ' ' , ' ' , ' ' , ' ' , ' ' , ' ' , ' ' }, |
|||
{ ' ' , ' ' , ' ' , ' ' , ' ' , ' ' , ' ' , ' ' }, |
|||
{ 'p' , 'p' , 'p' , 'p' , 'p' , 'p' , 'p' , 'p' }, |
|||
{ 'r' , 'n' , 'b' , 'q' , 'k' , 'b' , 'n' , 'r' } |
|||
}; |
|||
|
|||
for (int i = 0; i < 8; i++) { |
|||
for (int j = 0; j < 8; j++) { |
|||
Brett[i][j] = Aufbau[i][j]; |
|||
} |
|||
} |
|||
|
|||
return Brett; |
|||
} |
|||
|
|||
void print_Schachfeld(char** Brett, int Reihen, int Spalten) { |
|||
for (int i = 0; i < Reihen; i++) { |
|||
for (int j = 0; j < Spalten; j++) { |
|||
printf(" %c ", Brett[i][j]); |
|||
} |
|||
printf("\n"); |
|||
} |
|||
} |
|||
|
|||
void Schachbrettspeicher_freigeben(char** Brett, int Reihen) { |
|||
if (Brett == NULL) { |
|||
return; |
|||
} |
|||
|
|||
for (int i = 0; i < Reihen; i++) { |
|||
free(Brett[i]); |
|||
} |
|||
|
|||
free(Brett); |
|||
} |
@ -0,0 +1,8 @@ |
|||
#ifndef SCHACHBRETT_H |
|||
#define SCHACHBRETT_H |
|||
|
|||
char** Schachbrett_erstellen(); |
|||
void print_Schachfeld(char** Brett, int Reihen, int Spalten) |
|||
void Schachbrettspeicher_freigeben(char** Brett, int Reihen); |
|||
|
|||
#endif // SCHACHBRETT_H |
@ -0,0 +1,9 @@ |
|||
#ifndef Spieler |
|||
#define Spieler |
|||
|
|||
typedef enum { |
|||
PLAYER_WHITE, |
|||
PLAYER_BLACK |
|||
} Player; |
|||
|
|||
#endif // Spieler |
@ -1,9 +0,0 @@ |
|||
#ifndef MAIN |
|||
#define MAIN |
|||
|
|||
|
|||
int main(); |
|||
|
|||
|
|||
|
|||
#endif |
@ -1,195 +0,0 @@ |
|||
#include <stdlib.h> |
|||
#include <stdio.h> |
|||
|
|||
#include "main.h" |
|||
|
|||
/* |
|||
Spielablauf: |
|||
1. Ausgabe vom Spielfeld |
|||
2. Weiß nach Figur für Zug fragen |
|||
3. Weiß nach Ziel der Figur fragen |
|||
4. Überprüfen ob Eingabe möglich ist |
|||
4.1. falls nicht Schritt 2,3 und 4 Wiederholen |
|||
4.2. Schach überprüfen bzw Schachmatt |
|||
5. Figur bewegen |
|||
5.1. falls gegnerische Figur -> Schlagen |
|||
6. Wiederholung von 1-5 für Schwarz |
|||
|
|||
|
|||
Eingaben sind Koordinaten |
|||
|
|||
Programmablauf: |
|||
1.Spielfeld in der create_Schachfeld erstellen |
|||
1.1 Schachfeld füllen |
|||
2.Spielfeld anzeigen mit print_Schachfeld |
|||
3.Eingabe mit choose_Figur |
|||
3.1 erst x dann y |
|||
4.Eingabe mit choose_destination_Figur |
|||
4.1 erst x dann y |
|||
5.Überprüfung der Figur mit check_Figur |
|||
5.1.bsp.: Eingabe choose_Figur x=0 y=0 temp. char welcher die eingabe des Spielfeldarray |
|||
an der Stelle 0 0 speichert |
|||
5.2. if abfrage welche Figur da steht |
|||
5.2.1. wechsel in die seperaten Figuren-Funktionen(Datein) |
|||
5.3. Prüfen ob schwarz oder weiß durch groß und kleinschreibung |
|||
6.In den seperaten Figuren-Funktionen wird überprüft ob der Zug möglich ist |
|||
6.1 wenn möglich wird die Figur an die stelle gesetzt |
|||
6.2 wenn es nicht möglich ist dann wird Schritt 2-6 wiederholt |
|||
7.(Schachmatt wird in check_checkmate überprüft) |
|||
8.Schritt 2-8 wird Wiederholt |
|||
|
|||
*/ |
|||
int checkmate(){ |
|||
return 0; |
|||
} |
|||
|
|||
|
|||
|
|||
int read_input(){ |
|||
|
|||
int koordinate = 0; |
|||
|
|||
scanf("%d", &koordinate); |
|||
|
|||
if(koordinate < 9){ |
|||
return koordinate - 1; |
|||
} |
|||
else{ |
|||
|
|||
read_input(); |
|||
|
|||
} |
|||
|
|||
} |
|||
|
|||
void choose_Figur(char active_Player, char** spielfeld){ |
|||
|
|||
int x,y; |
|||
|
|||
printf("Spieler %c ist an der Reihe!\nX-Koordinaten der Figur die bewegt werden soll eingeben:\n", active_Player); |
|||
|
|||
|
|||
x = read_input(); |
|||
|
|||
printf("X-Koordinaten der Figur der bewegt werden soll eingeben:\n"); |
|||
|
|||
y = read_input(); |
|||
|
|||
char ausgewählte_Figur = spielfeld[x][y]; |
|||
|
|||
if (active_Player == 'w'){ |
|||
switch(ausgewählte_Figur){ |
|||
case 'D' : |
|||
//dame.c; |
|||
break; |
|||
case 'K' : |
|||
//könig.c; |
|||
break; |
|||
case 'L' : |
|||
//läufer.c; |
|||
break; |
|||
case 'T' : |
|||
//turm.c; |
|||
break; |
|||
case 'P' : |
|||
//pferd.c; |
|||
break; |
|||
case 'B' : |
|||
//bauer.c; |
|||
break; |
|||
default : |
|||
printf("Wrong Input"); |
|||
choose_Figur(active_Player,spielfeld); |
|||
break; |
|||
} |
|||
|
|||
}else{ |
|||
switch(ausgewählte_Figur){ |
|||
case 'd' : |
|||
//dame.c; |
|||
break; |
|||
case 'k' : |
|||
//könig.c; |
|||
break; |
|||
case 'l' : |
|||
//läufer.c; |
|||
break; |
|||
case 't' : |
|||
//turm.c; |
|||
break; |
|||
case 'p' : |
|||
//pferd.c; |
|||
break; |
|||
case 'b' : |
|||
//bauer.c; |
|||
break; |
|||
default : |
|||
printf("Wrong Input"); |
|||
choose_Figur(active_Player,spielfeld); |
|||
break; |
|||
|
|||
} |
|||
} |
|||
} |
|||
|
|||
void print_Schachfeld(char** Spielfeld, int x, int y) { |
|||
for (int i = 0; i < x; i++) { |
|||
for (int j = 0; j < y; j++) { |
|||
printf(" %c ", Spielfeld[i][j]); |
|||
} |
|||
printf ("\n"); |
|||
} |
|||
} |
|||
|
|||
char** create_Schachfeld(int x, int y) { |
|||
char** Spielfeld = (char**)malloc(x * sizeof(char*)); |
|||
|
|||
for (int i = 0; i < x; i++) { |
|||
Spielfeld[i] = (char*)malloc(y * sizeof(char)); |
|||
|
|||
for (int j = 0; j < y; j++) { |
|||
if ((i + j) % 2 == 0) { |
|||
Spielfeld[i][j] = 'W'; |
|||
} else { |
|||
Spielfeld[i][j] = 'S'; |
|||
} |
|||
} |
|||
} |
|||
|
|||
Spielfeld[0][0] = 'T'; //Turm Weiß |
|||
Spielfeld[0][1] = 'P'; //Pferd Weiß |
|||
Spielfeld[0][2] = 'L'; //Laufer Weiß |
|||
Spielfeld[0][3] = 'D'; //Dame Weiß |
|||
Spielfeld[0][4] = 'K'; //König Weiß |
|||
Spielfeld[0][5] = 'L'; |
|||
Spielfeld[0][6] = 'P'; |
|||
Spielfeld[0][7] = 'T'; |
|||
|
|||
for(int l = 0;l<8;l++){ // Bauern Weiß |
|||
Spielfeld[1][l] = 'B'; |
|||
} |
|||
|
|||
Spielfeld[7][0] = 't'; //Turm Schwarz |
|||
Spielfeld[7][1] = 'p'; |
|||
Spielfeld[7][2] = 'l'; |
|||
Spielfeld[7][3] = 'd'; |
|||
Spielfeld[7][4] = 'k'; |
|||
Spielfeld[7][5] = 'l'; |
|||
Spielfeld[7][6] = 'p'; |
|||
Spielfeld[7][7] = 't'; |
|||
|
|||
for(int l = 0;l<8;l++){ //Bauern Schwarz |
|||
Spielfeld[6][l] = 'b'; |
|||
} |
|||
|
|||
return Spielfeld; |
|||
} |
|||
|
|||
void free_Schachfeld(char** Spielfeld, int x) { |
|||
for (int i = 0; i < x; i++) { |
|||
free(Spielfeld[i]); |
|||
} |
|||
free(Spielfeld); |
|||
} |
|||
|
|||
|
@ -1,15 +0,0 @@ |
|||
#ifndef SCHACH |
|||
#define SCHACH |
|||
|
|||
#include "main.h" |
|||
|
|||
void print_Schachfeld(char** , int , int ); |
|||
char** create_Schachfeld(int , int ); |
|||
void free_Schachfeld(char** , int ); |
|||
int checkmate(); |
|||
int read_input(); |
|||
void choose_Figur(char, char**); |
|||
|
|||
|
|||
|
|||
#endif |
@ -1,3 +1,3 @@ |
|||
- Luis Hahn, fdai7834 |
|||
- Hendrik Voß, fdai 7723 |
|||
- Anton Lohrey, fdai7492 |
|||
- Anton Lohrey, fdai7492 |
@ -1 +0,0 @@ |
|||
8 |
@ -0,0 +1,45 @@ |
|||
#ifdef TEST |
|||
#include <stdlib.h> |
|||
#include "unity.h" |
|||
#include "Input.h" |
|||
|
|||
|
|||
void setUp(void) { |
|||
} |
|||
|
|||
void tearDown(void) { |
|||
} |
|||
|
|||
void test_getUserInput(void) { |
|||
/*Bei dem benutzen dieser Funktion muss man mit free() den speicher wieder freigeben um memory leaks zu vermeiden |
|||
Beispiel : |
|||
|
|||
char* input = getUserInput(); |
|||
if (input != NULL) { |
|||
|
|||
input wird hier benutzt |
|||
|
|||
|
|||
free(input); damit wird der speicher wieder freigegeben wird |
|||
|
|||
*/ |
|||
const char *test_input = "a1"; |
|||
FILE *tempInputFile; |
|||
// Datei erstellen |
|||
tempInputFile = fopen("temp_input.txt", "w"); |
|||
fprintf(tempInputFile, "%s\n", test_input); |
|||
fclose(tempInputFile); |
|||
|
|||
// aus der Datei lesen um User input zu simulieren |
|||
tempInputFile = freopen("temp_input.txt", "r", stdin); |
|||
|
|||
|
|||
char *actual_input = getUserInput(); |
|||
TEST_ASSERT_EQUAL_STRING(test_input, actual_input); |
|||
|
|||
//Clean-up |
|||
free(actual_input); // siehe kommentar in input.c |
|||
fclose(tempInputFile); |
|||
remove("temp_input.txt"); // Datei automatisch löschen |
|||
} |
|||
#endif // TEST |
@ -0,0 +1,26 @@ |
|||
#ifdef TEST |
|||
#include "unity.h" |
|||
#include "Schachbrett.h" |
|||
|
|||
void setUp(void) { |
|||
} |
|||
|
|||
void tearDown(void) { |
|||
} |
|||
|
|||
void test_Schachbrett_erstellen(void) { |
|||
char** brett = Schachbrett_erstellen(); |
|||
|
|||
TEST_ASSERT_NOT_NULL(brett); |
|||
|
|||
// Testen von ein Paar Positionen |
|||
TEST_ASSERT_EQUAL('R', brett[0][0]); |
|||
TEST_ASSERT_EQUAL('p', brett[6][0]); |
|||
TEST_ASSERT_EQUAL(' ', brett[4][4]); |
|||
|
|||
for (int i = 0; i < 8; i++) { |
|||
free(brett[i]); |
|||
} |
|||
free(brett); |
|||
} |
|||
#endif // TEST |
@ -1,107 +0,0 @@ |
|||
#ifdef TEST |
|||
|
|||
#include "unity.h" |
|||
|
|||
#include "schach.h" |
|||
|
|||
#include "string.h" |
|||
void setUp(void) |
|||
{ |
|||
} |
|||
|
|||
void tearDown(void) |
|||
{ |
|||
} |
|||
|
|||
void test_print_Schachfeld(void){ |
|||
/* arrange */ |
|||
char expected = 'S'; |
|||
int x = 8; |
|||
int y = 8; |
|||
|
|||
/* act */ |
|||
char** Spielfeld = create_Schachfeld(x, y); |
|||
|
|||
/* assert */ |
|||
TEST_ASSERT_EQUAL_CHAR(expected,Spielfeld[5][0]); |
|||
TEST_ASSERT_EQUAL_CHAR(expected,Spielfeld[4][3]); |
|||
} |
|||
|
|||
void test_print_Schachfeld_Turm_weiss(void){ |
|||
/* arrange */ |
|||
char expected = 'T'; |
|||
int x = 8; |
|||
int y = 8; |
|||
|
|||
/* act */ |
|||
char** Spielfeld = create_Schachfeld(x, y); |
|||
|
|||
/* assert */ |
|||
TEST_ASSERT_EQUAL_CHAR(expected,Spielfeld[0][0]); |
|||
TEST_ASSERT_EQUAL_CHAR(expected,Spielfeld[0][7]); |
|||
} |
|||
|
|||
void test_print_Schachfeld_Bauern_weiss(void){ |
|||
/* arrange */ |
|||
char expected = 'B'; |
|||
int x = 8; |
|||
int y = 8; |
|||
|
|||
/* act */ |
|||
char** Spielfeld = create_Schachfeld(x, y); |
|||
|
|||
/* assert */ |
|||
for(int l = 0;l<y;l++){ |
|||
TEST_ASSERT_EQUAL_CHAR(expected,Spielfeld[1][l]); |
|||
} |
|||
|
|||
} |
|||
|
|||
void test_print_Schachfeld_dame_schwarz(void){ |
|||
/* arrange */ |
|||
char expected = 'd'; |
|||
int x = 8; |
|||
int y = 8; |
|||
|
|||
/* act */ |
|||
char** Spielfeld = create_Schachfeld(x, y); |
|||
|
|||
/* assert */ |
|||
TEST_ASSERT_EQUAL_CHAR(expected,Spielfeld[7][3]); |
|||
//TEST_ASSERT_EQUAL_CHAR(expected,Spielfeld[0][7]); |
|||
} |
|||
|
|||
|
|||
|
|||
|
|||
void test_read_input(void) { |
|||
/* arrange */ |
|||
const char *input = "8\n"; |
|||
int result = 0; |
|||
int expected = 7; |
|||
|
|||
FILE *original_stdin = freopen(NULL, "r", stdin); |
|||
|
|||
|
|||
FILE *tempInput = fopen("temp_input.txt", "w"); |
|||
fputs(input, tempInput); |
|||
fclose(tempInput); |
|||
|
|||
tempInput = freopen("temp_input.txt", "r", stdin); |
|||
|
|||
/* act */ |
|||
result = read_input(); |
|||
|
|||
/* assert */ |
|||
TEST_ASSERT_EQUAL_INT(expected, result); |
|||
|
|||
/* Clean up */ |
|||
fclose(tempInput); |
|||
freopen("/dev/tty", "r", stdin); |
|||
|
|||
|
|||
freopen(NULL, "r", stdin); |
|||
} |
|||
|
|||
#endif // TEST |
|||
|
Write
Preview
Loading…
Cancel
Save
Reference in new issue