added bot (almost)
This commit is contained in:
parent
5b527c3f57
commit
12858db2fb
|
@ -32,6 +32,7 @@ typedef struct {
|
|||
int id;
|
||||
char name_player[MAX_NAME];
|
||||
pid_t pid;
|
||||
int bot;
|
||||
} player_ds;
|
||||
|
||||
typedef struct {
|
||||
|
|
|
@ -19,10 +19,10 @@
|
|||
#include <client.h>
|
||||
|
||||
void checkClientinput(int argc, char *argv[]);
|
||||
int generateMove();
|
||||
|
||||
//TODO: mettere main ma non l'ho fatto per makefile
|
||||
int main(int argc, char *argv[]){
|
||||
|
||||
int clientBot = 0;
|
||||
printf("Il mio pid per killarmi: %d\n", getpid()); //TMP
|
||||
|
||||
setupClient(argc, argv);
|
||||
|
@ -34,7 +34,15 @@ int main(int argc, char *argv[]){
|
|||
|
||||
|
||||
// mando i miei dati al server
|
||||
player_ds player = {.mtype = 3, .id = ID, .pid = getpid()};
|
||||
player_ds player = {.mtype = 3, .id = ID, .pid = getpid(), .bot = 0};
|
||||
if (argc == 3) {
|
||||
if (argv[2] == "*") {
|
||||
player.bot = 1;
|
||||
}
|
||||
if (argv[2] == "^") {
|
||||
clientBot = 1;
|
||||
}
|
||||
}
|
||||
strcpy(player.name_player, argv[1]);
|
||||
sndPlayer(&player);
|
||||
|
||||
|
@ -62,7 +70,12 @@ int main(int argc, char *argv[]){
|
|||
|
||||
int pos;
|
||||
do {
|
||||
scanf("%d", &move.move);
|
||||
if (!clientBot) {
|
||||
scanf("%d", &move.move);
|
||||
} else {
|
||||
move.move = generateMove(); //TODO:
|
||||
}
|
||||
|
||||
move.move = checkMove(move.move - 1);
|
||||
} while (move.move == -1);
|
||||
|
||||
|
@ -76,4 +89,8 @@ int main(int argc, char *argv[]){
|
|||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int generateMove() {
|
||||
return 1;
|
||||
}
|
|
@ -20,6 +20,8 @@
|
|||
#include <custom_msgq.h>
|
||||
#include <custom_sig.h>
|
||||
|
||||
int bot = 0;
|
||||
|
||||
void waitPlayer(char name[2][MAX_NAME]) {
|
||||
player_ds player;
|
||||
|
||||
|
@ -28,6 +30,10 @@ void waitPlayer(char name[2][MAX_NAME]) {
|
|||
rcvPlayer(&player);
|
||||
strcpy(name[player.id], player.name_player);
|
||||
_PIDS[player.id] = player.pid;
|
||||
if (player.bot) {
|
||||
bot = 1;
|
||||
}
|
||||
|
||||
printf(PSERVER "Player %s connected\n", name[player.id]);
|
||||
}
|
||||
|
||||
|
@ -43,8 +49,15 @@ int main(int argc, char *argv[]) {
|
|||
|
||||
char name[2][MAX_NAME];
|
||||
|
||||
// aspetto PRIMO client
|
||||
// aspetto PRIMO client
|
||||
waitPlayer(name);
|
||||
if (bot) {
|
||||
int child = fork();
|
||||
if (child == 0) {
|
||||
//TODO: fare un exec come se si facesse partire un player da terminale
|
||||
// dicendogli pero che é un bot e che non fa le scanf
|
||||
}
|
||||
}
|
||||
|
||||
// aspetto SECONDO client
|
||||
waitPlayer(name);
|
||||
|
|
|
@ -46,7 +46,7 @@ void checkClientinput(int argc, char *argv[]){
|
|||
"\t- PLAYER_NAME \t\tplayer name\n"
|
||||
);
|
||||
exit(EXIT_SUCCESS);
|
||||
} else if (argc > 2) {
|
||||
} else if (argc > 3) {
|
||||
printf(PCLIENT "To many arguments!");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
@ -54,4 +54,10 @@ void checkClientinput(int argc, char *argv[]){
|
|||
if (!argv[1] || strlen(argv[1]) > MAX_NAME) {
|
||||
errExitMsg("Invalid player name");
|
||||
}
|
||||
|
||||
if (argv[2]) {
|
||||
if (argv[2] != "*" && argv[2] != "^") {
|
||||
errExitMsg("Invalid third argument");
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue