Foros del Web » Programación para mayores de 30 ;) » C/C++ »

codigo c++ de juego (PROYECTO

Estas en el tema de codigo c++ de juego (PROYECTO en el foro de C/C++ en Foros del Web. Buenas dias amigos y amigas! les informo que he terminado un proyecto y se los quiero compartir, tambien quisiera si lo aprovechan me ayuden a ...
  #1 (permalink)  
Antiguo 02/12/2012, 11:21
 
Fecha de Ingreso: diciembre-2012
Mensajes: 7
Antigüedad: 11 años, 5 meses
Puntos: 0
codigo c++ de juego (PROYECTO

Buenas dias amigos y amigas! les informo que he terminado un proyecto y se los quiero compartir, tambien quisiera si lo aprovechan me ayuden a poner una tabla de score para saber cuantos "peones" tiene cada jugador en cada jugada o al final de juego


printf("\n\t "); // muestra los numéros des columnas
for(int i=0;i<8;i++)
printf("%d ",i+1);
printf("\n");

#include<stdio.h>
#include<stdlib.h>
#include<time.h> //para inicializar srand(), rand()
#include <string.h>
#include <conio.h>

//'fonction macro' m(): conversion mayuscula a minusscula //
#define menos(c) ((c>='A')&&(c<='Z')? c+='a'-'A':c)


// clase principal : juego
struct juego
{
//datos
int * tablero; // tablero dinamico de enteros 8,8

//Funciones
// asignación de las 64 casillas del tablero
juego() // creador
{ tablero=(int*)malloc(64*sizeof(int));}
void start();
void muestra();
void jugador1(bool); // fase de juego (blanco ou negro)
bool posible(bool); // comprueba el juego sea posible, 1= blancoo, 0=negro
bool jugada(bool,int,int); // jugada de jugador
int jugada_PC(bool); // determina jugada de computadora
int ganador(); // quien tiene mas *
};
/////////////////////////////////////////////////////////////////////////

//llenando el tablero al principio
void juego::start()// tablero de pantalla inicial
{
for(int i=0;i<64;i++) // espacios en blanco
*(tablero+i)=0;

*(tablero+27)=1; /// llena las 4 cajas del centro
*(tablero+28)=2;
*(tablero+35)=2;
*(tablero+36)=1;
this->muestra();
}

void juego::muestra() // vista de tablero
{ //Caracteres *de dibujo*
char ver=(char) 179, hor=(char)196;
char hg=(char) 218, h=(char)194, cr=(char)197, hd=(char)191;
char g=(char)195, d=(char)180;
char bg=(char) 192, b=(char) 193, bd=(char) 217;
char hhgg=(char)201,hh=(char)205, hhdd=(char)187;
char vv=(char)186;
char bbgg=(char)200,bbdd=(char)188;
char bl=(char)177, nr=(char)219;

printf("\n\t "); // muestra los numéros des columnas
for(int i=0;i<8;i++)
printf("%d ",i+1);
printf("\n");
//parte superior de tablero
printf("\t%c",hhgg);
for(int j=0;j<27;j++)
printf("%c",hh);
printf("%c\n\t",hhdd);
printf("%c %c%c",vv,hg,hor);
for(int k=0;k<7;k++)
printf("%c%c%c",hor,h,hor);
printf("%c%c %c\n",hor,hd,vv);//fin de la parte superior de tablero
// relleno de tablero
for(int l=0;l<8;l++)
{
printf(" %c\t%c %c",'a'+l,vv,ver);// muestra el comienzo de cada fila
//llenado de fila
for(int c=0;c<8;c++)
{
switch (*(tablero+8*l+c))
{
case 0:
{printf(" %c",ver);break;}
case 1:
{printf("%c%c%c",bl,bl,ver);break;}
case 2:
{printf("%c%c%c",nr,nr,ver);break;}
default: break;
}
}
printf(" %c\n",vv); // va a la fila
if (l!=7) //muestra fila transversal
{
printf("\t%c %c%c",vv,g,hor);
for(int j=0;j<7;j++)
printf("%c%c%c",hor,cr,hor);
printf("%c%c %c\n",hor,d,vv);
}
}
//parte baja del tablero
printf("\t%c %c%c",vv,bg,hor);
for(int t=0;t<7;t++)
printf("%c%c%c",hor,b,hor);
printf("%c%c %c\n",hor,bd,vv);
printf("\t%c",bbgg);
for(int s=0;s<27;s++)
printf("%c",hh);
printf("%c\n\t",bbdd);
//fin de la parte baja del tablero
}

int juego::ganador() // devuelve peon blanco- peon negro ////////////////////
{
int diferente=0;
for(int i=0;i<64;i++)
switch (*(tablero+i))
{
case 1: {diferente++; break;}
case 2: {diferente--; break;}
default: {break;}
}
return diferente;
}
//jugador pone un token /////
bool juego::jugada(bool blanco,int i, int j)
{
int pion=8*i+j; //i=fila; j=columna
bool ok=false; //por default : fracasa

// si la caja no esta vacia
if (*(tablero+pion)!=0)
return false; //salir con fracaso

// teniendo en cuenta a jugador1
int yo, el; //mi color & su color
if (blanco)
{
yo=1; //yo juego blanco
el=2; //el juega negro
}
else
{
yo=2; //el juega negro
el=1; //el juega blanco
}

//A la derecha////////////////
int c=j+1;
while((*(tablero+8*i+c)==el) && (c<7))
c++;
if ((*(tablero+8*i+c)==yo) && (c>j+1))
{
ok=true;
for (int k=j;k<c;k++)
*(tablero+8*i+k)=yo;
}
//////////////////////////

//A izquierda////////////////
c=j-1;
while ((*(tablero+8*i+c)==el) && (c>0))
c--;
if ((*(tablero+8*i+c)==yo) && (c<j-1))
{
ok=true;
for (int k2=j;k2>c;k2--)
*(tablero+8*i+k2)=yo;
}
//////////////////////////

//abajo//////////////////
int l=i+1;
while ((*(tablero+8*l+j)==el) && (l<7))
l++;
if ((*(tablero+8*l+j)==yo) && (l>i+1))
{
ok=true;
for (int k=i;k<l;k++)
*(tablero+8*k+j)=yo;
}


//arriba/////////////////
l=i-1;
while ((*(tablero+8*l+j)==el) && (l>0))
l--;
if ((*(tablero+8*l+j)==yo) && (l<i-1))
{
ok=true;
for (int k=i;k>l;k--)
*(tablero+8*k+j)=yo;
}


//parte superior izquierda////////
int ld1=i-1;
int cd1=j-1;
while ((*(tablero+8*ld1+cd1)==el) && (ld1>0) && (cd1>0))
{
cd1--;
ld1--;
}
if ((*(tablero+8*ld1+cd1)==yo) && (cd1<j-1))
{
ok=true;
for(int k=8*i+j;k>8*ld1+cd1;k-=9)
*(tablero+k)=yo;
}

//parte superior derecha///////
int ld2=i-1;
int cd2=j+1;
while ((*(tablero+8*ld2+cd2)==el) && (ld2>0) && (cd2<7))
{
cd2++;
ld2--;
}
if ((*(tablero+8*ld2+cd2)==yo) && (cd2>j+1))
{
ok=true;
for(int k=8*i+j;k>8*ld2+cd2;k-=7)
*(tablero+k)=yo;
}

//parta inferior izquierda//////////
int ld3=i+1;
int cd3=j-1;
while ((*(tablero+8*ld3+cd3)==el) && (ld3<7) && (cd3>0))
{
cd3--;
ld3++;
}
if ((*(tablero+8*ld3+cd3)==yo) && (ld3>i+1))
{
ok=true;
for(int k=8*i+j;k<8*ld3+cd3;k+=7)
*(tablero+k)=yo;
}

// parte superior derecha //
int ld4=i+1;
int cd4=j+1;
while ((*(tablero+8*ld4+cd4)==el) && (ld4<7) && (cd4<7))
{
cd4++;
ld4++;
}
if ((*(tablero+8*ld4+cd4)==yo) && (ld4>i+1))
{
ok=true;
for(int k=8*i+j;k<8*ld4+cd4;k+=9)
*(tablero+k)=yo;
}


return ok;
}

Última edición por bigguns; 02/12/2012 a las 11:31
  #2 (permalink)  
Antiguo 02/12/2012, 14:03
Avatar de L3m0n  
Fecha de Ingreso: diciembre-2011
Mensajes: 219
Antigüedad: 12 años, 4 meses
Puntos: 46
Respuesta: codigo c++ de juego (PROYECTO

Bueno te doy algunos consejos, acostumbrate a abusar de los comentarios, si, abusar, porque el codigo que has puesto es bastante ilegible(no te lo tomes a mal) así que te recomendaría que pusieras muchos mas comentarios para cada cosa porque alguien externo que lo quiera leer va a sufrir varios dolores de cabeza xDD

PD: No hay mejor manera para mejorar la escritura de codigo que estar en algun proyecto de 2 o mas personas, donde si pones codigo que no se entienda lo mas probable es que te den alguna colleja xD

Saludos.
  #3 (permalink)  
Antiguo 02/12/2012, 16:47
 
Fecha de Ingreso: diciembre-2012
Mensajes: 7
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: codigo c++ de juego (PROYECTO

gracias!! jajaja =P de casualidad sabrias como agregarle uno para mantener un score? es un Otelo =P
  #4 (permalink)  
Antiguo 03/12/2012, 18:34
Avatar de ZeKi  
Fecha de Ingreso: noviembre-2012
Ubicación: Jaén
Mensajes: 61
Antigüedad: 11 años, 5 meses
Puntos: 6
Respuesta: codigo c++ de juego (PROYECTO

Cita:
Iniciado por L3m0n Ver Mensaje
Bueno te doy algunos consejos, acostumbrate a abusar de los comentarios, si, abusar, porque el codigo que has puesto es bastante ilegible(no te lo tomes a mal) así que te recomendaría que pusieras muchos mas comentarios para cada cosa porque alguien externo que lo quiera leer va a sufrir varios dolores de cabeza xDD

PD: No hay mejor manera para mejorar la escritura de codigo que estar en algun proyecto de 2 o mas personas, donde si pones codigo que no se entienda lo mas probable es que te den alguna colleja xD

Saludos.
El mejor codigo es el que no necesita comentarios. Más que abusar de ellos, lo que debe hacer es un código auto-documentado en el que hagan falta los mínimos comentarios posibles para entenderlo.
  #5 (permalink)  
Antiguo 04/12/2012, 09:12
Avatar de L3m0n  
Fecha de Ingreso: diciembre-2011
Mensajes: 219
Antigüedad: 12 años, 4 meses
Puntos: 46
Respuesta: codigo c++ de juego (PROYECTO

Cita:
Iniciado por ZeKi Ver Mensaje
El mejor codigo es el que no necesita comentarios. Más que abusar de ellos, lo que debe hacer es un código auto-documentado en el que hagan falta los mínimos comentarios posibles para entenderlo.
Hombre, no se si eso es del todo cierto, ya que si a cualquier persona le hacen leer un codigo y ese codigo no tiene ningun comentario, es algo que por muy bien que este escrito, sera mas dificil de leer que algo que este comentado decentemente.

Lo de abusar de los comentarios lo decia como consejo inicial, evidentemente luego hay que acostumbrarse a hacer comentarios cortos y simples (por ejemplo un comentario que diga lo que hace una funcion o algo por el estilo).


Saludos.

Etiquetas: funcion, int, juego, proyecto, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:31.