elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Problema con Juego de hundir la flota
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema con Juego de hundir la flota  (Leído 2,364 veces)
jpvroq

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Problema con Juego de hundir la flota
« en: 31 Diciembre 2016, 18:21 pm »

Hola a todos. Debo hacer un trabajo en el que tengo que programar en c, el juego de hundir la flota para 0 jugadores (la maquina sola), 1 jugador, o dos jugadores. Debe tener un menú, un submenú, poder guardar los tres primeros records, modificar el tamaño de la matriz entre 8, 9 o 10 filas y columnas, crear una nueva partida, cargar una partida i guardar los tres records más altos, con el nombre del jugador y la fecha. Mi problema es que, a parte de no saber como disponer los 4 barcos, que el primero ocupe 4 casillas, el segundo 3, el tercero 2 i el último 1, cuando hago el submenú, ya sea con estructura en switch, o con if, termina el programa sin poder escoger la opción.
De momento tengo esta parte del código. Agradecería mucho la ayuda y, si es posible, tan pronto como sea posible.
(La libreria tipus.h esta destinada al archivo de records)
Código
  1.  
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <stdbool.h>
  5. #include <string.h>
  6. #include "tipus.h"
  7. #define DIM_MAX 10
  8. #define DIM_MIN 8
  9. #define NOM_MAX             15
  10. #define NUM_JUGADORS_MIN    0
  11. #define NUM_JUGADORS_MAX    2
  12. int main()
  13. {
  14.    char opcion;
  15.    char opcionb;
  16.    char nom[NOM_MAX];
  17.    int jug;
  18.    int num_col, num_fila, dimensio_taulell;
  19.    FILE *f;
  20.    char caracters;
  21.    int records = 0;
  22.    int i = 0;
  23.    int puntuacionMax = 0;
  24.    int puntuacionMax2 = 0;
  25.    f = fopen("records.txt", "r");
  26.    char taulell[DIM_MAX][DIM_MAX], lletra_fila;
  27.    printf("\na. Crear un nuevo juego\n");
  28.    printf("\nb. Cargar un juego\n");
  29.    printf("\ne. Ver podium\n");
  30.    printf("\nf. Salir\n");
  31.    scanf("%c", &opcio);
  32.    switch(opcio)
  33.    {
  34.  
  35.    case 97:
  36.        {
  37.        printf("Ha escogido la opcion a\n");
  38.        printf("introduzca su nombre\n");
  39.        scanf("%s", &nom[NOM_MAX]);
  40.        printf("\nSu nombre es: %s", &nom[NOM_MAX]);
  41.        printf("\nCuantos jugadores hay\n");
  42.        scanf("%i", &jug);
  43.        if(jug!=0)
  44.        {
  45.            printf("ERROR");
  46.            return 0;
  47.        }
  48.        else{
  49.        printf("\na. Crear un nuevo juego\n");
  50.        printf("\nb. Cargar un juego\n");
  51.        printf("\nc. Jugar partida\n");
  52.        printf("\nd. Guardar partida\n");
  53.        printf("\ne. Ver podium\n");
  54.        printf("\nf. Salir\n");
  55.        scanf("%c", &opciob);
  56.        switch(opciob){
  57.        case 97:
  58.  
  59.            break;
  60.        case 98:
  61.            break;
  62.        case 99:
  63.            {
  64.  
  65.            while(dimensio_taulell > DIM_MAX || dimensio_taulell < DIM_MIN)
  66.            {
  67.                printf("Escriba la dimension del tablero (8, 9 o 10):\t");
  68.                scanf("%i", &dimensio_taulell);
  69.                printf("\n");
  70.            }
  71.            printf(" \t");
  72.            for(num_col = 1; num_col <= dimensio_taulell; num_col++)
  73.            {
  74.                printf("%i ", num_col);
  75.            }
  76.            printf("\n");
  77.            num_fila = 0;
  78.            while(num_fila < dimensio_taulell)
  79.            {
  80.                lletra_fila = num_fila + 65;
  81.                printf("%c\t", lletra_fila);
  82.                num_col = 0;
  83.                while(num_col < dimensio_taulell)
  84.                {
  85.                    taulell[num_fila][num_col] = 63;
  86.                    printf("%c ", taulell[num_fila][num_col]);
  87.                    num_col++;
  88.                }
  89.                printf("\n");
  90.                num_fila++;
  91.            }
  92.            }
  93.            return 0;
  94.  
  95.            break;
  96.        }
  97.        }
  98.        }
  99.  
  100.    case 98:
  101.  
  102.    case 100:
  103.        break;
  104.    case 101:
  105.  
  106.        if(f == NULL)
  107.        {
  108.            printf("Jugador \t Puntuacion \t Data\n");
  109.            printf("El nombre de records es: 0\n");
  110.            printf("La puntuacion maxima es: 0\n");
  111.            return 0;
  112.        }
  113.        printf("Jugador \t Puntuacion \t Data\n");
  114.        if(f!=NULL)
  115.        {
  116.            while(!feof(f))
  117.            {
  118.                fscanf(f,"%c",&caracters);
  119.                printf("%c",caracters);
  120.                if(caracters == '\n')
  121.                {
  122.                    records++;
  123.                }
  124.                if(caracters == '\t')
  125.                {
  126.                    fscanf(f,"%i",&puntuacionMax);
  127.                    printf("%i",puntuacionMax);
  128.                    if(puntuacionMax > puntuacionMax2)
  129.                    {
  130.                        puntuacionMax = puntuacionMax2;
  131.                    }
  132.                }
  133.                i++;
  134.            }
  135.        }
  136.        printf("Records: %i\n", records-1);
  137.        printf("Puntuacion max: %i\n", puntuacionMax);
  138.        return 0;
  139.        break;
  140.    case 102:
  141.        exit(-1);
  142.        break;
  143.    }
  144.  
  145.    return 0;
  146.  
  147. }
  148.  

CoAdm: asegurarte de colocar bien las etiquetas GeSHi, es una de apertura y otra de cierre (como en html o cualquier lenguaje de etiquetas, en este caso bbcode)


« Última modificación: 31 Diciembre 2016, 18:39 pm por engel lex » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Juego Hundir la Flota Con JAVA
Java
izel 4 9,801 Último mensaje 8 Diciembre 2010, 21:02 pm
por izel
[Source C#] Juego: Hundir la flota v0.3 « 1 2 »
.NET (C#, VB.NET, ASP)
Dryken 12 15,078 Último mensaje 7 Junio 2013, 02:28 am
por Shout
Ayuda hundir la flota
Programación C/C++
driebesXI 1 2,751 Último mensaje 19 Mayo 2015, 19:27 pm
por driebesXI
Maquina Inteligente Hundir la flota (Battleship) código C
Programación C/C++
Nakkuu 6 7,388 Último mensaje 31 Diciembre 2017, 17:45 pm
por Serapis
Python 3 Codigo de Hundir la flota
Programación General
Weng Weng 0 2,450 Último mensaje 25 Marzo 2019, 16:49 pm
por Weng Weng
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines