newton16x

Untitled

Mar 24th, 2019
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.96 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <unistd.h>
  3. #include <sys/types.h>
  4. #include <sys/wait.h>
  5. #include <stdlib.h>
  6. #include <string.h>
  7.  
  8. void bet(int credit){
  9.     int fd[2],fd2[2],fd3[2];
  10.     pid_t p;
  11.     int i,betNumber;
  12.     int random=0;
  13.     int creditoAtual;
  14.    
  15.     if(pipe(fd)== -1){
  16.         perror("Pipe fail\n");
  17.         exit(1);
  18.     }
  19.     if(pipe(fd2)==-1){
  20.         perror("Pipe fail\n");
  21.         exit(1);
  22.     }
  23.     if(pipe(fd3)==-3){
  24.         perror("Pipe fail\n");
  25.         exit(1);
  26.     }
  27.    
  28.     if(credit>0){
  29.    
  30.         p = fork();
  31.         if(p==0){
  32.             close(fd[1]);
  33.             read(fd[0],&i,sizeof(int));
  34.             if(i==1){
  35.                 srand(3);
  36.                 betNumber = rand() %5;
  37.                 close(fd3[0]);
  38.                 write(fd3[1],&betNumber,sizeof(int));
  39.                 close(fd3[1]);
  40.             }
  41.             close(fd2[1]);
  42.             read(fd2[0],&creditoAtual,sizeof(int));
  43.             close(fd[0]);
  44.             printf("Credito atual: %d\n",creditoAtual);
  45.             exit(1);
  46.        
  47.         }else{
  48.             random = rand() % 5;
  49.             close(fd[0]);
  50.        
  51.             if(credit>0){
  52.                 i=1;
  53.             }else{
  54.                 i=0;
  55.             }
  56.        
  57.             write(fd[1],&i,sizeof(int));
  58.             close(fd[1]);
  59.             sleep(1);
  60.        
  61.             close(fd3[1]);
  62.             read(fd3[0],&betNumber,sizeof(int));
  63.             close(fd3[0]);
  64.             if(betNumber==random){
  65.                 printf("Acertou!\n");
  66.                 creditoAtual = credit +10;
  67.            
  68.             }else{
  69.                 printf("Nao acertou :s !\n");
  70.                 creditoAtual = credit -5;
  71.             }
  72.             close(fd2[0]);
  73.             write(fd2[1],&creditoAtual,sizeof(int));
  74.             close(fd2[1]);
  75.             wait(NULL);
  76.         bet(creditoAtual);
  77.         }
  78.     }
  79. }
  80.  
  81.  
  82. int main(void){
  83.     bet(20);
  84.     printf("TERMINOU\n");
  85.     return 1;
  86. }
Advertisement
Add Comment
Please, Sign In to add comment