Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <netinet/in.h>
- /*
- ---------------------------------------------------------
- | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
- ---------------------------------------------------------
- ---------------------------------------------------------
- ---------------------------------------------------------
- ---------------------------------------------------------
- | 0 | 1 | 2 | 3 | 4 | 5 | 6 |
- ---------------------------------------------------------
- | 7 | 8 | 9 | 10 | 11 | 12 | 13 |
- ---------------------------------------------------------
- | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
- ---------------------------------------------------------
- | 21 | 22 | 23 | 24 | 25 | 26 | 27 |
- ---------------------------------------------------------
- | 28 | 29 | 30 | 31 | 32 | 33 | 34 |
- ---------------------------------------------------------
- | 35 | 36 | 37 | 38 | 39 | 40 | 41 |
- ---------------------------------------------------------
- */
- char tabla[42];
- int megfelel(char *szo) // vizsgálja hogy a megadott szting összes karaktere eleme a kisbetűs abc-nek
- {
- if(!strcmp(szo, "feladom") || atoi(szo) > 7 || atoi(szo) < 1) return 0;
- return 1;
- }
- int checkbelefer(char *tomb, int szam){
- int i;
- if(tomb[szam-1] != '-')
- return -1;
- return 1;
- }
- void kiir(char kiirat[42]){
- int i, j;
- printf("\n\n");
- printf("1 2 3 4 5 6 7\n");
- printf("*************\n");
- for(i = 0; i < 42; i++){
- printf("%c ", kiirat[i]);
- if(i%7 == 6) printf("\n");
- }
- printf("*************\n");
- printf("*************\n");
- }
- int main(){
- //**********************************************************************//
- // Socket deklaráció, kapcsolódás
- int networksocket;
- networksocket = socket(AF_INET, SOCK_STREAM, 0);
- struct sockaddr_in serveraddress;
- serveraddress.sin_family = AF_INET;
- serveraddress.sin_port = htons(52369);
- serveraddress.sin_addr.s_addr = INADDR_ANY;
- int ellenor;
- ellenor = connect(networksocket, (struct sockaddr *) &serveraddress, sizeof(serveraddress));
- if(ellenor == -1){
- printf("Connect error, a kliens leáll!\n");
- exit(0);
- }
- //********************************************************************//
- //A kliens megkapja hanyadikkánt csatlakozott ás nyugtáz
- char uzenet[1000];
- char szo[1000];
- ellenor = recv(networksocket, &uzenet, sizeof(uzenet), 0);
- if(ellenor == -1){
- printf("Recive error, a kliens leáll!\n");
- exit(0);
- }
- //sleep(1);
- int sorszam = atoi(uzenet);
- printf("Te vagy a(z) %d. számĂş játákos\n", atoi(uzenet));
- ellenor = send(networksocket, uzenet, sizeof(uzenet), 0);
- if(ellenor == -1){
- printf("Send error, a kliens leáll!\n%d\n", ellenor);
- exit(0);
- }
- //*******************************************************************//
- //A játák megkezdáse
- int status;
- while(1){
- ellenor = recv(networksocket, &uzenet, sizeof(uzenet), 0);
- if(ellenor == -1){
- printf("Recive error, a kliens leáll!\n");
- exit(0);
- }
- /* Ide kerül a játák klienshez tartozó rásze */
- if(!strcmp(uzenet,"aaa")){ // Enemy leaves the match fully
- printf("\n!!!! The enemy left the match! The connection will close !!!!\n");
- ellenor = send(networksocket, uzenet, sizeof(uzenet), 0);
- continue;
- }
- if(!strcmp(uzenet,"asd")){ // IF P1 Wins
- //recv(networksocket, &uzenet, sizeof(uzenet), 0);
- //kiir(uzenet);
- printf("\n!!!! Player 1 WINS!\nDo you want a rematch? (ujra/vege): !!!!");
- scanf("%s", &uzenet);
- ellenor = send(networksocket, uzenet, sizeof(uzenet), 0);
- continue;
- }
- if(!strcmp(uzenet,"dsa")){ // IF P2 Wins
- //recv(networksocket, &uzenet, sizeof(uzenet), 0);
- //kiir(uzenet);
- printf("\n!!!! Player 2 WINS!\nDo you want a rematch? (ujra/vege): ");
- scanf("%s", &uzenet);
- ellenor = send(networksocket, uzenet, sizeof(uzenet), 0);
- continue;
- }
- if(!strcmp(uzenet,"tele")){ // IF TELE
- //recv(networksocket, &uzenet, sizeof(uzenet), 0);
- //kiir(uzenet);
- printf("\n!!! TIE !!!\nDo you want a rematch? (ujra/vege):\n");
- scanf("%s", &uzenet);
- ellenor = send(networksocket, uzenet, sizeof(uzenet), 0);
- continue;
- }
- if(!strcmp(uzenet, "sda")){ // IF surrendered
- printf("\n!!!! A meccs fel lett adva!\n");
- ellenor = send(networksocket, uzenet, sizeof(uzenet), 0);
- continue;
- }
- if(!strcmp(uzenet, "vege")){
- printf("Someone didn't want to play a rematch, therefore closing connection!\n");
- send(networksocket, uzenet, sizeof(uzenet), 0);
- recv(networksocket, &uzenet, sizeof(uzenet), 0);
- kiir(uzenet);
- send(networksocket, uzenet, sizeof(uzenet), 0);
- exit(0);
- }
- if(!strcmp(uzenet,"?") && strcmp(uzenet, "asd") && strcmp(uzenet, "das") && strcmp(uzenet, "sda") /* strcmp(uzenet, "tele")*/){
- printf("\nInvalid move: Chose another column (1-7): ");
- scanf("%s", &uzenet);
- ellenor = send(networksocket, uzenet, sizeof(uzenet), 0);
- continue;
- }
- if(strcmp(uzenet, "asd") && strcmp(uzenet, "dsa") && strcmp(uzenet, "-"))
- kiir(uzenet);
- if(1==1){ // Client side: add to chosen column
- printf("P%d: Chose a column: ", sorszam);
- strcpy(tabla, uzenet);
- scanf("%s", &uzenet);
- int j;
- if(atoi(uzenet) < 8 || atoi(uzenet) > 0 ){
- if(sorszam == 1){
- for(j = 41; j >= 0; j--){
- if(j%7 == (atoi(uzenet)-1) && tabla[j] == '-'){
- tabla[j] = 'X';
- kiir(tabla);
- break;
- }
- }
- }
- if(sorszam == 2){
- for(j = 41; j >= 0; j--){
- if(j%7 == (atoi(uzenet)-1) && tabla[j] == '-'){
- tabla[j] = 'O';
- kiir(tabla);
- break;
- }
- }
- }
- }
- ellenor = send(networksocket, uzenet, sizeof(uzenet), 0);
- if(ellenor == -1){
- printf("Send error, a kliens leáll!\n");
- exit(0);
- }
- }
- }
- //*********************************************************************************//
- //A játák befejezáse
- ellenor = recv(networksocket, &uzenet, sizeof(uzenet), 0);
- if(ellenor == -1){
- printf("Recive error, a kliens leáll!\n");
- exit(0);
- }
- printf("A(z) %d. számĂş játákos nyert\n", atoi(uzenet));
- ellenor = send(networksocket, uzenet, sizeof(uzenet), 0);
- if(ellenor == -1){
- printf("Send error, a kliens leáll!\n");
- exit(0);
- }
- return 0;
- }
Add Comment
Please, Sign In to add comment