| Ver tema anterior :: Ver siguiente tema | | Autor | Mensaje |
|---|
polly
Registrado: 19 Jul 2007 Mensajes: 618
| Publicado: 01/09/2008 3:11 am | | | Título: Proyecto: Batalla Naval |
| 2º Proyecto
Batalla Naval (Hundir la flota)
Especificaciones
http://es.wikipedia.org/wiki/Batalla_naval_(juego) Los aspectos que no se detallen en la pagina (numero de tiros, numero de embarcaciones, etc) quedan a criterio de cada uno.
Otros El juego se realizara en C o C++ utilizando librerias estandar. No se usaran interfaces graficas, todo a modo de consola Los ficheros se colgaran aqui como siempre
Fechas Fecha inicio: Lunes 1 septiembre Fecha fin : Domingo 7 septiembre
(Las fechas estan dispuestas a cambios si se requiere)
S2 _________________ enrmarc |
| | Volver arriba | |  | v4r3t
Registrado: 06 Mar 2007 Mensajes: 103
| Publicado: 01/09/2008 6:50 am | | | Título: |
| ¿Cada uno por separado? _________________ -=v4r3t=- |
| | Volver arriba | |  | WaRc3L
Registrado: 12 Jun 2008 Mensajes: 199 Ubicación: en el registro de la CPU
| Publicado: 01/09/2008 6:57 am | | | Título: |
| | v4r3t escribió: | | ¿Cada uno por separado? |
No entiendo.. a que te refieres? _________________ ToDos PoDeMoS CoMpaRTiR La Luz De La BoMBiTa! |
| | Volver arriba | |  | | v4r3t
Registrado: 06 Mar 2007 Mensajes: 103
| Publicado: 01/09/2008 7:09 am | | | Título: |
| Nada, pensé que voleríamos a hacer un proyecto en conjunto. _________________ -=v4r3t=- |
| | Volver arriba | |  | polly
Registrado: 19 Jul 2007 Mensajes: 618
| Publicado: 01/09/2008 7:25 am | | | Título: |
| Este es por separado si. _________________ enrmarc |
| | Volver arriba | |  | polly
Registrado: 19 Jul 2007 Mensajes: 618
| Publicado: 01/09/2008 9:50 am | | | Título: |
| Otra cosa, el juego puede ser implementado para 1 o 2 jugadores , es decir, para 1 jugador contra la maquina (por turnos) o un jugador contra otro jugador (por turnos) respecetivamente.
S2 _________________ enrmarc |
| | Volver arriba | |  | | WaRc3L
Registrado: 12 Jun 2008 Mensajes: 199 Ubicación: en el registro de la CPU
| Publicado: 01/09/2008 10:02 am | | | Título: |
| No entiendo, el usuario ( jugador ) tendra que escoger si luchar contra la maquina o contra otro jugador?
Un resumen: El jugador tendra escoger el modo en jugar?
Saludos! _________________ ToDos PoDeMoS CoMpaRTiR La Luz De La BoMBiTa! |
| | Volver arriba | |  | polly
Registrado: 19 Jul 2007 Mensajes: 618
| Publicado: 01/09/2008 2:48 pm | | | Título: |
| No, el juego ya estara implementado para 1 solo jugador (humano vs maquina) o para 2 (humano vs humano), como querais.
Yo personalmente voy a hacerlo para un solo jugador
S2 _________________ enrmarc |
| | Volver arriba | |  | eagleoneraptor

