Initial commit
This commit is contained in:
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
/game
|
||||
59
game.c
Normal file
59
game.c
Normal file
@ -0,0 +1,59 @@
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <stdbool.h>
|
||||
|
||||
bool check_str_is_int(char *s) {
|
||||
while (*s != '\0') {
|
||||
char a = *s - '0';
|
||||
if (a < 0 || a > 9) return false;
|
||||
s++;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void usage(char *arg0, int ret) {
|
||||
printf("USAGE:\n%s [starting life total]\nruns through games of ragavan vs bolt\n", arg0);
|
||||
exit(ret);
|
||||
}
|
||||
|
||||
typedef enum {
|
||||
Ragavan,
|
||||
Bolt
|
||||
} SpellType;
|
||||
|
||||
typedef struct {
|
||||
int life_total;
|
||||
int deck_mountains;
|
||||
int deck_spells;
|
||||
int hand_mountains;
|
||||
int hand_spells;
|
||||
SpellType spell_type;
|
||||
} Player;
|
||||
|
||||
Player *new_player(int life_total, SpellType spell_type) {
|
||||
Player *p = malloc(sizeof(Player));
|
||||
*p = (Player) {
|
||||
.life_total = life_total,
|
||||
.deck_mountains = 20,
|
||||
.deck_spells = 40,
|
||||
.hand_mountains = 0,
|
||||
.hand_spells = 0,
|
||||
.spell_type = spell_type
|
||||
};
|
||||
return p;
|
||||
}
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
int max_life;
|
||||
if (argc < 2) {
|
||||
max_life = 20;
|
||||
} else {
|
||||
if(!check_str_is_int(argv[1])) usage(*argv, 1);
|
||||
max_life = atoi(*argv);
|
||||
}
|
||||
printf("%d\n", max_life);
|
||||
Player *stupid_fucking_monkey = new_player(max_life, Ragavan);
|
||||
Player *sparky = new_player(max_life, Bolt);
|
||||
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user