Browse Source

Merge pull request #10 from Mac10goesBRRRT/raetselronja

Raetselronja
remotes/origin/orga
RonjaAwe 2 years ago
committed by GitHub
parent
commit
8246ec5db4
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 183
      src/c/raetselronja.c
  2. 10
      src/c/raetselronja.h
  3. 8
      src/c/randomnumber.c
  4. 6
      src/c/randomnumber.h
  5. 8
      src/c/userinput.c
  6. 6
      src/c/userinput.h
  7. 311
      test/c/test_raetselronja.c

183
src/c/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);
}
}

10
src/c/raetselronja.h

@ -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

8
src/c/randomnumber.c

@ -0,0 +1,8 @@
#include "randomnumber.h"
int randnum(){
int value;
return value;
}

6
src/c/randomnumber.h

@ -0,0 +1,6 @@
#ifndef RANDOMNUMBER_H
#define RANDOMNUMBER_H
int randnum();
#endif

8
src/c/userinput.c

@ -0,0 +1,8 @@
#include "userinput.h"
int userInput(){
//TODO: user input einlesen
int value;
return value;
}

6
src/c/userinput.h

@ -0,0 +1,6 @@
#ifndef USERINPUT_H
#define USERINPUT_H
int userInput();
#endif

311
test/c/test_raetselronja.c

@ -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
Loading…
Cancel
Save