Registrado: 20 May 2008 Mensajes: 187 Ubicación: Buenos Aires(Argentina)
| Publicado: 04/09/2008 10:25 am | | | Título: |
| Si no les molesta, aquí esta mi código, avisen si encuentran errores, es para 2 jugadores:
| Código: | //Batalla naval por EagleOneRaptor //Para MiniProyectos de ElRinconDelC /* Modo: 2 Jugadores Lenguaje: C++ Compilador: Dev-C++ 4.9.9.2 Plataforma Compatible: Windows y Linux (Espero que funque bien en Linux XD) */ //02/04/2008, 15:00 - 02/04/2008, 18:00
#include <iostream> #include <iomanip> using namespace std;
#define FLOTA_TOTAL 17 #ifdef WIN32 #define scrclr() system("cls"); #endif #ifdef LINUX #define scrclr() system("clear"); #endif
//Devuelve el nombre de una barcaza const char *NombreBarco(int num); //Devuelve la cantidad de celdas de una barcaza int Cantidad(int num); //Devuelve el oponente int Oponente(int num); //Obtiene una celda del teclado siempre y cuando este bien escrita bool SeleccionarCelda(int *x,int *y); //Selecciona Horizontal(true) o Vertical(false) bool SeleccionarPosicion();
//Clase para cada jugador class CJugador{ private: bool CeldaDisponible(int x,int y); public: int disparos[10][10]; //Valores: //0: no se disparo en ese casillero //1: agua //2: tocado int flota[10][10]; //Valores: //0: no hay nada //1: portaviones //2: acorazado //3: crucero //4: submarino //5: destructor int barcazas[5]; CJugador() { this->Inicializar(); } //Inicializa las variables void Inicializar(); //Dibuja el tablero Flota y el de Disparos si ConDisparos==true void DibujarTablero(bool ConDisparos); void UbicarBarcazas(); void Disparar(int x,int y,CJugador *oponente); };
void CJugador::Inicializar() { int i,j; //Tableros iguales a cero for(i=0;i<10;i++){ for(j=0;j<10;j++){ disparos[i][j]=0; flota[i][j]=0; } } for(i=0;i<5;i++) barcazas[i]=Cantidad(i); }
void CJugador::DibujarTablero(bool ConDisparos) { int i; char j; cout << setiosflags(ios::left) << setw(33) << "Tu flota"; if(ConDisparos){ cout << "\t"; cout << "Tus Disparos"; } resetiosflags(ios::left); cout << endl << endl; //Dibuja la primera línea de numeros separados con | cout << " |"; for(i=1;i<=10;i++){ if(i==10) cout << i << "|"; else cout << i << " |"; } //Si hay que dibujar el otro tablero se hace lo mismo al lado if(ConDisparos){ cout << "\t"; cout << " |"; for(i=1;i<=10;i++){ if(i==10) cout << i << "|"; else cout << i << " |"; } } //Se dibuja linea de separación cout << endl; for(i=1;i<=33;i++) cout << "="; //Si hay que dibujar el otro tablero se hace lo mismo al lado if(ConDisparos){ cout << "\t"; for(i=1;i<=33;i++) cout << "="; } cout << endl; //Se dibujan las celdas del juego for(j='A';j<='J';j++){ //Letra para identificar la fila cout << j << " |"; for(i=0;i<10;i++){ //Se verifica la celda actual para poner un valor switch(flota[((int)j)-65][i]){ case 0: cout << " |"; break; case 1: cout << "PA|"; break; case 2: cout << "AC|"; break; case 3: cout << "CR|"; break; case 4: cout << "SB|"; break; case 5: cout << "DS|"; break; } } //Si hay que dibujar el otro tablero se hace lo mismo al lado if(ConDisparos){ cout << "\t"; cout << j << " |"; for(i=0;i<10;i++){ switch(disparos[((int)j)-65][i]){ case 0: cout << " |"; break; case 1: cout << "AG|"; break; case 2: cout << "TK|"; break; } } } //Se dibuja linea de separación cout << endl; for(i=1;i<=33;i++) cout << "="; //Si hay que dibujar el otro tablero se hace lo mismo al lado if(ConDisparos){ cout << "\t"; for(i=1;i<=33;i++) cout << "="; } cout << endl; } }
void CJugador::UbicarBarcazas() { bool terminado=false,pos,disponible; int actual=0,x,y,xaux,yaux,i; while(1){ fflush(stdin); scrclr(); DibujarTablero(false); if(terminado){ fflush(stdin); cin.get(); break; } cout << "Indique la celda donde comienza el " << NombreBarco(actual) << " (" << Cantidad(actual) << " celdas): "; while(!SeleccionarCelda(&x,&y)){ cout << "La celda señalada no existe, intente otra vez: "; } cout << "Indique si el " << NombreBarco(actual) << " se ubica horizontalmente o verticalmente (h/v): "; pos=SeleccionarPosicion(); //Verificamos si entra en el tablero if((pos&&(x+Cantidad(actual)-1)<=9)||(!pos&&(y+Cantidad(actual)-1)<=9)){ //Verificamos si son posiciones validas for(i=1,xaux=x,yaux=y,disponible=true;i<=Cantidad(actual)&&disponible;i++){ if(!CeldaDisponible(xaux,yaux)) disponible=false; if(pos) xaux++; else yaux++; } //Si esta disponible colocamos las celdas correspondientes a cada barcaza if(disponible){ for(i=1;i<=Cantidad(actual);i++){ flota[y][x]=actual+1; if(pos) x++; else y++; } actual++; if(actual>=5) terminado=true; } else{ cout << "El espacio seleccionado para el " << NombreBarco(actual) << " no esta disponible"; cin.get(); } } else{ cout << "El " << NombreBarco(actual) << " no entra en el tablero"; cin.get(); } } }
bool CJugador::CeldaDisponible(int x,int y) { //Centro if( (flota[y][x]) || //Arriba (y>0&&flota[y-1][x]) || //Derecha (x<9&&flota[y][x+1]) || //Abajo (y<9&&flota[y+1][x]) || //Izquierda (x>0&&flota[y][x-1]) ) return false; return true; }
const char *NombreBarco(int num) { switch(num){ case 0: return "Portavion"; case 1: return "Acorazado"; case 2: return "Crucero"; case 3: return "Submarino"; case 4: return "Destructor"; } }
int Cantidad(int num) { switch(num){ case 0: return 5; case 1: return 4; case 2: case 3: return 3; case 4: return 2; } }
int Oponente(int num) { return (!num?1:0); }
bool SeleccionarCelda(int *x,int *y) { char c; int n; scanf("%c%d",&c,&n); fflush(stdin); if(islower(c)) c=toupper(c); if(c<'A'||c>'J'||n<1||n>10) return false; *x=n-1; *y=((int)c)-65; return true; }
bool SeleccionarPosicion() { char c; do{ c=getchar(); fflush(stdin); }while(c!='h'&&c!='H'&&c!='v'&&c!='V'); if(c=='h'||c=='H') return true; return false; }
int main() { CJugador jugadores[2]; bool done=false,gameend,tocado,perdio,valido; int i,jugadoractual,x,y; while(!done){ jugadoractual=0; gameend=false; for(i=0;i<2;i++){ jugadores[i].Inicializar(); cout << "Turno del jugador " << i+1 << " de colocar su flota"; cin.get(); jugadores[i].UbicarBarcazas(); scrclr(); } while(!gameend){ valido=false; scrclr(); cout << "Turno del jugador " << jugadoractual+1 << " de disparar"; cin.get(); fflush(stdin); while(!valido){ tocado=false; perdio=true; scrclr(); cout << "Turno del jugador " << jugadoractual+1 << endl << endl; jugadores[jugadoractual].DibujarTablero(true); cout << endl; cout << "Indique a que celda disparar: "; if(!SeleccionarCelda(&x,&y)) cout << "La celda indicada no es valida"; else{ if(jugadores[jugadoractual].disparos[y][x]){ cout << "Ya disparaste a esa celda"; } else{ if(jugadores[Oponente(jugadoractual)].flota[y][x]){ tocado=true; jugadores[Oponente(jugadoractual)].barcazas[(jugadores[Oponente(jugadoractual)].flota[y][x])-1]--; jugadores[jugadoractual].disparos[y][x]=2; if(!jugadores[Oponente(jugadoractual)].barcazas[(jugadores[Oponente(jugadoractual)].flota[y][x])-1]){ cout << "Undiste el " << NombreBarco(jugadores[Oponente(jugadoractual)].flota[y][x]-1) << " enemigo"; } else{ cout << "Tocado"; } jugadores[Oponente(jugadoractual)].flota[y][x]=0; } else{ jugadores[jugadoractual].disparos[y][x]=1; cout << "Agua"; } valido=true; } } for(i=0;i<5;i++){ if(jugadores[Oponente(jugadoractual)].barcazas[i]>0){ perdio=false; break; } } if(perdio){ scrclr(); cout << "El Jugador " << jugadoractual+1 << " ha ganado la batalla"; gameend=true; fflush(stdin); cin.get(); break; } fflush(stdin); cin.get(); } jugadoractual=Oponente(jugadoractual); } } return 0; }
|
Una cosa: edite este mensaje con el código cambiado porque encontre muchos errores, eso pasa por apurado y por no hacer buen control de calidad XD.
Un Saludo! _________________ "Aquel que hace una bestia de si mismo se libra del dolor de ser un hombre". Dr. Johnson
Ultima edición por eagleoneraptor el 08/09/2008 11:39 am; editado 1 vez |
| | Volver arriba | |  | | WaRc3L
Registrado: 12 Jun 2008 Mensajes: 199 Ubicación: en el registro de la CPU
| Publicado: 06/09/2008 6:03 am | | | Título: |
| Lo siento mucho, no podre entregar el proyecto de la batalla naval, mañana me voy de vacaciones y no se quando estare ahi.
Lo siento mucho de verdad, y aun no lo tengo acabado... 
Saludos.. _________________ ToDos PoDeMoS CoMpaRTiR La Luz De La BoMBiTa! |
| | Volver arriba | |  | polly
Registrado: 19 Jul 2007 Mensajes: 618
| Publicado: 06/09/2008 2:37 pm | | | Título: |
| Ok Warc3l.
Yo lo colgare mañana, aun no he tenido tiempo de acabarlo.
S2 _________________ enrmarc |
| | Volver arriba | |  | v4r3t
Registrado: 06 Mar 2007 Mensajes: 103
| Publicado: 07/09/2008 10:47 am | | | Título: |
| Aquí está el mío:
| Código: | /* Proyecto "Batalla naval". Autor: v4r3t */
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> #include <time.h>
/* Funciones que dependen del SO */ #ifdef WIN32 #include <windows.h> #define Esperar(x) Sleep(x) #define Limpiar_Pantalla system("cls") #endif
#ifdef LINUX #include <unistd.h> #define Esperar(x) sleep(x) #define Limpiar_Pantalla system("clear") #endif
/* Macros */ #define AGUA '^' #define TOCADO '*' #define OCULTA 'O' #define PORTAVIONES 5 #define ACORAZADO 4 #define SUBMARINO 3 #define CRUCERO 3 #define DESTRUCTOR 2
typedef struct { char letra; int numero; }Casilla;
char TableroJ1[10][10],TableroJ2[10][10],Aux[10][10],frase[50]="\0"; int Barcos[5]={PORTAVIONES,ACORAZADO,SUBMARINO,CRUCERO,DESTRUCTOR}; Casilla Lista[100]; int aux=0,contador=0,tocadosJ1=0,tocadosJ2=0;
/* Funciones */ void IniciarTablero(char[10][10],char); void IniciarTableroJ2(); void DibujarTablero(char[10][10]); void PedirCasilla(int); int VerificarCasilla(char[10][10],Casilla,int,char); void Almacenar(char[10][10],int,Casilla,char); void TurnoJ1(); void TurnoJ2(); char AtacarCasilla(char[10][10],Casilla); void GenerarLista();
/* Main */ int main() { IniciarTablero(TableroJ1,AGUA); // Poner todas las casillas con el símbolo de agua (^). DibujarTablero(TableroJ1); // Dibujar el tablero.
/* Colocar los barcos en las posiciones deseadas */ strcpy(frase,"[Casillas del portaviones (5 casillas)]\n"); printf("%s",frase); PedirCasilla(PORTAVIONES); strcpy(frase,"[Casillas del acorazado (4 casillas)]\n\0"); printf("%s",frase); PedirCasilla(ACORAZADO); strcpy(frase,"[Casillas del submarino (3 casillas)]\n"); printf("%s",frase); PedirCasilla(SUBMARINO); strcpy(frase,"[Casillas del crucero (3 casillas)]\n"); printf("%s",frase); PedirCasilla(CRUCERO); strcpy(frase,"[Casillas del destructor (2 casillas)]\n"); printf("%s",frase); PedirCasilla(DESTRUCTOR); printf(" TABLERO CREADO\n"); Esperar(1000);
Limpiar_Pantalla; printf("Generando tablero oponente..."); IniciarTablero(Aux,OCULTA); // Poner todas las casillas con el símobolo de casilla oculta(O). IniciarTableroJ2(); // Generar aleaoriamente el tablero del oponente. GenerarLista(); Limpiar_Pantalla; printf("\n\n\n\n\n\n EMPIEZA EL JUEGO\n"); Esperar(2000);
/* Iniciar la batalla */ while (1) { TurnoJ1(); // Turno del jugador if (tocadosJ1 == 17) // Si se han destruído todos los barcos { // del oponente se gana y acaba el juego. Limpiar_Pantalla; printf(" GANASTE\n"); return 0; }
TurnoJ2(); // Turno del oponente. if (tocadosJ1 == 17) // Si se han destruído todos los barcos { // del jugador se pierde y acaba el juego. Limpiar_Pantalla; printf(" PERDISTE\n"); return 0; } } }
/* Función que inicia el tablero con el símbolo deseado */ void IniciarTablero(char Tablero[10][10],char simbolo) { int i,j;
for(i=0;i<10;i++) { for (j=0;j<10;j++) Tablero[i][j]=simbolo; } }
/* Función que genera el tablero del oponente aleatoriamente */ void IniciarTableroJ2() { Casilla aleatoria; char pos,posicion[2]={'v','h'}; int i;
IniciarTablero(TableroJ2,AGUA); // Primero se rellena el tablero con el símoblo de agua (^). srand(time(NULL)); for (i=0;i<5;i++) { do { aleatoria.letra=(rand()%10)+65; // Casilla aleatoria.numero=(rand()%10)+1; // aleatoria. pos=posicion[rand()%2]; // Posición aleatoria. }while(!VerificarCasilla(TableroJ2,aleatoria,Barcos[i],pos)); // Verificar si la casilla es válida. Almacenar(TableroJ2,Barcos[i],aleatoria,pos); // Se almacena el barco en el tablero. } }
/* Dibujar el tablero */ void DibujarTablero(char Tablero[10][10]) { int i,j,letra=65; Limpiar_Pantalla; printf(" 1 2 3 4 5 6 7 8 9 10\n\n"); for (i=0;i<10;i++,letra++) { printf(" %c ",letra); for (j=0;j<10;j++) printf("%c ",Tablero[i][j]); printf("\n\n"); } printf("%s",frase); }
/* Función que pide una casilla a partir de la cual se introduce */ /* un barco determinado en posición vertical u horizontal */ void PedirCasilla(int barco) { Casilla cas; char posicion; int valida;
do { valida=0; fflush(stdin); printf("Letra: "); scanf("%c",&cas.letra); cas.letra=toupper(cas.letra); if (cas.letra < 65 || cas.letra > 74) // Verificar si la letra pertenece al rango válido. valida++; printf("Numero: "); scanf("%d",&cas.numero); if (cas.numero < 1 || cas.numero > 10) // Verificar si el número pertenece al rango válido. valida++; printf("Vertical u horizontal (v/h): "); fflush(stdin); scanf("%c",&posicion); if (posicion != 'v' && posicion != 'h') // Verificar si la posición es válida. valida++; if (!VerificarCasilla(TableroJ1,cas,barco,posicion)) valida++; if (valida > 0) // Si falla algún parámetro anterior { // se muestra un mensaje de error. printf("Casilla no valida o posicion no valida\n"); Esperar(1000); } DibujarTablero(TableroJ1); }while(valida > 0); // Se vuelven a pedir los parámetros hasta que sean correctos. Almacenar(TableroJ1,barco,cas,posicion); // Almacenar el barco en le tablero strcpy(frase,"\0"); DibujarTablero(TableroJ1); // Dibujar el tablero }
/* Función que verifica si la casilla inroducida es correcta */ int VerificarCasilla(char Tablero[10][10],Casilla cas,int barco,char posicion) { int fila,columna,i,cont=0,tope;
fila=cas.letra-65; columna=cas.numero-1; if (Tablero[fila][columna] != AGUA) // Si la casilla está ocupada. return 0; if (posicion == 'h') // Si la posición es horizontal, se verifica si { // el barco cabe en la fila a partir de esa casilla. tope=columna+barco; for (i=columna;i<10 && i<tope;i++) { if (Tablero[fila][i] == AGUA) // Contar las casillas libres que tiene cont++; // la casilla elegida a partir de esta. else return 0; } if (cont < barco) // Si las casillas libres son insuficientes, la casilla no vale. return 0; return 1; } else // Mismo método que el anterior pero en vertical. { tope=fila+barco; for (i=fila;i<10 && i<tope;i++) { if (Tablero[i][columna] == AGUA) cont++; else return 0; } if (cont < barco) return 0; return 1; } }
void Almacenar(char Tablero[10][10],int barco,Casilla cas,char posicion) { int i,fila,columna,tope; char tipo;
fila=cas.letra-65; columna=cas.numero-1; switch(barco) // Colocar una letra según el barco. { case PORTAVIONES: tipo='P'; break; case ACORAZADO: tipo='A'; break; case SUBMARINO: if (aux == 0) { tipo='S'; aux++; } else tipo='C'; break; case DESTRUCTOR: tipo='D'; break; } /* Almacenar el barco según la posición y la casilla */ if (posicion == 'h') { tope=columna+barco; for (i=columna;i<tope;i++) Tablero[fila][i]=tipo; } else { tope=fila+barco; for (i=fila;i<tope;i++) Tablero[i][columna]=tipo; } }
/* Función turno del jugador */ void TurnoJ1() { Casilla cas; int valida,fila,columna;
strcpy(frase,"[Tu turno]\n"); DibujarTablero(Aux); do { valida=0; fflush(stdin); printf("Letra: "); scanf("%c",&cas.letra); cas.letra=toupper(cas.letra); if (cas.letra < 65 || cas.letra > 74) // Verificar si la letra pertenece al rango válido valida++; printf("Numero: "); scanf("%d",&cas.numero); if (cas.numero < 1 || cas.numero > 10) // Verificar si el número pertenece al rango válido. valida++; fila=cas.letra-65; columna=cas.numero-1; if (Aux[fila][columna] != OCULTA) // Verificar si la casilla ya está "tocada". valida++; if (valida > 0) // Si falla algún parámetro anterior { // se muestra un mensaje de error. printf("Casilla no valida\n"); Esperar(1000); } DibujarTablero(Aux); // Se refresca" la pantalla. }while(valida > 0); Aux[fila][columna]=AtacarCasilla(TableroJ2,cas); // Comprobar la casilla. if (Aux[fila][columna] == TOCADO) // Si se ha tocado un barco oponente. { strcpy(frase,"[Tocado]\n"); tocadosJ1++; } else // Si ha caído en agua. strcpy(frase,"[Agua]\n"); DibujarTablero(Aux); // Dibujar el tablero system("pause"); }
/* Función turno del oponente */ void TurnoJ2() { Casilla cas; int fila,columna;
strcpy(frase,"[Turno de tu oponente]\n"); DibujarTablero(TableroJ1); cas=Lista[contador++]; fila=cas.letra-65; columna=cas.numero-1; TableroJ1[fila][columna]=AtacarCasilla(TableroJ1,cas); // Comprobar la casilla. if (TableroJ1[fila][columna] == TOCADO) // Si se ha tocado un barco oponente. { strcpy(frase,"[Tocado]\n"); tocadosJ2++; } else // Si ha caído en agua. strcpy(frase,"[Agua]\n"); DibujarTablero(TableroJ1); // Dibujar el tablero system("pause"); }
/* Función que comprueba la casilla a atacar */ char AtacarCasilla(char Tablero[10][10],Casilla cas) { int fila,columna;
fila=cas.letra-65; columna=cas.numero-1; if (Tablero[fila][columna] == 'P' || Tablero[fila][columna] == 'A' || Tablero[fila][columna] == 'S' || Tablero[fila][columna] == 'C' || Tablero[fila][columna] == 'D') return TOCADO; // Si se acierta. return AGUA; }
/* Función que genera una lista aleatoria de casillas */ /* que usará la máquina para jugar atacar */ void GenerarLista() { int i,j,num; Casilla aux;
for (i=0;i<100;i++) { for (j=1;j<11;j++) { Lista[i].letra=j+64; // Almacenar todas las casillas Lista[i].numero=j; // válidas en orden ascendente. } } srand(time(NULL)); for (i=0;i<100;i++) // Desordenar las casillas. { num=rand()%100; aux=Lista[i]; Lista[i]=Lista[num]; Lista[num]=aux; } }
|
Hay un principal problema que no se me ocurrió como solventar, y es que no he puesto "tocado y hundido"... _________________ -=v4r3t=- |
| | Volver arriba | |  | | eagleoneraptor

Registrado: 20 May 2008 Mensajes: 187 Ubicación: Buenos Aires(Argentina)
| Publicado: 08/09/2008 11:58 am | | | Título: |
| Solo por curiosidad, que edad tienen ustedes?
Un Saludo! _________________ "Aquel que hace una bestia de si mismo se libra del dolor de ser un hombre". Dr. Johnson |
| | Volver arriba | |  | eagleoneraptor

Registrado: 20 May 2008 Mensajes: 187 Ubicación: Buenos Aires(Argentina)
| Publicado: 09/09/2008 4:15 am | | | Título: |
| Me gustaría hacer un proyecto en grupo una vez que revisemos el de la batalla naval.
Un Saludo! _________________ "Aquel que hace una bestia de si mismo se libra del dolor de ser un hombre". Dr. Johnson |
| | Volver arriba | |  | v4r3t
Registrado: 06 Mar 2007 Mensajes: 103
| Publicado: 09/09/2008 1:59 pm | | | Título: |
| Pues a ver, porque aquí la peña se ha desvanecido. _________________ -=v4r3t=- |
| | Volver arriba | |  | | |
| No puede crear mensajes No puede responder temas No puede editar sus mensajes No puede borrar sus mensajes No puede votar en encuestas
|
|
| |