Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - marchiali

#1
Programación C/C++ / Re: juego de rol en c++
25 Septiembre 2015, 00:00 AM
tengo planteadas las clases de los personajes de esta forma

Código (cpp) [Seleccionar]
class personaje{
protected:
int vida, mana;
public:
personaje(): vida(25), mana(25){}
virtual void atacar(personaje *P)=0;
bool estavivo(){
if (vida>0){
return true;
}
return false;
}
virtual void modifvida(int damage){
vida -= damage;
}
};

class caballero: public personaje{
public:
virtual void atacar(personaje *P){
P->modifvida(3);
}
virtual string gettipo(){
return "caballero";
}
};

class mago: public personaje{
public:
virtual void atacar(personaje *P){
P->modifvida(1);
}
virtual string gettipo(){
return "mago";
}
};

class arquero: public personaje{
public:
virtual void atacar(personaje *P){
P->modifvida(2);
}
virtual string gettipo(){
return "arquero";
}
};


el problema que tengo es que no se como manejar los objetos de las clases para que funcionen dentro de un mismo arreglo y asi poder restar las vidas
#2
Programación C/C++ / juego de rol en c++
24 Septiembre 2015, 23:49 PM
hola a todos.

resulta que tengo un ejercicio que resolver de la universad cuyo enunciado plantea la idea de un juego de rol. el enunciado es el siguiente:

en un videojuego existen tres tipos de personaje: caballero, mago y arquero. cada uno debe guardar sus cantidades de vida y mana. todos tienen un metodo atacar que recibe a otro personaje como referencia al cual va a atacar, sin embargo el ataque de cada personaje es diferente en cuanto a los atributos que consumen:
-el ataque del caballero quita 3 unidades de vida y 1 de mana al personaje que ataca.
-el ataque del arquero quita 2 unidades de vida y 2 de mana.
-el ataque del mago quita 1 unidad de vida y 3 de mana.
cada personaje tiene un metodo esta vivo, para saber si tiene vida restante y un metodo tipo que devuelve una cadena de texto con el tipo del personaje

con estas especificaciones codificar una clase juego para representar un juego simple que contenga 30 personaje de distinto tipo en un unico arreglo. en cada turno del juego se elige un personaje al azar que debe atacar a otro, elegido tambien al azar, esto debe repetirse hasta que quede solo un personaje vivo. mostrando en cada turno el tipo y la cantidad de vida de cada personaje.

quisiera un poco de ayuda sobre el planteamiento del programa, las clases y los atributos.

les agradecere cualquier tipo de ayuda.

Mod: Titulo modificado, no escribas en mayúsculas
#3
Programación C/C++ / Re: ayuda con strings
25 Agosto 2014, 19:43 PM
en este programa trato de tomar 2 fechas que se ingresan como string, pasarlas a tipo entero para calcular la edad de una persona, pero la primer fecha me la transforma a 0, las fechas se ingresan con formato aaaa/mm/dd.

#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <iomanip>
using namespace std;

int main(int argc, char *argv[]) {
char fecha[8];
char fechanac[8];

gets(fecha);
gets(fechanac);

int actual, nacimiento;
actual= atoi(fecha);
nacimiento= atoi(fechanac);

int edad;
edad=actual-nacimiento;
cout<<actual;
cout<<"edad: "<<setprecision(2)<<edad;
return 0;
}
#4
Programación C/C++ / ayuda con strings
25 Agosto 2014, 19:27 PM
hola a todos. el problema que tengo con los string es que no puedo ingresar 2 seguidos.

cada vez que declaro los 2 strings y los ingreso por teclado usando gets o cin.getline no se que pasa con el primero que ingrese, no se si se sobre escribe o se borra, pero con el segundo ingresado esto no pasa.

espero que puedan aclararme esta duda, gracias.
#5
Programación C/C++ / string bidemencional
31 Julio 2014, 02:58 AM
hola queria saber, como puedo cargarle datos a un strin bidimencional. por ej. si quiero hacer un arreglo de 40 nombres.

char nombre[40][20];

¿como hago para cargar los nombres por teclados? probe con cin.getline() pero no funciona
#6
Programación C/C++ / ayuda programa c++
28 Julio 2014, 22:53 PM
hola, necesito ayuda con un enunciado que me pide que programe un algoritmo pero tengo un problema.
el enunciado es este: una cadena de comida rapida elabora 7 tipos distintos de hamburguesas que comercializa en 9 franquicias distribuidas en la ciudad. la empresa desea analizar el consumos de sus productos durante el primer cuatrimestre del año.
Se ingresan por teclado pedidos de las diferentes franquicias con la forma: TipoHamburguesa (1...7) y CodSucursal (1...9). Los datos finalizan con TipoHamburguesa igual a 0.  Codifique una sola función que determine el tipo de hamburguesa mas vendido y el local que mayor ventas realizo en total.

