Added check for correct number and length of ships parsed.
This commit is contained in:
parent
2e5a0d9f78
commit
8305e8111a
27
server.c
27
server.c
@ -154,6 +154,33 @@ static void parse(int argc, char *argv[])
|
||||
for (int i = optind, c = 0; i < argc; i++, c++) {
|
||||
ships[c] = addShip(argv[i]);
|
||||
}
|
||||
|
||||
// check if ships have correct length
|
||||
int countLength2 = 0;
|
||||
int countLength3 = 0;
|
||||
int countLength4 = 0;
|
||||
|
||||
for (int i = 0; i < sizeof(ships)/sizeof(struct Ship); i++) {
|
||||
if (ships[i]->shipsize == 2) {
|
||||
countLength2++;
|
||||
} else if (ships[i]->shipsize == 3) {
|
||||
countLength3++;
|
||||
} else if (ships[i]->shipsize == 4) {
|
||||
countLength4++;
|
||||
} else {
|
||||
fprintf(stderr, "[%s]: Ship must be 2, 3 or 4 tiles big!\n", pname);
|
||||
cleanup();
|
||||
usage();
|
||||
}
|
||||
}
|
||||
|
||||
if (countLength2 != SHIP_CNT_LEN2 ||
|
||||
countLength3 != SHIP_CNT_LEN3 ||
|
||||
countLength4 != SHIP_CNT_LEN4) {
|
||||
fprintf(stderr, "[%s]: There must be exactly 2 ships of length 2, 3 ships of length 3 and 1 ship of length 4!\n", pname);
|
||||
cleanup();
|
||||
usage();
|
||||
}
|
||||
}
|
||||
|
||||
static int checkWin(void)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user