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


 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  Foro de elhacker.net
|-+  Foros Generales
| |-+  Dudas Generales (Moderador: engel lex)
| | |-+  PRACTICA MONOPOLY
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: PRACTICA MONOPOLY  (Leído 1,001 veces)
shawwilliam

Desconectado Desconectado

Mensajes: 8


Ver Perfil
PRACTICA MONOPOLY
« en: 17 Mayo 2013, 17:20 »

hola necesito ayuda con esta practica. El codigo esta bien, el problema es que no soy capaz de ponerlo en forma de modulo. mi profesora me obliga ha hacer las funciones con void y yo las tengo hechas pero con diferentes casos en swicths. espero que me puedan ayudar geracias.

Código
  1. //Complubuilding
  2.  
  3.  
  4.  
  5. #include <iostream>
  6. #include <string>
  7. #include <fstream>
  8. #include <time.h>
  9. #include <cstdlib>
  10.  
  11. using namespace std;
  12.  
  13. //const char edif[]="edificios.txt",jug[]="jugadores.txt";
  14.  
  15.  
  16.  
  17.  
  18. // arrays de edificios
  19.  
  20.  
  21.  
  22. typedef struct{      
  23. int codigo;
  24. char nombre[100]; //ESTABA A 100
  25. int precio;
  26. int dinero;
  27. int prestigio;
  28. int estado;
  29. }tEdificio;
  30.  
  31.  
  32. //arrays de jugadores
  33.  
  34. typedef struct{
  35.  
  36. char usuario[100];
  37. int password;
  38. char empresa[100];
  39. double dinero;
  40. char prestigio;
  41. int comprados;
  42. int poscomprados[100];
  43. int ncomprados;
  44.  
  45. }tJugador;
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53. int main(){
  54.  
  55.  
  56.  
  57.  
  58.     int password;
  59.     char apodo[50];
  60.     int cont =0;
  61.     char limpiar[100];
  62.     int nedificios=0;
  63.     int posicioneliminar =0;
  64.     int posicioncomprar =0;
  65.     int njugador=0;
  66. bool salir = true, ordenado = false;;
  67.  
  68. ifstream edificios;
  69. string edif;
  70. ifstream jugadores;
  71. string jug;
  72.     int eleccion1, i,k,eleccion2;
  73.     tEdificio vedificios[100];
  74.     tJugador vjugadores[20],auxejug;
  75.     //tMonio monio;
  76.  
  77.  
  78.  
  79. edificios.open("edificios.txt");//se abre el archivo que contiene los edificios
  80.  
  81. if (edificios.is_open()){ //mientras .txt abierto
  82. while(!edificios.fail() && edificios.good() && vedificios[nedificios].codigo!=-1){ // mientras lectura sin fallo distinta del centinela
  83. //getline(edificios, edif);
  84. edificios >> vedificios[nedificios].codigo;    edificios.getline(limpiar, 100);
  85. edificios.getline(vedificios[nedificios].nombre, 100);
  86. edificios >> vedificios[nedificios].precio; edificios.getline(limpiar, 100);
  87. edificios >> vedificios[nedificios].dinero; edificios.getline(limpiar, 100);
  88. edificios >> vedificios[nedificios].prestigio; edificios.getline(limpiar, 100);
  89. edificios >> vedificios[nedificios].estado;    edificios.getline(limpiar, 100);
  90.  
  91.  
  92. /*
  93. cout << "\nCodigo:" << vedificios[nedificios].codigo;
  94.                 cout << "\nPrecio:" << vedificios[nedificios].precio;
  95.                 cout << "\nNombre:" << vedificios[nedificios].nombre;
  96.                 cout << "\nPrestigio:" << vedificios[nedificios].prestigio;
  97.                 cout << "\nEstado;" << vedificios[nedificios].estado;
  98. */
  99.                nedificios++;
  100. }
  101.   edificios.close(); // Cierre del archivo
  102.   nedificios--;
  103.  
  104. } else{
  105.           cout <<"ERROR. NO SE ENCUENTRA EL FICHERO";
  106.           }
  107.  
  108.  
  109. jugadores.open("jugadores.txt");//se abre el archivo que contiene los jugadores
  110.  
  111. if (jugadores.is_open()){ //mientras .txt abierto
  112. while(!jugadores.fail() && jugadores.good()){ // mientras lectura sin fallo distinta del centinela
  113. //getline(jugadores, jug);
  114.  
  115. jugadores.getline(vjugadores[njugador].usuario,90);
  116. jugadores >> vjugadores[njugador].password;              jugadores.getline(limpiar, 100);    
  117. jugadores >> vjugadores[njugador].empresa;               jugadores.getline(limpiar, 100);
  118. jugadores >> vjugadores[njugador].dinero;                jugadores.getline(limpiar, 100);
  119. jugadores >> vjugadores[njugador].comprados;             jugadores.getline(limpiar, 100);
  120. jugadores >> vjugadores[njugador].prestigio;             jugadores.getline(limpiar, 100);
  121.  
  122.  
  123.            njugador++;
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131. }
  132. jugadores.close(); // Cierre del archivo
  133.    }
  134.  
  135.  
  136. do{
  137.  
  138.     cout << "Introduce tu apodo : ";
  139.     cin >> apodo;
  140.     cout << "introduce contrasena: ";  
  141.     cin >> password;
  142.     cont++;
  143.     while(password != 12345 && cont < 3){
  144.  cout << endl << "error contraseña: " << cont << endl <<  "Introduce tu apodo : ";
  145.     cin >> apodo;
  146.     cout << "introduce contrasena: ";  
  147.     cin >> password;
  148.    cont++;
  149. }
  150. if(cont ==3) exit(1);
  151.  
  152.  
  153.  
  154.  
  155. if (strcmp (apodo,"admin") == 0)
  156. {
  157. //menu admin
  158.  
  159. do{
  160.  
  161. cout << "Que quieres hacer?" << endl;
  162. cout << "1- Lista de Edificios" << endl;
  163. cout << "2- Lista de Jugadores" << endl;
  164. cout << "3- Nuevo jugador" << endl;
  165. cout << "4-Nuevo edificio"<< endl;
  166. cout << "5-Borrar edificio" << endl;
  167. cout << "6-Borrar jugador" << endl;
  168. cout << "7-Ejecutar un turno" << endl;
  169. cout << "0- Salir" << endl;
  170. cin >> eleccion1;
  171.  
  172. switch(eleccion1)
  173. {
  174.  
  175. case 1:  //Visualizacion de edificios
  176.     for(i=0;i<nedificios;i++){
  177. cout << "\nCodigo:" << vedificios[i].codigo;
  178. cout << "\nNombre:" << vedificios[i].nombre;
  179.                cout << "\nPrecio:" << vedificios[i].precio;
  180.                cout << "\nDinero:" << vedificios[i].dinero;
  181.                cout << "\nPrestigio:" << vedificios[i].prestigio;
  182.                cout << "\nEstado: " << vedificios[i].estado << endl << "----------";
  183.                }
  184.  
  185.            break;
  186.  
  187.  
  188.  
  189. case 2:  //Visualizacion de jugadores
  190.  
  191.     for ( i=0; i<njugador; i++){
  192.  
  193.                cout << "\nUsuario:" << vjugadores[i].usuario;
  194.                cout << "\nPassword:" << vjugadores[i].password;
  195.                cout << "\nEmpresa:" << vjugadores[i].empresa;
  196.                cout << "\nDinero:" << vjugadores[i].dinero;
  197.                cout << "\nComprados:" << vjugadores[i].comprados;
  198.                cout << "\nPrestigio:" << vjugadores[i].prestigio << endl << "----------";
  199.  
  200.  
  201.     }
  202.    break;
  203.  
  204.  
  205. case 3: //Nuevo jugador
  206.  
  207.     //pedir los datos del jugador y guardarlos en vjugadores[njugador].usuario
  208.  
  209.     cout << "\nintroduce tu codigo:" << vjugadores[njugador].usuario;
  210.     cin >> vjugadores[njugador].usuario;
  211.  
  212.     cout << "\nintroduce tu password:" << vjugadores[njugador].password;
  213.      cin >> vjugadores[njugador].password;
  214.  
  215.     cout << "\ntu empresa:" << vjugadores[njugador].empresa;
  216.       cin >> vjugadores[njugador].empresa;
  217.  
  218.  
  219.     cout << "\ntu dinero:" << vjugadores[njugador].dinero;
  220.      cin >> vjugadores[njugador].dinero;
  221.  
  222.  
  223.     cout << "\ntus edificios comprados:" << vjugadores[njugador].comprados;
  224.     cin >> vjugadores[njugador].ncomprados;
  225.  
  226.      cout << "\ntu prestigio:" << vjugadores[njugador].prestigio;
  227.     cin >> vjugadores[njugador].prestigio;
  228.  
  229.  
  230.     njugador++;
  231.  
  232.  
  233.  
  234.     break;
  235.  
  236.  
  237.  
  238.  
  239. case 4: //Nuevo edificio
  240.  
  241.  
  242. cout << "\ncodigo: ";
  243. cin >> vedificios[nedificios].codigo;
  244.  
  245.  
  246.  
  247. cout << "\nnombre:";
  248. cin >> vedificios[nedificios].nombre;    
  249.  
  250.  
  251.  
  252.  
  253.  
  254. cout << "\nprecio:" ;
  255. cin >> vedificios[nedificios].precio;    
  256.  
  257.  
  258.  
  259. cout << "\ndinero:" ;
  260. cin >> vedificios[nedificios].dinero;      
  261.  
  262.  
  263.  
  264.  
  265. cout << "\nprestigio:";
  266. cin >> vedificios[nedificios].prestigio;  
  267.  
  268.  
  269. cout << "\nestado:";
  270. cin >> vedificios[nedificios].estado;  
  271.  
  272. nedificios++;
  273.  
  274. break;
  275.  
  276.  
  277.  
  278.  
  279. case 5: //Borrar edificio
  280.  
  281.  
  282.  
  283. cout << "introduce el puesto del edificio para eliminar: ";
  284. cin >> posicioneliminar;
  285.  
  286. cout << "Se va a eliminar el edificio:";
  287. cout << "codigo:" << vedificios[posicioneliminar].codigo << endl;
  288. cout << "nombre:" << vedificios[posicioneliminar].nombre << endl;
  289. cout << "precio:" << vedificios[posicioneliminar].precio << endl;
  290. cout << "dinero:" << vedificios[posicioneliminar].dinero << endl;
  291. cout << "prestigio:" << vedificios[posicioneliminar].prestigio << endl;
  292. cout << "estado:" << vedificios[posicioneliminar].estado << endl;
  293.  
  294.  
  295.  
  296.     for(i=posicioneliminar;i<nedificios-1;i++){
  297.                     vedificios[i]=vedificios[i+1];
  298.                                              }
  299.                     nedificios--;
  300.  
  301.  
  302. //tEdificios[posicioneliminar);
  303.  
  304.  
  305.  
  306. break;
  307.  
  308.  
  309. case 6: //Borrar jugador
  310.  
  311. cout << "introduce el puesto del jugador para eliminar: ";
  312. cin >> posicioneliminar;
  313. cout << "Se va a eliminar el edificio:"; //hecho con la parte opcional
  314. cout << "usuario:" << vjugadores[posicioneliminar].usuario << endl;  
  315. cout << "password:" << vjugadores[posicioneliminar].password << endl;  
  316. cout << "empresa:" << vjugadores[posicioneliminar].empresa << endl;
  317. cout << "dinero:" << vjugadores[posicioneliminar].dinero << endl;
  318. cout << "prestigio:" << vjugadores[posicioneliminar].prestigio << endl;
  319. cout << "comprados:" << vjugadores[posicioneliminar].comprados << endl;
  320.  
  321.  
  322.  
  323.  
  324.      for(i=posicioneliminar;i<njugador+1;i++){
  325.                     vjugadores[i]=vjugadores[i-1];
  326.                                              }
  327.                     njugador--;
  328.  
  329.  
  330.   break;
  331.  
  332.  
  333.  
  334.  
  335.  
  336.    case 7: //Ejecutar un turno    
  337.  
  338.  
  339.   /* Ejecutar un turno: Recorre la lista de jugadores y, para cada uno, recorre su
  340.     lista de edificios comprados. Para cada edificio, añade (o resta) el dinero y
  341.     puntos de prestigio que el edificio genera en cada turno.
  342.     */
  343.  
  344.  
  345.  
  346. for ( i=0; i<njugador; i++){
  347.  
  348.        for(int j=0; j<vjugadores[i].ncomprados;j++){                    
  349.  
  350.        vjugadores[i].dinero +=  vedificios[vjugadores[i].poscomprados[j]].dinero;
  351.        vjugadores[i].prestigio += vedificios[vjugadores[i].poscomprados[j]].prestigio;
  352.        }        
  353.  
  354.     }
  355.  
  356.  
  357.  
  358.  
  359.  
  360.  
  361.  
  362.  
  363.  
  364.  
  365.  
  366.  
  367.  
  368.  
  369.  
  370.  
  371.  
  372. break;    
  373.  
  374.  
  375.  
  376.     /* cout << "\nUsuario:" << jugador[njugador].usuario;
  377.                 cout << "\nPassword:" << jugador[njugador].password;
  378.                 cout << "\nEmpresa:" << jugador[njugador].empresa;
  379.                 cout << "\nDinero:" << jugador[njugador].dinero;
  380.                 cout << "\nComprados:" << jugador[njugador].comprados;
  381.                 cout << "\nPrestigio:" << jugador[njugador].prestigio;
  382.                 nedificios++;
  383.            */
  384.  
  385.  
  386.  
  387. }
  388.  
  389.  
  390.  
  391.  
  392. }while (eleccion1!=0);
  393. }//fin if
  394. else{
  395. if (strcmp (apodo,"salir") != 0)
  396. {
  397. //int k;
  398. for (k=0; k<njugador; k++){
  399.    if(strcmp (vjugadores[k].usuario,apodo)==0)
  400.              break;
  401. }          
  402.     if ( k==njugador){
  403. cout << "jugador incorrecto" << endl;        
  404.          }
  405.     else{
  406.          int posjugador=k;
  407.  
  408.  
  409.  
  410. do { //menu jugador
  411.  
  412. cout << "Que quieres hacer?" << endl;
  413. cout << "1.- Ver mis edificios" << endl;
  414. cout << "2.- Ver los edificios disponibles" << endl;
  415. cout << "3.- Comprar un edificio" << endl;
  416. cout << "4.- Ver la clasificación ordenada por dinero" << endl; //ordenado por dinero
  417. cout << "5.- Ver la clasificación ordenada por prestigio" << endl; //ordenado por prestigio
  418. cout << "0.- Cerrar la sesión" << endl;
  419. cin >> eleccion2;
  420.  
  421. switch(eleccion2)
  422. {
  423.  
  424.  
  425. case 1: //ver mis edificios
  426.  
  427. for(int j=0; j<vjugadores[posjugador].ncomprados;j++){
  428.  
  429. cout << "codigo:" << vedificios[vjugadores[posjugador].poscomprados[j]].codigo << endl;
  430. cout << "nombre:" << vedificios[vjugadores[posjugador].poscomprados[j]].nombre << endl;
  431. cout << "precio:" << vedificios[vjugadores[posjugador].poscomprados[j]].precio << endl;
  432. cout << "dinero:" << vedificios[vjugadores[posjugador].poscomprados[j]].dinero << endl;
  433. cout << "prestigio:" << vedificios[vjugadores[posjugador].poscomprados[j]].prestigio << endl;
  434. cout << "estado:" << vedificios[vjugadores[posjugador].poscomprados[j]].estado << endl;
  435.  
  436. }
  437.  
  438.   break;
  439.  
  440.  
  441.  case 2: //Edificios disponibles
  442.  
  443.  
  444.  
  445.   for(i=0;i<nedificios;i++){
  446. cout << "\nCodigo:" << vedificios[i].codigo;
  447. cout << "\nNombre:" << vedificios[i].nombre;
  448.                cout << "\nPrecio:" << vedificios[i].precio;
  449.                cout << "\nDinero:" << vedificios[i].dinero;
  450.                cout << "\nPrestigio:" << vedificios[i].prestigio;
  451.                cout << "\nEstado: " << vedificios[i].estado << endl << "----------";
  452.                }
  453.  
  454.            break;
  455.  
  456.  
  457.  
  458.   case 3 : //Compra de Edificios
  459.  
  460.   cout << "introduce el puesto del edificio : ";
  461.   cin >> posicioncomprar;
  462.  
  463. cout << "Se va a comprar el edificio:";
  464. cout << "codigo:" << vedificios[posicioncomprar].codigo << endl;
  465. cout << "nombre:" << vedificios[posicioncomprar].nombre << endl;
  466. cout << "precio:" << vedificios[posicioncomprar].precio << endl;
  467. cout << "dinero:" << vedificios[posicioncomprar].dinero << endl;
  468. cout << "prestigio:" << vedificios[posicioncomprar].prestigio << endl;
  469. cout << "estado:" << vedificios[posicioncomprar].estado << endl;
  470.  
  471. vjugadores[posjugador].dinero = vjugadores[posjugador].dinero - vedificios[posicioncomprar].dinero;
  472. vjugadores[posjugador].poscomprados[vjugadores[posjugador].ncomprados++]=posicioncomprar;
  473.  
  474. vedificios[posicioncomprar].estado=1;
  475.  
  476.   /*for(i=posicioncomprar;i<nedificios-1;i++){
  477.                      vedificios[i]=vedificios[i+1];
  478.                                               }
  479.                      nedificios--;
  480.    
  481.    */
  482.  
  483.   break;
  484.  
  485.  
  486. case 4: //Ver clasificacion ordenada por dinero
  487.  
  488.  
  489. for ( int i =0; (i <njugador-1)&& !ordenado;i++){
  490.    ordenado=true;
  491.  
  492.    for ( int j =0; j <njugador-i-1; j++){
  493.  
  494.    if(vjugadores[j].dinero <vjugadores[j+1].dinero){
  495.    ordenado = false;
  496.    auxejug = vjugadores[j];
  497.    vjugadores[j]=vjugadores[j+1];
  498.    vjugadores[j+1]= auxejug;
  499.    }
  500.       for ( i=0; i<njugador; i++){
  501.      cout << "\nUsuario:" << vjugadores[i].usuario;
  502.  
  503.                cout << "\nDinero:" << vjugadores[i].dinero;
  504.                cout << "\nComprados:" << vjugadores[i].ncomprados;
  505.                cout << "\nPrestigio:" << vjugadores[i].prestigio << endl << "----------";
  506.  
  507.      }
  508.  
  509.  
  510.  
  511.  
  512.  
  513.  
  514.                             }
  515.    }
  516.  
  517.  
  518.  
  519.  
  520.  
  521.  
  522.  
  523. break;
  524.  
  525. case 5: //Ver clasificacion ordenada por prestigio
  526.  
  527.  
  528. for ( int i =0; (i <njugador-1)&& !ordenado;i++){
  529.    ordenado=true;
  530.  
  531.    for ( int j =0; j <njugador-i-1; j++){
  532.  
  533.    if(vjugadores[j].prestigio <vjugadores[j+1].prestigio){
  534.    ordenado = false;
  535.    auxejug = vjugadores[j];
  536.    vjugadores[j]=vjugadores[j+1];
  537.    vjugadores[j+1]= auxejug;
  538.    }
  539.       for ( i=0; i<njugador; i++){
  540.      cout << "\nUsuario:" << vjugadores[i].usuario;
  541.  
  542.                cout << "\nDinero:" << vjugadores[i].prestigio;
  543.                cout << "\nComprados:" << vjugadores[i].ncomprados;
  544.  
  545.  
  546.      }
  547.  
  548.  
  549.  
  550.  
  551.  
  552.  
  553.                             }
  554.    }
  555.  
  556.  
  557.  
  558.  
  559.  
  560.  
  561.  
  562. break;
  563.  
  564.  
  565.  
  566.  
  567.  
  568.  
  569.  
  570.  
  571.  
  572. break;
  573.  
  574.  
  575. }  
  576.  
  577.  
  578.  
  579.  
  580.  
  581.  
  582.  
  583.  
  584.  
  585.  
  586.  
  587.  
  588.  
  589.  
  590. }while (eleccion2!=0);
  591. }
  592. }
  593. }
  594. }while (strcmp (apodo,"salir") != 0);
  595.  
  596. system ("pause");
  597.  return 0;
  598. }  

Edito: Por favor, la proxima ves utiliza el botón GeSHi para colorear tu código. Gracias.


« Última modificación: 17 Mayo 2013, 18:31 por WHK » En línea

shawwilliam

Desconectado Desconectado

Mensajes: 8


Ver Perfil
PRACTICA MONOPOLY
« Respuesta #1 en: 17 Mayo 2013, 17:22 »

cuando digo modulos me refiero a los modulos de programacion como por ejemplo: monopoly.h


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda con practica pls
Java
RIB5 2 1,947 Último mensaje 28 Abril 2009, 05:07
por juancho77
Error en practica
ASM
Erik# 8 3,254 Último mensaje 8 Julio 2009, 15:15
por Erik#
Hasbro lanza un nuevo Monopoly dedicado a los jugadores tramposos
Noticias
wolfbcn 0 474 Último mensaje 23 Mayo 2018, 01:48
por wolfbcn
Fortnite tendrá su propia edición de Monopoly y armas Nerf
Noticias
wolfbcn 0 168 Último mensaje 7 Septiembre 2018, 14:11
por wolfbcn
Juego tablero monopoly
Programación C/C++
Bruja199231 1 276 Último mensaje 13 Abril 2020, 22:54
por engel lex
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines