Segunda-feira, 26 de Novembro de 2007

Jogo do Galo em C

#include <stdio.h>
#include <conio.h>
char tabuleiro[10];
int jogada,sair;
void main()
{

    tabuleiro[1]='1';
    tabuleiro[2]='2';
    tabuleiro[3]='3';
    tabuleiro[4]='4';
    tabuleiro[5]='5';
    tabuleiro[6]='6';
    tabuleiro[7]='7';
    tabuleiro[8]='8';
    tabuleiro[9]='9';
    sair=0;
        while (sair !=0)
            {
                printf ("%c %c %c\n",tabuleiro[1],tabuleiro[2],tabuleiro[3]);
                printf ("%c %c %c\n",tabuleiro[4],tabuleiro[5],tabuleiro[6]);
                printf ("%c %c %c\n",tabuleiro[7],tabuleiro[8],tabuleiro[9]);
                printf ("jogador 1, introduza a jogada\n");
                scanf ("%d",&jogada);
                tabuleiro[jogada]='x';
                if (tabuleiro[1] && tabuleiro[2] && tabuleiro[3]=='x') || (tabuleiro[4] && tabuleiro[5] && tabuleiro[6]=='x') || (tabuleiro[7] && tabuleiro[8] && tabuleiro[9]=='x')
                    {
                        printf ("O jogador 1 venceu!\n");
                        sair=1;
                    }
                else if (tabuleiro[1] && tabuleiro[4] && tabuleiro[7]=='x') || (tabuleiro[2] && tabuleiro[5] && tabuleiro[7]=='x') || (tabuleiro[3] && tabuleiro[6] && tabuleiro[9]=='x')
                    {
                        printf ("o jogador 1 venceu!\n");
                        sair=1;
                    }
                else if (tabuleiro[1] && tabuleiro[4] && tabuleiro[7]=='x') || (tabuleiro[2] && tabuleiro[5] && tabuleiro[7]=='x') || (tabuleiro[3] && tabuleiro[6] && tabuleiro[9]=='x')
                    {
                        printf ("o jogador 1 venceu!\n");
                        sair=1;
                    }


                //jogador 2

                printf ("%c %c %c\n",tabuleiro[1],tabuleiro[2],tabuleiro[3]);
                printf ("%c %c %c\n",tabuleiro[4],tabuleiro[5],tabuleiro[6]);
                printf ("%c %c %c\n",tabuleiro[7],tabuleiro[8],tabuleiro[9]);
                printf ("jogador 2, introduza a jogada\n");
                scanf ("%d",&jogada);
                tabuleiro[jogada]='o';
                if (tabuleiro[1] && tabuleiro[2] && tabuleiro[3]=='o') || (tabuleiro[4] && tabuleiro[5] && tabuleiro[6]=='o') || (tabuleiro[7] && tabuleiro[8] && tabuleiro[9]=='o')
                    {
                        printf ("O jogador 2 venceu!\n");
                        sair=1;
                    }
                else if (tabuleiro[1] && tabuleiro[4] && tabuleiro[7]=='o') || (tabuleiro[2] && tabuleiro[5] && tabuleiro[7]=='o') || (tabuleiro[3] && tabuleiro[6] && tabuleiro[9]=='o')
                    {
                        printf ("o jogador 2 venceu!\n");
                        sair=1;
                    }
                else if (tabuleiro[1] && tabuleiro[4] && tabuleiro[7]=='o') || (tabuleiro[2] && tabuleiro[5] && tabuleiro[7]=='o') || (tabuleiro[3] && tabuleiro[6] && tabuleiro[9]=='o')
                    {
                        printf ("o jogador 2 venceu!\n");
                        sair=1;
                    };


            }
publicado por fd às 02:18
link do post | comentar | favorito
|
10 comentários:
De kid a 17 de Junho de 2010 às 14:31
A condição de ganhar não funciona bem


De O Programador a 26 de Novembro de 2010 às 12:46
#include
[Error: Irreparable invalid markup ('<stdio.h>') in entry. Owner must fix manually. Raw contents below.]

#include <stdio.h>
#include <conio.h>
char tabuleiro[10];
int jogada,sair,nj;
void main()
{

tabuleiro[1]='1';
tabuleiro[2]='2';
tabuleiro[3]='3';
tabuleiro[4]='4';
tabuleiro[5]='5';
tabuleiro[6]='6';
tabuleiro[7]='7';
tabuleiro[8]='8';
tabuleiro[9]='9';
sair=0;
nj=0;

while (sair == 0)
{
printf ("%c %c %c\n",tabuleiro[1],tabuleiro[2],tabuleiro[3]);
printf ("%c %c %c\n",tabuleiro[4],tabuleiro[5],tabuleiro[6]);
printf ("%c %c %c\n",tabuleiro[7],tabuleiro[8],tabuleiro[9]);
printf ("jogador 1, introduza a jogada\n");
scanf ("%d",&jogada);
tabuleiro[jogada]='x';nj++;
if ((tabuleiro[1]=='x' && tabuleiro[2]=='x' && tabuleiro[3]=='x') || (tabuleiro[4]=='x' && tabuleiro[5]=='x' && tabuleiro[6]=='x') || (tabuleiro[7]=='x' && tabuleiro[8]=='x' && tabuleiro[9]=='x'))
{
printf ("O jogador 1 venceu!\n");
sair=1;
}
else if ((tabuleiro[1]=='x' && tabuleiro[4]=='x' && tabuleiro[7]=='x') || (tabuleiro[2]=='x' && tabuleiro[5]=='x' && tabuleiro[8]=='x') || (tabuleiro[3]=='x' && tabuleiro[6]=='x' && tabuleiro[9]=='x'))
{
printf ("o jogador 1 venceu!\n");
sair=1;
}
else if ((tabuleiro[1]=='x' && tabuleiro[5]=='x' && tabuleiro[9]=='x') || (tabuleiro[2]=='x' && tabuleiro[5]=='x' && tabuleiro[8]=='x') || (tabuleiro[3]=='x' && tabuleiro[5]=='x' && tabuleiro[7]=='x'))
{
printf ("o jogador 1 venceu!\n");
sair=1;
}

if(nj==9)
{
printf("empate");
printf("\n");
sair=1;}
//jogador 2

else
{
printf ("%c %c %c\n",tabuleiro[1],tabuleiro[2],tabuleiro[3]);
printf ("%c %c %c\n",tabuleiro[4],tabuleiro[5],tabuleiro[6]);
printf ("%c %c %c\n",tabuleiro[7],tabuleiro[8],tabuleiro[9]);
printf ("jogador 2, introduza a jogada\n");
scanf ("%d",&jogada);nj++;
tabuleiro[jogada]='o';
if ((tabuleiro[1]=='o' && tabuleiro[2]=='o' && tabuleiro[3]=='o') || (tabuleiro[4]=='o' && tabuleiro[5]=='o' && tabuleiro[6]=='o') || (tabuleiro[7]=='o' && tabuleiro[8]=='o' && tabuleiro[9]=='o'))
{
printf ("O jogador 2 venceu!\n");
sair=1;
}
else if ((tabuleiro[1]=='o' && tabuleiro[4]=='o' && tabuleiro[7]=='o') || (tabuleiro[2]=='o' && tabuleiro[5]=='o' && tabuleiro[8]=='o') || (tabuleiro[3]=='o' && tabuleiro[6]=='o' && tabuleiro[9]=='o'))
{
printf ("o jogador 2 venceu!\n");
sair=1;
}
else if ((tabuleiro[1]=='o' && tabuleiro[5]=='o' && tabuleiro[9]=='o') || (tabuleiro[2]=='o' && tabuleiro[5]=='o' && tabuleiro[8]=='o') || (tabuleiro[3]=='o' && tabuleiro[5]=='o'&& tabuleiro[7]=='o'))
{
printf ("o jogador 2 venceu!\n");
sair=1;

}


}

}
}

Este ao menos funciona! Aprende.


De renatofreitas91 a 1 de Dezembro de 2010 às 21:20
o jogo está bom! Mas no meu trabalho de programação tenho que "ensinar" a CPU a jogar ;)


De Um Programador Amigo! a 3 de Dezembro de 2010 às 11:55
E tas a pensar fazer isso como? Com algoritmos evolutivos?


De renatofreitas91 a 11 de Dezembro de 2010 às 12:30
mais ou menos assim:


#include "stdafx.h"

void main(){
char v[DIM][DIM],simb;
int i,j,jog,j1[DIM][DIM],lin,col,t,jo;
j=0;
jo=0;
t=0;
jog=0;
lin=0;
col=0;
printf("Insira o simbolo com que pretende jogar:\n");
flushall();
scanf("%c",&simb);
srand(time(NULL));
iniciarjogo(v);
if(rand()%2==1){
v[1][1]='X';
}
mostrarjogo(v);
do{
printf("Onde pretende jogar?\n");
flushall();
scanf("%d",&jog);
realizacaodajogada(v,jog,simb,lin,col);
system("cls");
jogadadocomputador(v,simb);
mostrarjogo(v);
jo=0;
t=t+1;
}
while(t<4);
}

void iniciarjogo(char v[DIM][DIM]){
int i,j,h;
h=0;
for(i=0;i
[Error: Irreparable invalid markup ('<dim;i++){>') in entry. Owner must fix manually. Raw contents below.]

mais ou menos assim:


#include "stdafx.h"

void main(){
char v[DIM][DIM],simb;
int i,j,jog,j1[DIM][DIM],lin,col,t,jo;
j=0;
jo=0;
t=0;
jog=0;
lin=0;
col=0;
printf("Insira o simbolo com que pretende jogar:\n");
flushall();
scanf("%c",&simb);
srand(time(NULL));
iniciarjogo(v);
if(rand()%2==1){
v[1][1]='X';
}
mostrarjogo(v);
do{
printf("Onde pretende jogar?\n");
flushall();
scanf("%d",&jog);
realizacaodajogada(v,jog,simb,lin,col);
system("cls");
jogadadocomputador(v,simb);
mostrarjogo(v);
jo=0;
t=t+1;
}
while(t<4);
}

void iniciarjogo(char v[DIM][DIM]){
int i,j,h;
h=0;
for(i=0;i<DIM;i++){
for(j=0;j<DIM;j++){
h=h+1;
v[i][j]=h+'0';
}
}

}

void mostrarjogo(char v[DIM][DIM]){
int i,j;
for(i=0;i<DIM;i++){
for(j=0;j<DIM;j++){
if(j!=2){
printf(" %c |",v[i][j]);
}
else{
printf(" %c ",v[i][j]);
}
}
if(i==2){
}
else{
printf("\n__________\n");
}
}
printf("\n\n");
}


void realizacaodajogada(char v[DIM][DIM],int jog,char simb,int lin, int col){

int i,j;
if(jog<=3){
col=jog-1;
lin=0;
}
else{
if(jog<=6){
col=jog-4;
lin=1;
}
else{
if(jog<=9){
col=jog-7;
lin=2;
}
}
}
v[lin][col]=simb;
}


void jogadadocomputador(char v[DIM][DIM],char simb){
int contaLins[DIM],contaCols[DIM],i,encontraD=0,j;

for(i=0;i<DIM;i++){
contaCols[i]=0;
contaLins[i]=0;
}
encontraLins(v,simb,contaLins);
for(i=0;i<DIM;i++){
if(contaLins[i]==2){
for(j=0;j<DIM;j++){
if((v[i][j]!=simb)&&(v[i][j]!='X')){
v[i][j]='X';
return;
}
}
}
}
encontraCols(v,simb,contaCols);
for(j=0;j<DIM;j++){
if(contaCols[j]==2){
for(i=0;i<DIM;i++){
if((v[i][j]!=simb)&&(v[i][j]!='X')){
v[i][j]='X';
return;
}
}
}
}
encontraD=encontraDiag(v,simb);
int g=2;
int h=0;
while(((j<DIM)&&(i<DIM))&&((g<DIM)&&(h>=0))){
i=0;
j=0;
if(encontraD==3){
if((v[i][j]!=simb)&&(v[i][j]!='X')){
v[i][j]='X';
return;
}
i++;
j++;
}
else{
if(encontraD==1){
if((v[g][h]!=simb)&&(v[g][h]!='X')){
v[g][h]='X';
return;
}
g++;
h--;
}
}
}
}
void encontraLins(char v[DIM][DIM],char simb,int contal[DIM]){
int i,j;


for(i=0;i<DIM;i++){
for(j=0;j<DIM;j++){
if(v[i][j]==simb)
contal[i]++;
}
}
}

void encontraCols(char v[DIM][DIM],char simb,int contaCols[DIM]){
int i,j;
for(i=0;i<DIM;i++){
for(j=0;j<DIM;j++){
if(v[j][i]==simb)
contaCols[i]++;
}
}
}

int encontraDiag(char v[DIM][DIM],char simb){
int j=0;
int i=0;
int g=0;
int h=2;
int conta=0;
int conta1=0;
while(((j<DIM)&&(i<DIM))&&((g<DIM)&&(h>=0))){
if(v[i][j]==simb){
conta=conta+1;
j++;
i++;
if(conta==2){
return(conta+1);
}
}
else{
if(v[g][h]==simb){
conta1=conta1+1;
g++;
h--;
if(conta==2){
return(conta1-1);
}
}
}
}
}


De Marcos a 6 de Dezembro de 2010 às 16:19
Nao dava pa fazer com um ciclo For e uma Matriz 3x3? em vez do while?


De renatofreitas91 a 11 de Dezembro de 2010 às 12:33
são alguns for's vê o meu comentário o código que introduzi ainda não está completo


De renatofreitas91 a 6 de Janeiro de 2011 às 23:05
Dava sim só que eu tenho mais gosto pelos while's...

vê isto:

for(Inicialização;condição;tipo de incremento)

inicialização
while(condição)
tipo de incremento, ou seja é igual
é possível até fazeres com while's o que fazes por exemplo ao iniciar um vector de duas dimensões!
int h=0, i, j;
ex: for(int i=0;i<DIM;i++){ for(j=0;j<DIM;j++){ h++; v[i][j]=h; } } Com while: h=0; i=0; while(i<DIM){ i++ j=0; while(j<DIM){ j++; h++; v[i][j]=h; } }


De renatofreitas91 a 6 de Janeiro de 2011 às 22:52
saquem a minha versão final deste jogo feita por mim em C ;) Testem-na e dêem-me a vossa opinião!

Com executável: https://dc307.4shared.com/download/vE8aIuZb/jogo_do_galo__por_renatofreita.zip

Trabalho completo: https://dc261.4shared.com/download/3bZP_B34/Jogo_do_Galo_por_Renato_Freita.zip


De LOL a 16 de Junho de 2011 às 11:47
FICHEIRO EXE LOL..


Comentar post

.mais sobre mim

.pesquisar

 

.Novembro 2007

Dom
Seg
Ter
Qua
Qui
Sex
Sab

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
27
28
29
30


.posts recentes

. Jogo do Galo em C

.arquivos

. Novembro 2007

blogs SAPO

.subscrever feeds