y este es el codigo que tengo hasta ahora:
#include <iostream>
using namespace std;

void ventastotales(int ventas[][9], int pedidos, int &ham_masvendida, int &suc_masventas){
int maxvendidas=0; int maxventas=0;
for (int i=0; i<7; i++){
for (int j=0; j<9; j++){
if (i>i-1){
ventas[i][j]=maxvendidas;
}else{
ventas[i-1][j]=maxvendidas;
}
if (j>j-1){
ventas[i][j]=maxventas;
}else{
ventas[i][j-1]=maxventas;
}
maxvendidas=ham_masvendida;
maxventas=suc_masventas;
}
}

}



int main(int argc, char *argv[]) {
int ventas[7][9];

int tipohamburguesa, codsucursal, pedidos;

for (int i=0; i<7; i++){
for (int j=0; j<9; j++){
ventas[i][j]=0;
}
}

cout<<"ingrese tipo de hamburguesa"<<endl;
cin>>tipohamburguesa;

while (tipohamburguesa !=0){
cout<<"ingrese cod. sucursal"<<endl;
cin>>codsucursal;
cout<<"¿cuantos pedidos se registraron?"<<endl;
cin>>pedidos;
ventas[tipohamburguesa][codsucursal]=pedidos;
cout<<"ingrese tipo de hamburguesa"<<endl;
cin>>tipohamburguesa;

}

int hambmasvendida, sucmasventas;
ventastotales(ventas, pedidos, hambmasvendida, sucmasventas);

cout<<"hamburguesa mas vendida"<<endl;
cout<<hambmasvendida<<endl;
cout<<"suc. con mas ventas"<<endl;
cout<<sucmasventas;



return 0;
}


el programa compila bien pero en el resultado me muestra como hamburguesa mas vendida siempre a la num. 2 y en suc. con mas ventas pone numeros al azar.
que puede ser lo que este mal? gracias
#7
Hola. tengo este problema, que creo se soluciona usando arrays. el problema que tengo es que no se como plantear los arreglos ni como recorrerlos de una forma util. necesito ayuda.

ej: la roya es un hongo que afecta a varios cultivos. inspectores del INTA realizaron inspecciones durante todo el 2013 para detectar casos en cultivos en los 19 departamentos de la provincia de santa fe. escriba un programa c++ que ingrese varias ternas de datos de cada inspeccion cant. de casos detectados, mes, codigo del departamento estas ternas terminan ingresando mes cero. un inspector puede haber realizados varias inspecciones en un mismo mes y en un mismo dpto. el programa debe determinar e informar: a) cuantos casos por dpto. fueron detectados en 2013 b)cuantos dptos. no tuvieron casos detectados en mayo c) cuantos casos se detectaron en el dpto. 5 en julio.

que algoritmos se les ocurren que puedan solucionar esto? gracias

#8
Programación C/C++ / Re: ayuda con strings
24 Julio 2014, 17:55 PM
si, es bastante complicado pero de a poco creo que lo voy entendiendo. gracias por la ayuda!
#9
Programación C/C++ / Re: ayuda con strings
24 Julio 2014, 17:27 PM
probe con tus correcciones pero el programa no compila. yo le puse indices a los strings porque crei que era necesario dimencionarlos. no hace falta cuando se programa en una funcion?
#10
Programación C/C++ / ayuda con strings
24 Julio 2014, 17:02 PM
hola. quisiera que me guien un poco con el uso de las funciones de strings en c++.
lo que estoy tratando es de programar un algoritmo que, mediante una funcion, encuentre un char dentro de una cadena(string) y que la parte de la cadena anterior al char la copie en una cadena vacia, y la parte posterior al char en otra. el char no se copia en ninguna. lo que hice fue esto:

void split(char *s[], char *c1[], char *c2[], char *car){
   if (strstr(s[60], car)){
      char aux=s-strlen(strstr(s[60], car));
      strcat(c1[60], aux);
      strcat(c2[60], (strchr(s[60], (strlen(car)+1))));
   }
}

int main(int argc, char *argv[]) {
   char s[60]; char car; char c1[60]; char c2[60];
   cin.getline(s, 60);
   cin>>car;
   
   cout<<split(s,c1,c2,car);
   
   return 0;
}

pero me da errores, como que no puedo convertir char a const char. que significa esto? y como puedo arreglarlo? gracias.