Mac10goesBRRRT
2 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 264 additions and 0 deletions
@ -0,0 +1,97 @@ |
|||||
|
#include <stdio.h> |
||||
|
#include <stdlib.h> |
||||
|
#include <string.h> |
||||
|
|
||||
|
#include "character.h" |
||||
|
|
||||
|
Character character; |
||||
|
|
||||
|
void setCharacterHealthPoints (Character *character, int newHealthPoints){ |
||||
|
character->healthPoints = newHealthPoints; |
||||
|
} |
||||
|
|
||||
|
int getCharacterHealthPoints (Character *character) { |
||||
|
return character->healthPoints; |
||||
|
} |
||||
|
|
||||
|
void setCharacterStrength (Character *character, int newStrength) { |
||||
|
character->strength = newStrength; |
||||
|
} |
||||
|
|
||||
|
int getCharacterStrength (Character *character) { |
||||
|
return character->strength; |
||||
|
} |
||||
|
|
||||
|
void setCharacterDexterity (Character *character, int newDexterity) { |
||||
|
character->dexterity = newDexterity; |
||||
|
} |
||||
|
|
||||
|
int getCharacterDexterity (Character *character) { |
||||
|
return character->dexterity; |
||||
|
} |
||||
|
|
||||
|
void setCharacterIntelligence (Character *character, int newIntelligence) { |
||||
|
character->intelligence = newIntelligence; |
||||
|
} |
||||
|
|
||||
|
int getCharacterIntelligence (Character *character) { |
||||
|
return character->intelligence; |
||||
|
} |
||||
|
|
||||
|
void setCharacterLevel (Character *character, int newLevel) { |
||||
|
character->level = newLevel; |
||||
|
} |
||||
|
|
||||
|
int getCharacterLevel (Character *character) { |
||||
|
return character->level; |
||||
|
} |
||||
|
|
||||
|
void setCharacterExp (Character *character, int newExp) { |
||||
|
character->exp = newExp; |
||||
|
} |
||||
|
|
||||
|
int getCharacterExp (Character *character) { |
||||
|
return character->exp; |
||||
|
} |
||||
|
|
||||
|
void setCharacterMaxExp (Character *character, int newMaxExp) { |
||||
|
character->maxExp = newMaxExp; |
||||
|
} |
||||
|
|
||||
|
int getCharacterMaxExp (Character *character) { |
||||
|
return character->maxExp; |
||||
|
} |
||||
|
|
||||
|
int calculateStatIncrease (Character *character, int amount) { |
||||
|
return character->level*amount; |
||||
|
} |
||||
|
|
||||
|
void increaseStat (Character *character, int stat, int amount) { |
||||
|
switch (stat) |
||||
|
{ |
||||
|
case 1: |
||||
|
character->strength += amount;break; |
||||
|
case 2: |
||||
|
character->dexterity += amount;break; |
||||
|
case 3: |
||||
|
character->intelligence += amount;break; |
||||
|
case 4: |
||||
|
character->healthPoints += amount;break; |
||||
|
case 5: |
||||
|
character->manaPoints += amount;break; |
||||
|
case 6: |
||||
|
character->level += amount;break; |
||||
|
case 7: |
||||
|
character->exp += amount;break; |
||||
|
case 8: |
||||
|
character->maxExp += amount;break; |
||||
|
default: |
||||
|
break; |
||||
|
} |
||||
|
} |
||||
|
void levelUp (Character *character) { |
||||
|
if (getCharacterExp(character) > getCharacterMaxExp(character)) { |
||||
|
increaseStat(character,LEVEL,1); |
||||
|
setCharacterExp(character,getCharacterExp(character)-getCharacterMaxExp(character)); |
||||
|
} |
||||
|
} |
@ -0,0 +1,46 @@ |
|||||
|
#ifndef CHARACTER_H |
||||
|
#define CHARACTER_H |
||||
|
|
||||
|
typedef struct { |
||||
|
int strength,dexterity,intelligence,healthPoints,manaPoints,level,exp,maxExp; |
||||
|
char name [50]; |
||||
|
} Character; |
||||
|
|
||||
|
enum { |
||||
|
STRENGTH = 1, DEXTERITY = 2, INTELLIGENCE = 3, HEALTHPOINTS = 4, MANAPOINTS = 5, LEVEL = 6, EXP = 7, MAXEXP = 8 |
||||
|
}; |
||||
|
|
||||
|
void setCharacterHealthPoints (Character *character, int newHealthPoints); |
||||
|
|
||||
|
int getCharacterHealthPoints (Character *character); |
||||
|
|
||||
|
void setCharacterStrength (Character *character, int newStrength); |
||||
|
|
||||
|
int getCharacterStrength (Character *character); |
||||
|
|
||||
|
void setCharacterDexterity (Character *character, int newDexterity); |
||||
|
|
||||
|
int getCharacterDexterity (Character *character); |
||||
|
|
||||
|
void setCharacterIntelligence (Character *character, int newIntelligence); |
||||
|
|
||||
|
int getCharacterIntelligence (Character *character); |
||||
|
|
||||
|
void setCharacterLevel (Character *character, int newLevel); |
||||
|
|
||||
|
int getCharacterLevel (Character *character); |
||||
|
|
||||
|
void setCharacterExp (Character *character, int newExp); |
||||
|
|
||||
|
int getCharacterExp (Character *character); |
||||
|
|
||||
|
void setCharacterMaxExp (Character *character, int newMaxExp); |
||||
|
|
||||
|
int getCharacterMaxExp (Character *character); |
||||
|
|
||||
|
void increaseStat (Character *character, int stat, int amount); |
||||
|
|
||||
|
int calculateStatIncrease (Character *character, int amount); |
||||
|
|
||||
|
void levelUp (Character *character); |
||||
|
#endif |
@ -0,0 +1,120 @@ |
|||||
|
#ifdef TEST |
||||
|
#include "unity.h" |
||||
|
#include "character.h" |
||||
|
Character testCharacter; |
||||
|
Character testCharacter2; |
||||
|
|
||||
|
void setUp(void) |
||||
|
{ |
||||
|
testCharacter.healthPoints = 0; |
||||
|
testCharacter2.healthPoints = 15; |
||||
|
testCharacter.strength = 0; |
||||
|
testCharacter2.strength = 5; |
||||
|
testCharacter.dexterity = 0; |
||||
|
testCharacter2.dexterity = 5; |
||||
|
testCharacter.intelligence = 0; |
||||
|
testCharacter2.intelligence = 7; |
||||
|
testCharacter.level = 0; |
||||
|
testCharacter2.level = 5; |
||||
|
testCharacter.exp = 50; |
||||
|
testCharacter2.exp = 110; |
||||
|
testCharacter.maxExp = 100; |
||||
|
testCharacter2.maxExp = 100; |
||||
|
} |
||||
|
|
||||
|
void tearDown(void) |
||||
|
{ |
||||
|
} |
||||
|
|
||||
|
void test_setCharacterHealthPoints(void) |
||||
|
{ |
||||
|
TEST_ASSERT_EQUAL_INT(0,testCharacter.healthPoints); |
||||
|
setCharacterHealthPoints(&testCharacter,50); |
||||
|
TEST_ASSERT_EQUAL_INT(50,testCharacter.healthPoints); |
||||
|
} |
||||
|
|
||||
|
void test_getCharacterHealthPoints (void) { |
||||
|
TEST_ASSERT_EQUAL_INT(15,getCharacterHealthPoints(&testCharacter2)); |
||||
|
} |
||||
|
|
||||
|
void test_setCharacterStrenght(void) { |
||||
|
TEST_ASSERT_EQUAL_INT(0,testCharacter.strength); |
||||
|
setCharacterStrength(&testCharacter,50); |
||||
|
TEST_ASSERT_EQUAL_INT(50,testCharacter.strength); |
||||
|
} |
||||
|
|
||||
|
void test_getCharacterStrength(void) { |
||||
|
TEST_ASSERT_EQUAL_INT(5,getCharacterStrength(&testCharacter2)); |
||||
|
} |
||||
|
|
||||
|
void test_setCharacterDexterity(void) { |
||||
|
TEST_ASSERT_EQUAL_INT(0,testCharacter.dexterity); |
||||
|
setCharacterDexterity(&testCharacter,50); |
||||
|
TEST_ASSERT_EQUAL_INT(50,testCharacter.dexterity); |
||||
|
} |
||||
|
|
||||
|
void test_getCharacterDexterity(void) { |
||||
|
TEST_ASSERT_EQUAL_INT(5,getCharacterDexterity(&testCharacter2)); |
||||
|
} |
||||
|
|
||||
|
void test_setCharacterIntelligence(void) { |
||||
|
TEST_ASSERT_EQUAL_INT(0,testCharacter.intelligence); |
||||
|
setCharacterIntelligence(&testCharacter,45); |
||||
|
TEST_ASSERT_EQUAL_INT(45,testCharacter.intelligence); |
||||
|
} |
||||
|
|
||||
|
void test_getCharacterIntelligence(void) { |
||||
|
TEST_ASSERT_EQUAL_INT(7,getCharacterIntelligence(&testCharacter2)); |
||||
|
} |
||||
|
|
||||
|
void test_setCharacterLevel(void) { |
||||
|
TEST_ASSERT_EQUAL_INT(0,testCharacter.level); |
||||
|
setCharacterLevel(&testCharacter,1); |
||||
|
TEST_ASSERT_EQUAL_INT(1,testCharacter.level); |
||||
|
} |
||||
|
|
||||
|
void test_getCharacterLevel(void) { |
||||
|
TEST_ASSERT_EQUAL_INT(5,getCharacterLevel(&testCharacter2)); |
||||
|
} |
||||
|
|
||||
|
void test_increaseStat(void) { |
||||
|
increaseStat(&testCharacter2,STRENGTH,15); |
||||
|
TEST_ASSERT_EQUAL_INT(20,testCharacter2.strength); |
||||
|
increaseStat(&testCharacter2,INTELLIGENCE,15); |
||||
|
TEST_ASSERT_EQUAL_INT(22,testCharacter2.intelligence); |
||||
|
increaseStat(&testCharacter2,LEVEL,15); |
||||
|
TEST_ASSERT_EQUAL_INT(20,testCharacter2.level); |
||||
|
} |
||||
|
|
||||
|
void test_calculateStatIncrease(void) { |
||||
|
TEST_ASSERT_EQUAL_INT(5,testCharacter2.level); |
||||
|
TEST_ASSERT_EQUAL_INT(25,calculateStatIncrease(&testCharacter2,5)); |
||||
|
} |
||||
|
|
||||
|
void test_levelUp_enoughExp (void) { |
||||
|
TEST_ASSERT_EQUAL_INT(5,testCharacter2.level); |
||||
|
levelUp(&testCharacter2); |
||||
|
TEST_ASSERT_EQUAL_INT(6,testCharacter2.level); |
||||
|
} |
||||
|
|
||||
|
void test_levelUp_enoughExp_loseExp (void) { |
||||
|
TEST_ASSERT_EQUAL_INT(110,testCharacter2.exp); |
||||
|
TEST_ASSERT_EQUAL_INT(100,testCharacter2.maxExp); |
||||
|
levelUp(&testCharacter2); |
||||
|
TEST_ASSERT_EQUAL_INT(10,testCharacter2.exp); |
||||
|
} |
||||
|
|
||||
|
void test_levelUp_notEnoughExp (void) { |
||||
|
TEST_ASSERT_EQUAL_INT(0,testCharacter.level); |
||||
|
levelUp(&testCharacter); |
||||
|
TEST_ASSERT_EQUAL_INT(0,testCharacter.level); |
||||
|
} |
||||
|
|
||||
|
void test_levelUp_notEnoughExp_loseExp (void) { |
||||
|
TEST_ASSERT_EQUAL_INT(50,testCharacter.exp); |
||||
|
TEST_ASSERT_EQUAL_INT(100,testCharacter.maxExp); |
||||
|
levelUp(&testCharacter); |
||||
|
TEST_ASSERT_EQUAL_INT(50,testCharacter.exp); |
||||
|
} |
||||
|
|
||||
|
#endif // TEST |
Write
Preview
Loading…
Cancel
Save
Reference in new issue