Super Truco
Publicado por Celito Gregolon Júnior 27/11/2004
[ Hits: 24.482 ]
Joguinho de truco que demonstra como utilizar arquivos para armazenar dados com comandos simples. Ainda demonstra alguns conceitos básicos de IA (inteligencia artificial)... Muito legal.
/*Jogo de truco em C*/ /*Versão 0.20*/ /*Bibliotecas utilizadas*/ #include <stdio.h> #include <stdlib.h> #include <string.h> /*Estados: 0=normal 1=trucado 2=vale seis 3=vale nove 4=vale doze */ /*Constantes*/ #define opcoes 4 #define versao 0.20 #define TRUE 1 #define FALSE 0 #define ptsmax 12 #define g "(Gato)" #define c "(Copas)" #define e "(Espadilha)" #define m "(Mole)" #define truco "truco" #define seis "seis" #define nove "nove" #define doze "doze" #define vazio "vazio" #define autor2 "Celito Gregolon J\£nior" /*Ordem alfabética*/ #define autor1 "Carlos Eduardo Weber" #define autor3 "Ricardo Oenning" #define part "Partidas" #define sal "Pontos" #define jog "Jogador" #define vit "Vit\¢rias" /*Variáveis Globais*/ char nome[40]="Design"; int pnts[2]; int pntsrod[2]; int baralho[40]; int matriz[40]; int mao[2][3]; int mesa[2][3]; int cartas[40]; char ranknomes[100][40]; int rankpts[100]; int rankpartidas[100]; int rankvitorias[100]; FILE *fl; FILE *arq; int primeiro, virada, turno, rodada, estado, last, saldo, inicial, continua, qly, sorteado, local, npartidas, vitorias; char status[6][10]={vazio,truco,seis,nove,doze,vazio}; char esp; /*Funções e procedimentos definidos*/ void embaralha(void); int sorteia(int max); void distribui(void); void pcplay(void); void jgplay(void); void atribui(void); char toon(int card); char carta(int card); void save(void); void pcpensa(void); void pctruca(void); void pcordena(void); void jgtruca(void); void jogo(void); void sobre(void); void rank(void); /*Principal*/ void main() { /*Variáveis locais*/ int opcao, i; /*Início*/ opcao=opcoes+1; while (opcao!=opcoes) { /* Pede para que o usuário escolha uma opção*/ printf("\n"); printf("************************\n"); printf("O que voc\^ deseja fazer?\n"); printf("\t1 - Jogar truco\n"); printf("\t2 - Ver ranking\n"); printf("\t3 - Sobre...\n"); printf("\t4 - Sair\n"); printf("\nDigite uma op\Æo:"); scanf("%d",&opcao); strcpy(&status[1],&truco); strcpy(&status[2],&seis); strcpy(&status[3],&nove); strcpy(&status[4],&doze); /*Verifica possíveis entradas erradas*/ if ((opcao<1)||(opcao>opcoes)) { printf("\a\n\nVALOR INCORRETO!\n\n"); printf("Por favor escolha uma op\Æo entre 1 e %d\n\n", opcoes); system("Pause"); } if (opcao==1) { jogo(); } if (opcao==2) { rank(); } if (opcao==3) { sobre(); } } } void sobre(void) { /**/ printf("\n\n"); printf("Programa: Super Truco\n>>"); esp=getch(); printf("\nVers\Æo: %3.2f\n>>",versao); esp=getch(); printf("\nAutores:\n"); printf("\t%s\n",autor1); printf("\t%s\n",autor2); printf("\t%s\n>>",autor3); esp=getch(); printf("\nComent\ rios\n"); printf("\t Este programa foi feito em novembro de 2004 como trabalho\n"); printf("\tde conclus\Æo da disciplina de Processamento de Dados (PRD) da \n"); printf("\t3\¦ fase do curso de Engenharia El\`trica da Universidade do Estado\n"); printf("\tde Santa Catarina (UDESC).\n>>"); esp=getch(); } void rank(void) { char car; int i; if ((arq=fopen("rank.txt","r"))==NULL) { arq=fopen("Rank.txt","w"); for (i=0; i<100; i++) fprintf(arq,"%s %d %d %d\n",vazio,0,0,0); fclose(arq); arq=fopen("rank.txt","r"); } printf("\n"); printf(" Rank -%15s\t%10s\t%8s%10s\n\n",jog,part,vit,sal); for (i=0; i<10; i++) { fscanf(arq,"%s%d%d%d",ranknomes[i],&rankpartidas[i],&rankvitorias[i],&rankpts[i]); printf("%3d -%15s\t%8d\t%5d\t%9d\n",i+1,ranknomes[i],rankpartidas[i],rankvitorias[i],rankpts[i]); } printf("\n"); system("Pause"); fclose(arq); if ((strcmp(&ranknomes[0],&vazio))!=0) { car='a'; while ((car!='s')&&(car!='n')) { printf("\nVoc\^ deseja limpar a lista?(s/n)\n"); scanf("%s",&car); if (car=='s') { arq=fopen("Rank.txt","w"); for (i=0; i<100; i++) fprintf(arq,"%s %d %d %d\n",vazio,0,0,0); printf("Lista limpa!\n\n"); system("Pause"); } fclose(arq); } } } void jogo(void) { char ch[5], tipo[40], car; int i, primeira, vale, naipe0, naipe1, valor; srand(time(NULL)); for (i=0; i<40; i++) matriz[i]=39-i; /*Pede o nome do jogador*/ printf("\n\nDigite seu nome:"); scanf("%s",&nome); pnts[0]=0; pnts[1]=0; primeiro=sorteia(2); rodada=0; vitorias=0; npartidas=0; saldo=0; while ((pnts[0]<ptsmax)&&(pnts[1]<ptsmax)) { /*embaralha as cartas*/ embaralha(); /*Distribui as cartas entre os jogadores*/ distribui(); /*Atribui uma pontuação as cartas para fins de comparação do valor das mesmas*/ atribui(); pntsrod[0]=0; pntsrod[1]=0; inicial=primeiro; turno=-1; estado=0; vale=0; last=2; local=1; sorteado=sorteia(40); while ((pntsrod[0]<2)&&(pntsrod[1]<2)) { printf("\n***********************************\n"); turno=turno+1; mesa[1][turno]=-1; /*Os jogadores jogam as cartas*/ pcordena(); continua=TRUE; if ((pnts[0]==11)&&(pnts[1]==11)) { printf("\n\t*** Escurinha! ***\n"); } if (inicial==0) { if (((pnts[0]==11)&&(pnts[1]<11))&&(turno==0)) { printf("Pc est\ com m\Æo de 11.\n>>"); esp=getch(); if (qly<45) { printf("\nPc correu.\n>>"); pntsrod[1]=3; continua=FALSE; } else { printf("\nPc aceitou.\n>>"); estado=1; last=-1; } esp=getch(); } if (((pnts[1]==11)&&(pnts[0]<11))&&(turno==0)) { printf("Voc\^ est\ com m\Æo de 11.\n>>"); esp=getch(); printf("\nVirada: %c %c\n",carta(virada),toon(virada)); printf("\nSua m\Æo \`:\n"); for (i=0; i<3; i++) { tipo[0]='{FONTE}'; if (cartas[mao[1][i]]==13) strcpy(&tipo,&g); if (cartas[mao[1][i]]==12) strcpy(&tipo,&c); if (cartas[mao[1][i]]==11) strcpy(&tipo,&e); if (cartas[mao[1][i]]==10) strcpy(&tipo,&m); printf("%c %c %s\n",carta(mao[1][i]),toon(mao[1][i]),tipo); } car='a'; while ((car!='s')&&(car!='n')) { printf("Voc\^ aceita?(s/n)"); scanf("%s",&car); } if (car=='n') { pntsrod[0]=3; continua=FALSE; } else { estado=1; last=-1; } } if (continua==TRUE) pctruca(); if (continua==TRUE) pcplay(); local=2; if (continua==TRUE) jgtruca(); if (continua==TRUE) jgplay(); } else { if (((pnts[0]==11)&&(pnts[1]<11))&&(turno==0)) { printf("Pc est\ com m\Æo de 11.\n>>"); esp=getch(); if (qly<60) { printf("\nPc correu.\n>>"); pntsrod[1]=3; continua=FALSE; } else { printf("\nPc aceitou.\n>>"); estado=1; last=-1; } esp=getch(); } if (((pnts[1]==11)&&(pnts[0]<11))&&(turno==0)) { printf("Voc\^ est\ com m\Æo de 11.\n>>"); esp=getch(); printf("\nVirada: %c %c\n",carta(virada),toon(virada)); printf("\nSua m\Æo \`:\n"); for (i=0; i<3; i++) { tipo[0]='{FONTE}'; if (cartas[mao[1][i]]==13) strcpy(&tipo,&g); if (cartas[mao[1][i]]==12) strcpy(&tipo,&c); if (cartas[mao[1][i]]==11) strcpy(&tipo,&e); if (cartas[mao[1][i]]==10) strcpy(&tipo,&m); printf("%c %c %s\n",carta(mao[1][i]),toon(mao[1][i]),tipo); } car='a'; while ((car!='s')&&(car!='n')) { printf("Voc\^ aceita?(s/n)"); scanf("%s",&car); } if (car=='n') { pntsrod[0]=3; continua=FALSE; } else { estado=1; last=-1; } } local=1; if (continua==TRUE) jgtruca(); if (continua==TRUE) jgplay(); if (continua==TRUE) pctruca(); if (continua==TRUE) pcplay(); } if ((pntsrod[0]<2)&&(pntsrod[1]<2)) { /*Avalia o resultado do turno*/ if (cartas[mesa[0][turno]]>cartas[mesa[1][turno]]) { inicial=0; if ((vale==1)||(vale==2)) pntsrod[0]=3; else pntsrod[0]++; if (turno==0) primeira=0; printf("\nPc levou este turno.\n>>"); } if (cartas[mesa[0][turno]]<cartas[mesa[1][turno]]) { inicial=1; if ((vale==1)||(vale==2)) pntsrod[1]=3; else pntsrod[1]++; if (turno==0) primeira=1; printf("\nVoc\^ levou este turno.\n>>"); } if (cartas[mesa[0][turno]]==cartas[mesa[1][turno]]) { if (turno==0) { vale=1; printf("\nTurno empatado.\n>>"); } if (turno==1) if (vale==0) { pntsrod[primeira]=3; printf("\nTurno empatado.\n>>"); } else { vale=2; printf("\nTurno empatado.\n>>"); } if (turno==2) { if (vale==2) { naipe0=(int)(mesa[1][3]/10); naipe1=(int)(mesa[1][3]/10); if (naipe0>naipe1) { pntsrod[0]=3; printf("\nTurno empatado.\n>>"); } else { pntsrod[1]=3; printf("\nTurno empatado.\n>>"); } } else { pntsrod[primeira]=3; printf("\nTurno empatado.\n>>"); } } } esp=getch(); } } printf("\n***********************************\n"); valor=estado*3; if (estado==0) valor=1; if (pntsrod[0]>=2) { if (pnts[0]==11) valor=1; pnts[0]=pnts[0]+valor; if (valor==1) printf("\nPc ganhou 1 ponto\n"); else printf("\nPc ganhou %d pontos\n",valor); printf("\n***********************************\n"); } if (pntsrod[1]>=2) { if (pnts[1]==11) valor=1; if (valor==1) printf("\nVoc\^ ganhou 1 ponto\n"); else printf("\nVoc\^ ganhou %d pontos\n",valor); pnts[1]=pnts[1]+valor; printf("\n***********************************\n"); } esp=getch(); if (pnts[0]>12) pnts[0]=12; if (pnts[1]>12) pnts[1]=12; printf("\n\tPLACAR PARCIAL\n"); printf("\t---------------------\n\t Pc = %d\n",pnts[0]); printf("\t---------------------\n\t %s = %d\n",nome,pnts[1]); printf("\t---------------------\n"); printf(">>"); esp=getch(); if ((pnts[0]>=ptsmax)||(pnts[1]>=ptsmax)) { if (pnts[0]>=ptsmax) { npartidas++; saldo=pnts[1]-ptsmax; printf("\n\n\tVOC\Ò PERDEU!!!\n\n"); } if (pnts[1]>=ptsmax) { vitorias++; npartidas++; saldo=ptsmax-pnts[0]; printf("\n\n\tVOC\Ò GANHOU!!!\n\n"); } system("Pause"); } if (primeiro==0) primeiro++; else primeiro--; rodada++; } save(); } void embaralha(void) { int num, i, j, k; char ch[2]; for (i=0; i<40; i++) { num=sorteia(40-i); baralho[i]=matriz[num]; for (j=num; j<(39); j++) matriz[j]=matriz[j+1]; } for (i=0; i<40; i++) matriz[i]=baralho[i]; } int sorteia(int max) { return ((int)max*rand()/(RAND_MAX+1)); } void distribui(void) { int a, b, i; for (a=0; a<3; a++) { for (b=0; b<2; b++) { mao[b][a]=baralho[a*2+b]; } } virada=baralho[6]; printf("\n***********************************\n"); printf("Rodada %2d",rodada+1); printf("\n>>"); esp=getch(); if (primeiro==0) printf("\nPc come\ >>"); else printf("\nVoc\^ come\ >>"); printf(""); esp=getch(); } void pcplay(void) { int num, i, j, wx, ql, jogou, valormao; char tipo[40]; /*Pc escolhe carta para jogar*/ if (inicial==0) { if ((pntsrod[0]==0)&&(turno>0)) { if (cartas[mao[0][1]]>6) num=sorteia(3-turno); else num=0; } else num=sorteia(3-turno); } if ((pnts[0]==11)||(pnts[1]==11)) num=sorteia(3-turno); if (inicial==1) { jogou=FALSE; for (i=(2-turno); i>=0; i--) { if ((cartas[mao[0][i]]>cartas[mesa[1][turno]])&&(jogou==FALSE)) { num=i; jogou=TRUE; } } if (jogou==FALSE) for (i=(2-turno); i>=0; i--) { if ((cartas[mao[0][i]]>cartas[mesa[1][turno]])&&(jogou==FALSE)) { num=i; jogou=TRUE; } } if (jogou==FALSE) num=2-turno; if ((pntsrod[0]==pntsrod[1])&&(turno!=0)) num=0; } tipo[0]='{FONTE}'; mesa[0][turno]=mao[0][num]; for (i=num; i<(2-turno); i++) mao[0][i]=mao[0][i+1]; if (cartas[mesa[0][turno]]==13) strcpy(&tipo,&g); if (cartas[mesa[0][turno]]==12) strcpy(&tipo,&c); if (cartas[mesa[0][turno]]==11) strcpy(&tipo,&e); if (cartas[mesa[0][turno]]==10) strcpy(&tipo,&m); printf("\nPc jogou: %c %c %s\n",carta(mesa[0][turno]),toon(mesa[0][turno]),tipo); printf(">>"); esp=getch(); } void jgplay(void) { int num, i, vle; char tipo[40]; num=10; while ((num<0)||(num>(2-turno))) { printf("\nVirada: %c %c\n",carta(virada),toon(virada)); if ((pnts[0]==11)&&(pnts[1]==11)) { printf("\nQue carta voc\^ quer jogar?(1"); for (i=1; i<(3-turno); i++) printf("/%d",i+1); printf(")\n"); scanf("%d",&num); num--; } else { printf("\nQue carta voc\^ quer jogar?\n"); for (i=0; i<(3-turno); i++) { tipo[0]='{FONTE}'; if (cartas[mao[1][i]]==13) strcpy(&tipo,&g); if (cartas[mao[1][i]]==12) strcpy(&tipo,&c); if (cartas[mao[1][i]]==11) strcpy(&tipo,&e); if (cartas[mao[1][i]]==10) strcpy(&tipo,&m); printf("%d - %c %c %s\n",i+1,carta(mao[1][i]),toon(mao[1][i]),tipo); } scanf("%d",&num); num--; } if ((num<0)||(num>(2-turno))) { printf("\a\n\tVALOR INCORRETO!!\n"); printf("\nDigite sua op\Æo entre 0 e %d\n",(2-turno)); system("Pause"); } else { tipo[0]='{FONTE}'; if (cartas[mao[1][num]]==13) strcpy(&tipo,&g); if (cartas[mao[1][num]]==12) strcpy(&tipo,&c); if (cartas[mao[1][num]]==11) strcpy(&tipo,&e); if (cartas[mao[1][num]]==10) strcpy(&tipo,&m); printf("Voc\^ jogou: %c %c %s\n",carta(mao[1][num]),toon(mao[1][num]),tipo); printf(">>"); } esp=getch(); } mesa[1][turno]=mao[1][num]; for (i=num; i<(2-turno); i++) mao[1][i]=mao[1][i+1]; } void atribui(void) { int vle, a, i, j, card; if ((virada%10)<9) { card=(virada%10)+1; } else card=0; vle=0; for (i=0; i<4; i++) { vle=0; for (j=0; j<10; j++) { if (card==j) cartas[10*i+j]=10+i; else { cartas[10*i+j]=vle; vle=vle+1; } } } } char toon(int card) { int vle, x; vle=(int)(card/10); if (vle==0) x=4; if (vle==1) x=6; if (vle==2) x=3; if (vle==3) x=5; return ("%c",x); } char carta(int card) { int vle; char x; vle=card%10; if (vle>7) x=("\c",42+vle); if (vle==7) x='A'; if (vle==6) x='K'; if (vle==5) x='J'; if (vle==4) x='Q'; if (vle<4) x=("%c",52+vle); return x; } void save(void) { int i, pos, njogadores, pontos, j; char nm[40]; /*Abre o arquivo para leitura, se existir*/ if ((arq=fopen("Rank.TXT","r"))!=NULL) { /*Obtem os nomes e a pontuação*/ for (i=0; i<100; i++) { fscanf(arq,"%s%d%d%d",&ranknomes[i],&rankpartidas[i],&rankvitorias[i],&rankpts[i]); } } /*senão, o cria*/ else { arq=fopen("Rank.txt","w"); for (i=0; i<100; i++) { fprintf(arq,"%s %d %d %d\n",vazio,0,0,0); strcpy(&ranknomes[i],&vazio); rankpartidas[i]=0; rankvitorias[i]=0; rankpts[i]=0; } } /*fecha o arquivo*/ fclose(arq); /*procura o nome e conta o número de jogadores na lista*/ njogadores=0; pos=-1; i=0; while ((pos==-1)||(i==njogadores)) { if (strcmp(&ranknomes[i],&nome)==0) pos=i; if ((pos==-1)&&(i==99)) pos=100; if (strcmp(&ranknomes[i],&vazio)!=0) njogadores++; i++; } /*se encontrar, acrescenta ou diminui seus pontos*/ if (pos<100) { rankpartidas[pos]=rankpartidas[pos]+npartidas; rankpts[pos]=rankpts[pos]+saldo; rankvitorias[pos]=rankvitorias[pos]+vitorias; } /*senão, adiciona-lhe ao final da lista*/ else { njogadores++; rankpartidas[njogadores-1]=npartidas; rankvitorias[njogadores-1]=vitorias; rankpts[njogadores-1]=saldo; strcpy(&ranknomes[njogadores-1],&nome); } /*ordena a lista em forma decrescente*/ for (i=0; i<(njogadores-1); i++) { for (j=0; j<(njogadores-1); j++) { if (rankvitorias[j]<rankvitorias[j+1]) { pontos=rankpts[j]; rankpts[j]=rankpts[j+1]; rankpts[j+1]=pontos; pontos=rankvitorias[j]; rankvitorias[j]=rankvitorias[j+1]; rankvitorias[j+1]=pontos; pontos=rankpartidas[j]; rankpartidas[j]=rankpartidas[j+1]; rankpartidas[j+1]=pontos; strcpy(&nm,&ranknomes[j]); strcpy(&ranknomes[j],&ranknomes[j+1]); strcpy(&ranknomes[j+1],&nm); } else { if (rankvitorias[j]==rankvitorias[j+1]) { if (rankpts[j]<rankpts[j+1]) { pontos=rankpts[j]; rankpts[j]=rankpts[j+1]; rankpts[j+1]=pontos; pontos=rankvitorias[j]; rankvitorias[j]=rankvitorias[j+1]; rankvitorias[j+1]=pontos; pontos=rankpartidas[j]; rankpartidas[j]=rankpartidas[j+1]; rankpartidas[j+1]=pontos; strcpy(&nm,&ranknomes[j]); strcpy(&ranknomes[j],&ranknomes[j+1]); strcpy(&ranknomes[j+1],&nm); } else { if (rankpts[j]==rankpts[j+1]) { if (rankpartidas[j]<rankpartidas[j+1]) { pontos=rankpts[j]; rankpts[j]=rankpts[j+1]; rankpts[j+1]=pontos; pontos=rankvitorias[j]; rankvitorias[j]=rankvitorias[j+1]; rankvitorias[j+1]=pontos; pontos=rankpartidas[j]; rankpartidas[j]=rankpartidas[j+1]; rankpartidas[j+1]=pontos; strcpy(&nm,&ranknomes[j]); strcpy(&ranknomes[j],&ranknomes[j+1]); strcpy(&ranknomes[j+1],&nm); } } } } } } } /*recria o arquivo para escrita*/ if ((arq=fopen("Rank.txt","w"))==NULL) { printf("\n\aErro de leitura.\nO arquivo 'Rank.Txt' pode estar corrompido ou danificado.\n"); } else { /*escreve os dados da lista*/ for (i=0; i<100; i++) { fprintf(arq,"%s %d %d %d\n",ranknomes[i],rankpartidas[i],rankvitorias[i],rankpts[i]); } } /*fecha o arquivo*/ fclose(arq); } void pcpensa(void) { int i, valormao; valormao=0; for (i=0; i<(3-turno); i++) valormao=valormao+cartas[mao[0][i]]; qly=3*valormao; if (turno==0) { if (inicial==1) { for (i=0; i<3; i++) if (cartas[mao[0][i]]>cartas[mesa[1][0]]) qly=qly+5; if (qly==(3*valormao)) { qly=25+sorteia(50); /*Facão*/ } } } if (turno==1) { if (pntsrod[0]==1) { qly=5*valormao; if (cartas[mesa[0][1]]==-1) { if (cartas[mao[0][0]]>=10) qly=60; if (cartas[mao[9][1]]>=8) qly=qly+20; } else { if (cartas[mesa[0][1]]>=11) qly=65; if (cartas[mao[0][1]]>=9) qly=90; } if (cartas[mao[0][0]]==13) qly=100; } if (pntsrod[1]==1) { if (cartas[mao[0][0]]<cartas[mesa[1][1]]) { qly=30+sorteia(50); /*Facão*/ } else { if (cartas[mao[0][1]]<cartas[mesa[1][1]]) { qly=20+sorteia(50); /*Facão*/ } else { qly=4*valormao+sorteado; } } } else { qly=6*cartas[mao[0][0]]+2*cartas[mao[0][1]]+sorteado; } } if (turno==2) { if (inicial==1) { if (cartas[mao[0][0]]>cartas[mesa[1][2]]) { qly=100; } else { if ((cartas[mao[0][0]]==cartas[mesa[1][2]])&&(cartas[mesa[0][0]]>cartas[mesa[1][0]])) { qly=100; } else { qly=30+sorteia(60); /*Facão*/ } } } if (cartas[mao[0][0]]==13) qly=100; } } void pctruca(void) { int num, i; char tipo[40]; pcpensa(); if (((pnts[0]<11)&&(pnts[1]<11))&&(((last==1)||(last==2))&&(estado<4))) { if (qly>(50+sorteia(20)+estado*8)) { printf("\nPc pediu %s.\n>>",status[estado+1]); esp=getch(); printf("\nVirada: %c %c\n",carta(virada),toon(virada)); printf("\nSua m\Æo \`:\n"); if (mesa[1][turno]==-1) { for (i=0; i<(3-turno); i++) { tipo[0]='{FONTE}'; if (cartas[mao[1][i]]==13) strcpy(&tipo,&g); if (cartas[mao[1][i]]==12) strcpy(&tipo,&c); if (cartas[mao[1][i]]==11) strcpy(&tipo,&e); if (cartas[mao[1][i]]==10) strcpy(&tipo,&m); printf("%c %c %s\n",carta(mao[1][i]),toon(mao[1][i]),tipo); } } else { for (i=0; i<(2-turno); i++) { tipo[0]='{FONTE}'; if (cartas[mao[1][i]]==13) strcpy(&tipo,&g); if (cartas[mao[1][i]]==12) strcpy(&tipo,&c); if (cartas[mao[1][i]]==11) strcpy(&tipo,&e); if (cartas[mao[1][i]]==10) strcpy(&tipo,&m); printf("%c %c %s\n",carta(mao[1][i]),toon(mao[1][i]),tipo); } } printf("Digite:\n1 - Aceitar;\n2 - Correr\n"); if (estado<3) printf("3 - Pedir '%s'\n",status[estado+2]); scanf("%d",&num); if (num==1) { estado++; last=0; } if (num==2) { continua=FALSE; pntsrod[0]=3; } if (num==3) { last=0; estado++; local=0; jgtruca(); } } } } void pcordena(void) { int i, j, wx; /*Ordena as cartas do pc no primeiro turno*/ if (turno==0) { for (i=0; i<2; i++) for (j=0; j<2; j++) if (cartas[mao[0][j]]<cartas[mao[0][j+1]]) { wx=mao[0][j]; mao[0][j]=mao[0][j+1]; mao[0][j+1]=wx; } } } void jgtruca(void) { char car; char tipo[40]; int cont, i, num; if (((pnts[0]<11)&&(pnts[1]<11))&&(((last==0)||(last==2))&&(estado<4))) { cont=TRUE; if (local!=0) { printf("\nVirada: %c %c",carta(virada),toon(virada)); printf("\nSua m\Æo \`:\n"); for (i=0; i<(3-turno); i++) { tipo[0]='{FONTE}'; if (cartas[mao[1][i]]==13) strcpy(&tipo,&g); if (cartas[mao[1][i]]==12) strcpy(&tipo,&c); if (cartas[mao[1][i]]==11) strcpy(&tipo,&e); if (cartas[mao[1][i]]==10) strcpy(&tipo,&m); printf("%c %c %s\n",carta(mao[1][i]),toon(mao[1][i]),tipo); } num=0; while ((num!=1)&&(num!=2)) { printf("\nVoc\^ quer pedir %s?\n",status[estado+1]); printf("1 - Sim\n"); printf("2 - N\Æo\n"); scanf("%d",&num); } if (num==2) cont=FALSE; } if (cont==TRUE) { pcpensa(); if ((qly>(sorteia(10)+(estado+1)*8+40))&&((qly<(sorteia(10)+(estado+2)*8+40)))||(estado>2)) { estado++; last=1; printf("\nPc aceitou!\n>>"); esp=getch(); } else { if ((qly>(sorteia(10)+(estado+2)*8+40))&&(estado<3)) { estado++; last=1; printf("\nPc aceitou!\n>>"); esp=getch(); pctruca(); } else { continua=FALSE; pntsrod[1]=3; printf("\nPc correu!\n>>"); esp=getch(); } } } } }
Manipulação de registros em arquivos utilizando índices
Exemplo de manipulação de arquivos
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Criando uma VPC na AWS via CLI
Tem como instalar o gerenciador AMD Adrenalin no Ubuntu 24.04? (15)
Tenho dois Link's ( IP VÁLIDOS ), estou tentando fazer o failover... (0)
Pendrive não formata de jeito nenhum (4)