Browse Source
Merge pull request #10 from Mac10goesBRRRT/raetselronja
Merge pull request #10 from Mac10goesBRRRT/raetselronja
Raetselronjaremotes/origin/orga
RonjaAwe
2 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 532 additions and 0 deletions
-
183src/c/raetselronja.c
-
10src/c/raetselronja.h
-
8src/c/randomnumber.c
-
6src/c/randomnumber.h
-
8src/c/userinput.c
-
6src/c/userinput.h
-
311test/c/test_raetselronja.c
@ -0,0 +1,183 @@ |
|||
#include <stdio.h> |
|||
#include <stdlib.h> |
|||
#include <string.h> |
|||
#include <time.h> |
|||
#include <stdbool.h> |
|||
|
|||
#include "raetselronja.h" |
|||
#include "userinput.h" |
|||
#include "randomnumber.h" |
|||
|
|||
|
|||
|
|||
int zahlenraetsel(int input[], int loesung, int n) { |
|||
|
|||
int eingabe = 0; |
|||
|
|||
for(int i = 0; i < n; i++){ |
|||
printf("%d", input[i]); |
|||
if (i < n -1){ |
|||
printf(","); |
|||
} |
|||
printf(" "); |
|||
} |
|||
printf("\n"); |
|||
|
|||
printf("Please enter a solution.\n"); |
|||
eingabe = userInput(); //hier stand mal scanf,jetzt kommt das in eine Funktion zum testen |
|||
if (eingabe == loesung){ |
|||
printf("The answer is right.\n"); |
|||
return 1; |
|||
} |
|||
else{ |
|||
printf("The answer is wrong.\n"); |
|||
return 0; |
|||
} |
|||
|
|||
} |
|||
|
|||
int aufrufzahlenraetsel() { |
|||
|
|||
int loesung = 0; |
|||
int n = 0; |
|||
|
|||
int auswahl = userInput(); |
|||
|
|||
switch (auswahl) { |
|||
case 1: |
|||
int input1[] = {25, 50, 54, 49, 98, 102, 97, 194}; |
|||
n = 8; |
|||
loesung = 198; |
|||
zahlenraetsel(input1, loesung, n); |
|||
break; |
|||
case 2: |
|||
int input2[] = {17, 19, 23, 29, 37}; |
|||
n = 5; |
|||
loesung = 47; |
|||
zahlenraetsel(input2, loesung, n); |
|||
break; |
|||
case 3: |
|||
int input3[] = {256, 289, 324, 361}; |
|||
n = 4; |
|||
loesung = 400; |
|||
zahlenraetsel(input3, loesung, n); |
|||
break; |
|||
default: return -1; |
|||
} |
|||
|
|||
return auswahl; |
|||
} |
|||
|
|||
|
|||
int armdruecken(int gegner, int spieler){ |
|||
|
|||
int differenz = 0; |
|||
|
|||
if (gegner > spieler){ |
|||
differenz = gegner - spieler; |
|||
printf("The opponent is around %d stronger.\n", differenz); |
|||
printf("Defeat."); |
|||
return 0; |
|||
} |
|||
if (gegner < spieler){ |
|||
differenz = spieler - gegner; |
|||
printf("The opponent is around %d weaker.\n", differenz); |
|||
printf("Victory."); |
|||
return 1; |
|||
} |
|||
|
|||
} |
|||
|
|||
int blackjack(int spieler, int gegner, int janein){ |
|||
|
|||
int lower = 1, upper = 11, count = 1, num = 0, ergebnis = 0; |
|||
bool wiederholen = false; |
|||
|
|||
srand(time(NULL)); |
|||
|
|||
if (wiederholen = false){ |
|||
printf("Do you want to start the game?\nYES(1), NO(2)\n"); |
|||
} |
|||
janein = userInput(); |
|||
|
|||
|
|||
while (spieler < 21 && gegner < 21) { |
|||
|
|||
if (janein == 1) { |
|||
for (int i = 1; i <= count; i++) { |
|||
int num = (randnum() % (upper - lower + 1)) + lower; |
|||
printf("You got a: %d.\n", num); |
|||
spieler += num; |
|||
printf("Now you have: %d\n", spieler); |
|||
} |
|||
for (int i = 1; i <= count; i++) { |
|||
int num = (randnum() % (upper - lower + 1)) + lower; |
|||
printf("The opponent got a: %d.\n", num); |
|||
gegner += num; |
|||
printf("Now the opponent has: %d\n", gegner); |
|||
} |
|||
printf("Do you want another card?\nYES(1), NO(2)\n"); |
|||
janein = userInput(); |
|||
} |
|||
else { |
|||
if (spieler <= 0) { |
|||
printf("Goodbye\n"); |
|||
ergebnis = 0; |
|||
return ergebnis; |
|||
break; |
|||
} |
|||
else if (spieler > gegner) { |
|||
printf("Player wins.\n"); |
|||
ergebnis = 1; |
|||
return ergebnis; |
|||
break; |
|||
} |
|||
else if (spieler < gegner) { |
|||
printf("Opponent wins\n."); |
|||
ergebnis = 2; |
|||
return ergebnis; |
|||
break; |
|||
} |
|||
} |
|||
} |
|||
if (janein == 1 && (spieler >= 21 || gegner >= 21)) { |
|||
|
|||
if ((gegner > 21 || gegner < 21) && spieler == 21) { |
|||
printf("Player wins.\n"); |
|||
ergebnis = 1; |
|||
return ergebnis; |
|||
} |
|||
else if (gegner == 21 && (spieler > 21 || spieler < 21)) { |
|||
printf("Opponent wins.\n"); |
|||
ergebnis = 2; |
|||
return ergebnis; |
|||
} |
|||
else if (gegner > 21 && spieler > 21) { |
|||
printf("No one wins.\n"); |
|||
ergebnis = 0; |
|||
return ergebnis; |
|||
|
|||
} |
|||
else if (gegner == spieler && gegner == 21) { |
|||
printf("Tie.\n"); |
|||
ergebnis = 0; |
|||
return ergebnis; |
|||
} |
|||
if (gegner > 21 && spieler < 21) { |
|||
printf("Player wins.\n"); |
|||
ergebnis = 1; |
|||
return ergebnis; |
|||
} |
|||
if (gegner < 21 && spieler > 21) { |
|||
printf("Opponent wins.\n"); |
|||
ergebnis = 2; |
|||
return ergebnis; |
|||
} |
|||
} |
|||
if (ergebnis = 0){ |
|||
wiederholen = true; |
|||
return blackjack(spieler, gegner, janein); |
|||
} |
|||
|
|||
} |
|||
|
@ -0,0 +1,10 @@ |
|||
#ifndef RAETSELRONJA_H |
|||
#define RAETSELRONJA_H |
|||
|
|||
int zahlenraetsel(int input[], int loesung, int n); |
|||
int aufrufzahlenraetsel(); |
|||
int armdruecken(int gegner, int spieler); |
|||
int blackjack(int spieler, int gegner, int janein); |
|||
|
|||
|
|||
#endif |
@ -0,0 +1,8 @@ |
|||
#include "randomnumber.h" |
|||
|
|||
int randnum(){ |
|||
|
|||
int value; |
|||
return value; |
|||
|
|||
} |
@ -0,0 +1,6 @@ |
|||
#ifndef RANDOMNUMBER_H |
|||
#define RANDOMNUMBER_H |
|||
|
|||
int randnum(); |
|||
|
|||
#endif |
@ -0,0 +1,8 @@ |
|||
#include "userinput.h" |
|||
|
|||
|
|||
int userInput(){ |
|||
//TODO: user input einlesen |
|||
int value; |
|||
return value; |
|||
} |
@ -0,0 +1,6 @@ |
|||
#ifndef USERINPUT_H |
|||
#define USERINPUT_H |
|||
|
|||
int userInput(); |
|||
|
|||
#endif |
@ -0,0 +1,311 @@ |
|||
#ifdef TEST |
|||
#include "unity.h" |
|||
//in example.h wird die Funktion deklariert |
|||
#include "raetselronja.h" |
|||
#include "userinput.h" |
|||
#include "mock_userinput.h" |
|||
#include "randomnumber.h" |
|||
#include "mock_randomnumber.h" |
|||
|
|||
//Vor- bzw. Nachbereitung |
|||
void setUp(void) |
|||
{ |
|||
} |
|||
|
|||
void tearDown(void) |
|||
{ |
|||
} |
|||
|
|||
//Hier läuft der Test |
|||
void test_runRaetselTest(void){ |
|||
/* arrange */ |
|||
//Hier die Werte eingeben |
|||
int result; |
|||
int input[] = {0,1,2,3}; |
|||
int loesung = 4; |
|||
int n = 4; |
|||
|
|||
/* act */ |
|||
//Die Funktion wird ausgeführt |
|||
userInput_ExpectAndReturn(4); |
|||
result = zahlenraetsel(input, loesung, n); |
|||
|
|||
/* assert */ |
|||
//Vergleichen |
|||
TEST_ASSERT_EQUAL_INT(1, result); |
|||
} |
|||
|
|||
void test_runRaetselTestFalsch(void){ |
|||
|
|||
int result; |
|||
int input[] = {0,1,2,3}; |
|||
int loesung = 4; |
|||
int n = 4; |
|||
|
|||
userInput_ExpectAndReturn(5); |
|||
result = zahlenraetsel(input, loesung, n); |
|||
|
|||
TEST_ASSERT_EQUAL_INT(0, result); |
|||
|
|||
} |
|||
|
|||
void test_runRaetselTestrichtig(void){ |
|||
|
|||
int input[] = {1,2}; |
|||
int loesung = 198; |
|||
int n = 2; |
|||
|
|||
userInput_ExpectAndReturn(198); |
|||
int result = zahlenraetsel(input, loesung, n); |
|||
|
|||
TEST_ASSERT_EQUAL_INT(1, result); |
|||
|
|||
} |
|||
|
|||
|
|||
void test_runRaetselTestAufruf(void){ |
|||
|
|||
userInput_ExpectAndReturn(1); |
|||
userInput_ExpectAndReturn(1); |
|||
|
|||
|
|||
int result = aufrufzahlenraetsel(); |
|||
TEST_ASSERT_EQUAL_INT(1, result); |
|||
|
|||
} |
|||
|
|||
|
|||
void test_runRaetselTestArmduecken(void){ |
|||
|
|||
int spieler = 10; |
|||
int gegner = 25; |
|||
|
|||
printf("-----------------------------------------------\n"); |
|||
|
|||
int result = armdruecken(gegner, spieler); |
|||
TEST_ASSERT_EQUAL_INT(0, result); |
|||
|
|||
} |
|||
|
|||
void test_runRaetselTestBJ(void){ |
|||
|
|||
int spieler = 0; |
|||
int gegner = 0; |
|||
int janein = 0; |
|||
|
|||
userInput_ExpectAndReturn(1); |
|||
randnum_ExpectAndReturn(10); |
|||
randnum_ExpectAndReturn(8); |
|||
userInput_ExpectAndReturn(1); |
|||
randnum_ExpectAndReturn(9); |
|||
randnum_ExpectAndReturn(10); |
|||
userInput_ExpectAndReturn(1); |
|||
|
|||
printf("-----------------------------------------------\n"); |
|||
|
|||
int result = blackjack(spieler, gegner, janein); |
|||
TEST_ASSERT_EQUAL_INT(1, result); |
|||
} |
|||
|
|||
void test_runRaetselTestBJif(void){ |
|||
|
|||
int spieler = 0; |
|||
int gegner = 0; |
|||
int janein = 0; |
|||
|
|||
userInput_ExpectAndReturn(1); |
|||
randnum_ExpectAndReturn(10); |
|||
randnum_ExpectAndReturn(8); |
|||
userInput_ExpectAndReturn(2); |
|||
|
|||
printf("-----------------------------------------------\n"); |
|||
|
|||
int result = blackjack(spieler, gegner, janein); |
|||
TEST_ASSERT_EQUAL_INT(1, result); |
|||
|
|||
} |
|||
|
|||
void test_runRaetselTestBJifende(void){ |
|||
|
|||
int spieler = 0; |
|||
int gegner = 0; |
|||
int janein = 0; |
|||
|
|||
userInput_ExpectAndReturn(1); |
|||
randnum_ExpectAndReturn(10); |
|||
randnum_ExpectAndReturn(8); |
|||
userInput_ExpectAndReturn(1); |
|||
randnum_ExpectAndReturn(9); |
|||
randnum_ExpectAndReturn(7); |
|||
userInput_ExpectAndReturn(1); |
|||
|
|||
printf("-----------------------------------------------\n"); |
|||
|
|||
int result = blackjack(spieler, gegner, janein); |
|||
TEST_ASSERT_EQUAL_INT(1, result); |
|||
|
|||
} |
|||
|
|||
void test_runRaetselTestBJifende1(void){ |
|||
|
|||
int spieler = 0; |
|||
int gegner = 0; |
|||
int janein = 0; |
|||
|
|||
userInput_ExpectAndReturn(1); |
|||
randnum_ExpectAndReturn(10); |
|||
randnum_ExpectAndReturn(8); |
|||
userInput_ExpectAndReturn(1); |
|||
randnum_ExpectAndReturn(9); |
|||
randnum_ExpectAndReturn(7); |
|||
userInput_ExpectAndReturn(1); |
|||
|
|||
printf("-----------------------1------------------------\n"); |
|||
|
|||
int result = blackjack(spieler, gegner, janein); |
|||
TEST_ASSERT_EQUAL_INT(1, result); |
|||
|
|||
} |
|||
|
|||
void test_runRaetselTestBJifende2(void){ |
|||
|
|||
int spieler = 0; |
|||
int gegner = 0; |
|||
int janein = 0; |
|||
|
|||
userInput_ExpectAndReturn(1); |
|||
randnum_ExpectAndReturn(7); |
|||
randnum_ExpectAndReturn(10); |
|||
userInput_ExpectAndReturn(1); |
|||
randnum_ExpectAndReturn(8); |
|||
randnum_ExpectAndReturn(9); |
|||
userInput_ExpectAndReturn(1); |
|||
|
|||
printf("-----------------------2------------------------\n"); |
|||
|
|||
int result = blackjack(spieler, gegner, janein); |
|||
TEST_ASSERT_EQUAL_INT(2, result); |
|||
|
|||
} |
|||
|
|||
void test_runRaetselTestBJifende3(void){ |
|||
|
|||
int spieler = 0; |
|||
int gegner = 0; |
|||
int janein = 0; |
|||
|
|||
userInput_ExpectAndReturn(1); |
|||
randnum_ExpectAndReturn(10); |
|||
randnum_ExpectAndReturn(10); |
|||
userInput_ExpectAndReturn(1); |
|||
randnum_ExpectAndReturn(10); |
|||
randnum_ExpectAndReturn(10); |
|||
userInput_ExpectAndReturn(1); |
|||
|
|||
printf("-----------------------3------------------------\n"); |
|||
|
|||
int result = blackjack(spieler, gegner, janein); |
|||
TEST_ASSERT_EQUAL_INT(0, result); |
|||
|
|||
} |
|||
|
|||
void test_runRaetselTestBJifende4(void){ |
|||
|
|||
int spieler = 0; |
|||
int gegner = 0; |
|||
int janein = 0; |
|||
|
|||
userInput_ExpectAndReturn(1); |
|||
randnum_ExpectAndReturn(10); |
|||
randnum_ExpectAndReturn(10); |
|||
userInput_ExpectAndReturn(1); |
|||
randnum_ExpectAndReturn(9); |
|||
randnum_ExpectAndReturn(9); |
|||
userInput_ExpectAndReturn(1); |
|||
|
|||
printf("-----------------------4------------------------\n"); |
|||
|
|||
int result = blackjack(spieler, gegner, janein); |
|||
TEST_ASSERT_EQUAL_INT(0, result); |
|||
|
|||
} |
|||
|
|||
void test_runRaetselTestBJifende5(void){ |
|||
|
|||
int spieler = 0; |
|||
int gegner = 0; |
|||
int janein = 0; |
|||
|
|||
userInput_ExpectAndReturn(1); |
|||
randnum_ExpectAndReturn(10); |
|||
randnum_ExpectAndReturn(10); |
|||
userInput_ExpectAndReturn(1); |
|||
randnum_ExpectAndReturn(7); |
|||
randnum_ExpectAndReturn(10); |
|||
userInput_ExpectAndReturn(1); |
|||
|
|||
printf("-----------------------5------------------------\n"); |
|||
|
|||
int result = blackjack(spieler, gegner, janein); |
|||
TEST_ASSERT_EQUAL_INT(1, result); |
|||
|
|||
} |
|||
|
|||
void test_runRaetselTestBJifende6(void){ |
|||
|
|||
int spieler = 0; |
|||
int gegner = 0; |
|||
int janein = 0; |
|||
|
|||
userInput_ExpectAndReturn(1); |
|||
randnum_ExpectAndReturn(10); |
|||
randnum_ExpectAndReturn(10); |
|||
userInput_ExpectAndReturn(1); |
|||
randnum_ExpectAndReturn(10); |
|||
randnum_ExpectAndReturn(7); |
|||
userInput_ExpectAndReturn(1); |
|||
|
|||
printf("-----------------------6------------------------\n"); |
|||
|
|||
int result = blackjack(spieler, gegner, janein); |
|||
TEST_ASSERT_EQUAL_INT(2, result); |
|||
|
|||
} |
|||
|
|||
void test_runRaetselTestBJifnull(void){ |
|||
|
|||
int spieler = 0; |
|||
int gegner = 0; |
|||
int janein = 0; |
|||
|
|||
userInput_ExpectAndReturn(1); |
|||
randnum_ExpectAndReturn(10); |
|||
randnum_ExpectAndReturn(10); |
|||
userInput_ExpectAndReturn(1); |
|||
randnum_ExpectAndReturn(10); |
|||
randnum_ExpectAndReturn(10); |
|||
userInput_ExpectAndReturn(1); |
|||
|
|||
printf("-----------------------7------------------------\n"); |
|||
|
|||
int result = blackjack(spieler, gegner, janein); |
|||
TEST_ASSERT_EQUAL_INT(0, result); |
|||
|
|||
|
|||
|
|||
userInput_ExpectAndReturn(1); |
|||
randnum_ExpectAndReturn(10); |
|||
randnum_ExpectAndReturn(10); |
|||
userInput_ExpectAndReturn(1); |
|||
randnum_ExpectAndReturn(10); |
|||
randnum_ExpectAndReturn(7); |
|||
userInput_ExpectAndReturn(1); |
|||
|
|||
printf("-----------------------8------------------------\n"); |
|||
|
|||
result = blackjack(spieler, gegner, janein); |
|||
TEST_ASSERT_EQUAL_INT(2, result); |
|||
|
|||
} |
|||
|
|||
#endif // TEST |
Write
Preview
Loading…
Cancel
Save
Reference in new issue