Ir para conteúdo
Entre para seguir isso  
Vasigap

Hall of Monsters - Meu primeiro jogo

Recommended Posts

Vasigap    0
Vasigap

Bom,venho aqui postar o primeiro jogo feito por mim...

 

Sim,nao fiz 100% , mas usei uma pequena base....e estou adicionando novas coisas =]

 

Coisas adicionadas por mim >

Xp,level,skills,skill de magia, level de skills , etc =]

 

ae vai o link

 

http://rapidshare.de/files/38330668/Primeiro_jogo.cpp.html

 

Logo logo eu atualizo ele com as coisas novas q eu estou fazendo =]

 

Deem suas opinioes,levando em consideração que comecei a programa hoje Oo hahuahuha

Compartilhar este post


Link para o post
Compartilhar em outros sites
Flamingo    0
Flamingo

Eu sei que não parece educado :)

Mas você conhece o "Agnor"?

Compartilhar este post


Link para o post
Compartilhar em outros sites
Baxnie2    0
Baxnie2

ja usei essa base a 1 ano atras...

ta bom o jogo sim

tenta fazer classes, novos arquivos, nao deixar tudo no mesmo

e depois usa opengl/allegro/sdl pra por 1 visual nisso

Compartilhar este post


Link para o post
Compartilhar em outros sites
Tunico    0
Tunico

Nao gostei muito. mais como e seu primeiro jogo tem uns creditos.

joguei um poco mais nao fez muito meu estilo.;

 

=')

Compartilhar este post


Link para o post
Compartilhar em outros sites
Thuor    0
Thuor

Muito bom,

baixei e joguei.

Rox.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Macrok    0
Macrok

Pow,eu so nb msm...

Queria saber como eu jogo...

:D

Pq ele é .cpp

Como eu abro um arkivo .cpp???

 

 

PS:Eu so nb msm,nunka mexi com programação,só tava aki pra ver um treco,e me interesei pelo nome...

 

//Macrok

Compartilhar este post


Link para o post
Compartilhar em outros sites
Vasigap    0
Vasigap
Eu sei que não parece educado :)

Mas você conhece o "Agnor"?

 

Conheço.....mais vc n queh compara meu joiguinho feito em 10 minutos com o agnor neh ? husduhsdu pelo amor de deus ! =]

 

Pow,eu so nb msm...

Queria saber como eu jogo...

:D

Pq ele é .cpp

Como eu abro um arkivo .cpp???

 

 

PS:Eu so nb msm,nunka mexi com programação,só tava aki pra ver um treco,e me interesei pelo nome...

 

//Macrok

 

 

Tem que compilar....eu compilo e posto depois....vo posta as coisas novas q eu fiz no jogo =] tah legalzinho até... =]

Compartilhar este post


Link para o post
Compartilhar em outros sites
Chê.    1
Chê.

Não gostei, tenta invoar mais.

Os graficos e talz, poderia inovar.

Mas pra primeiro jogo tá bom, aprovado.

Compartilhar este post


Link para o post
Compartilhar em outros sites
vdzz    15
vdzz

hmm, ta legalzin ja que é o primeiro jogo que voce criou.

Só tente inovar mais na relação grafica do jogo, mudar um pouco mais o visual do game.

;)

Compartilhar este post


Link para o post
Compartilhar em outros sites
Vasigap    0
Vasigap

Eh...por enquanto eu vou trabalhar soh com o jogo pelo prompt mesmo....já que acho que muitos de vocÊs nao sabem o trabalho que é para transformar tudo isso em gráfico...

hoje posto a nova "atualização" do jogo =]

 

abraços e valeu pelos elogios =]

Compartilhar este post


Link para o post
Compartilhar em outros sites
Pedro Vincenzo    0
Pedro Vincenzo

Cara, você conheçe classes e hierarquias? Ahoy, você fez esse programa em C++ e não em C. Usa OpenGL, SDL você passa raiva (pareçe bom mais depois não presta).

Compartilhar este post


Link para o post
Compartilhar em outros sites
sipmann    0
sipmann

pra primeiro jogo ta bom... agora soh vai incrementando mais o source e depois sim parte pro visual... muitos querem comessar afobados por visual e dai na hora do source fica fraco!

 

vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites
picanha    0
picanha

Achei um bom passatempo :P...

Ajeitei uma coisa:

 

	case 2:
          		if (player.mp >= 7 ){
                monstro.hp -= player.magiaskill * 10;
       player.magiaxp += 2;
	player.mp -= 7;
 		cout << "\nVoce usou o fogo!" << endl;}
 		else if (player.mp <= 6 ){
                cout << "\nVoce nao tem mana...";
                      goto ataque;}
   	break;

 

Quando vc usava mana... a mana ia ficando negativa, mas mesmo assim afetava... Agora ele te proibi de usar Atke de fogo tantas vezes seguidas... xD

 

Flws, nathbort! xD

 

Edit:

 

Adicionei tbm o comando do windows:

 

system("cls");

 

Que apaga toda aquela poluição visual... xD

 

Flws....

Compartilhar este post


Link para o post
Compartilhar em outros sites
Vasigap    0
Vasigap

Nossa...eu tinha chegado a trabalha no jogo tava bem avançado até...eu jah tinha arrumado o bug da mana, tinha feito um design bom(sem esse comando que eu nao sabia da existencia dele...vlw por me informar =] )

e tava tentando coloca um sistema de save...

 

mais agora fui procura no meu pc e n to axando =/

 

caso eu axe eu posto aki como fico =]

 

vlws pelos comentários e sugestões de todos ! =]

Compartilhar este post


Link para o post
Compartilhar em outros sites
mos    0
mos

Sem a sua autorização, fiz pequenas mudanças, pensei em colocar gold também, pois criei um curandeiro e ia aproveitar e criar uma loja para comprar itens e seria bom ter gold pra controlar essa cura e venda/compra, mas já que o jogo é seu, num quis alterar demais.

 

/*
*  Exemplo 9.4 - Hall of Monsters
*  Propriedade de [url]http://agnor.gamedev-pt.net[/url]
*
*  Autor : João Portela aka Agnor
*  Modificações : Vasigap;Matheus Jacob
*  Data  : 20/02/2004 a 21/02/2004
*  Desc  : Hall of Monsters - jogo-tutorial
*
*/
#include <iostream>
#include <stdlib.h.>
#include <windows.h> //para usar o GetTickCount();
using namespace std;
/************************************
**************ESTRUTURAS*************
************************************/
struct Personagem
{
   int hp; //os pontos de vida
int mp; //Pontos de Mana
int max_hp; // vai ser usada para recuperar o personagem no fim de cada partida
int max_mp; // como dito em cima.....
int forcaskill;
int forcaxp;
int forcamaxp;
int magiaskill;
int magiaxp;
int magiamaxp;
int xp; // a experiencia do personagem
int maxp; // max xp
int level; // level do personagem
};
struct Monstro
{
int hp; // HP do monstro
int forca; //forca do monstro
//monstros não necessitam de MP
char *nome; // necessário para podermos alterar o valor do nome sempre que quisermos...
//será explicado na aula 11 - referências e apontadores
};
/////////////////////////////////////
///////////Variáveis/////////////////
/////////////////////////////////////
Personagem player = {50, 7, 50, 7, 1, 0, 10, 1, 0, 10, 0, 10, 1};
Monstro ORC = { 40, 10, "Orc" };
Monstro LIZARD = { 60, 15, "Lizard" };
Monstro SHADOW = { 100, 23, "Shadow" };
Monstro BAHAMUT = { 140, 31, "Bahamut" };
Monstro ULTIMA = { 1000, 100, "Ultima" };
Monstro Vasigap = { 100, 100, "vasigap" }; // tentem matar este 
/*       *
Declarações das funções
*       */
int exp;
int chamarCurandeiro();
int menuJogo();
int chamarStatus();
int chamarBatalha(Monstro monstro);
int menuBatalha(Monstro monstro);
int MonstroIA(Monstro monstro);
int ganhou();
int perdeu();
int getRandom(int de,  int ate);
int checkXP();
int checkmagiaxp();
int checkforcaxp();
//que main pequeno não é?
int main()
{
menuJogo();
cin.get();
return 0;
}
/* chamarBatalha(monstro);
Desc: chama uma Batalha para um determinado monstro ( ex: chamarBatalha(SHADOW); )
*/
int chamarBatalha (Monstro monstro)
{
system("cls");
cout << "\nApareceu um " << monstro.nome << endl;
menuBatalha(monstro);
return 0;
}
/* Cria o menu de Batalha ( utilizada por chamarBatalha(monstro); )
*/
int chamarStatus()
{
system("cls");
   cout << "\nSeu level : " << player.level << endl;
   cout << "Sua atual xp :" <<player.xp << "/" << player.maxp << endl;
   cout << "\n\nSeu HP: " << player.hp << '/' << player.max_hp << endl;
 cout << "Seu MP: " << player.mp << '/' << player.max_mp << endl;
 cout << "\nSeu level de skill de forca : " << player.forcaskill << endl;
 cout << "Sua xp de skill de forca : " << player.forcaxp << "/" << player.forcamaxp << endl;
 cout << "\nSeu level de magia : " << player.magiaskill;
   cout << "\nSua xp de Magia : " << player.magiaxp << "/" << player.magiamaxp << endl;
   cout << "\n\nPara voltar ao menu: " << endl;
system("pause");
system("cls");    
 menuJogo();
return 0 ;}
int chamarCurandeiro()
{
   int escolha;
system("cls");
   cout << "\nOla aventureiro, se voce estiver ferido, posso lhe curar. Desejas ser curado?" << endl;
   cout << "1 - Curar e voltar ao menu" << endl;
   cout << "2 - Sair e voltar ao menu" << endl;
   cin >> escolha;
   switch (escolha)
   {
    case 1:
    system("cls");
         player.hp=player.max_hp;
      player.mp=player.max_mp;
      menuJogo();
        break;
    case 2:
    system("cls");
      menuJogo();
        break;
 default:
    system("cls");
    cout << "Comando nao conhecido.... tente outra vez" << endl;
    chamarCurandeiro();
    break;
   }
return 0 ;}
int menuBatalha (Monstro monstro)
{
int escolha;
cout << "\nSeu HP: " << player.hp << '/' << player.max_hp << endl;
 cout << "Seu MP: " << player.mp << '/' << player.max_mp << endl;
 cout << "Seu level : " << player.level << endl;
 cout << "Sua atual xp :" <<player.xp << "/" << player.maxp << endl;
 cout << "\nSeu level de skill de forca : " << player.forcaskill << endl;
 cout << "Sua xp de skill de forca : " << player.forcaxp << "/" << player.forcamaxp << endl;
 cout << "\nSeu level de magia : " << player.magiaskill;
   cout << "\nSua xp de Magia : " << player.magiaxp << "/" << player.magiamaxp << endl;
cout << "Escolha um ataque:" << endl;
cout << "\n1 - Ataque normal" << endl;
cout << "2 - Fogo" << endl;
cin >> escolha;
system("cls");
 switch (escolha) {
 case 1:
       int num;
       srand(time(NULL));
       num=rand()%20;
   monstro.hp -= player.forcaskill*7+num;
   player.forcaxp += 2;
   cout << "\nVoce atacou e tirou "<< player.forcaskill*7 << "+" << num << endl;
   break;
case 2:
      if (player.mp >= 7 ){
            srand(time(NULL));
            num=rand()%10;
         monstro.hp -= player.magiaskill*10+num;
            player.magiaxp += 2;
       player.mp -= 7;
        cout << "\nVoce usou o fogo e tirou "<< player.magiaskill*10 << "+" << num << endl;
    break;}
   else{
            cout << "\nSem mana para usar fogo...";
            menuBatalha(monstro);}
  default:
       system("cls");
  cout << "\nComando nao conhecido..." << endl;
  menuBatalha(monstro); 
  //estamos a utilizar recursividade nas funções: o menu vai ser chamado de novo
  break;
}
if ( monstro.hp <= 0 )
 ganhou(); //se só tiver uma instrução, um if não precisa de ter chavetas { ... }
else
 MonstroIA(monstro);
return 0;
}
// A intelegência artificial do Monstro. Para dar mais hipoteses aos jogadores
// só há 25% do Monstro utilizar o ataque especial
int MonstroIA(Monstro monstro)
{
   exp = monstro.forca/4;
int random;
random = getRandom(1, 4);
switch (random)
{
 case 1:
 case 2:
 case 3:
           int num; 
           srand(time(NULL));
           num=rand()%20;
  cout << "\n" << monstro.nome << " atacou e tirou " << monstro.forca << "+" << num << endl;
  player.hp -= monstro.forca+num;
  break;
 case 4:
           srand(time(NULL));
           num=rand()%10;
  cout << "\n" << monstro.nome << " usou o seu ataque especial e tirou " << monstro.forca*2 << "+" << num << endl;
  player.hp -= monstro.forca*2+num;
  break;
}
if (player.hp <= 0)
perdeu();
 else
 menuBatalha(monstro);
return 0;
}
//a popular função getRandom
int getRandom(int de,  int ate) {
   srand(GetTickCount());
   int random = ( rand() % ate ) + de;
   return random;
}
// perdeu ((((
int perdeu()
{
cout << "\nPerdeu... Na proxima vez vais ter mais sorte :(" << endl;
player.hp = player.max_hp;
if (player.xp >= player.maxp)
   checkXP();
if (player.forcaxp >= player.forcamaxp)
   checkforcaxp();
if  (player.magiaxp >= player.magiamaxp)
    checkmagiaxp();
menuJogo();
return 0;
}
//ganhou... e também subiu de nível :PPPP
int ganhou()
{
   int num; 
   srand(time(NULL));
   num=rand()%10;
   player.xp +=num+exp;
cout << "\n\nWee ganhou!! Ganhou " << num << "+" << exp << " xp" << endl;
cout << "Atual xp " << player.xp << "/" << player.maxp << endl;
if (player.xp >= player.maxp)
   checkXP();
if (player.forcaxp >= player.forcamaxp)
   checkforcaxp();
if  (player.magiaxp >= player.magiamaxp)
    checkmagiaxp();
//esperar.....
 cin.get();
menuJogo();
 return 0;
}
// CheckXP
int checkXP()
{
   if (player.xp > player.maxp)
   cout << "[!] Voce Subiu de level ! Status recuperado. " << endl;

   player.max_hp += 10;
   player.max_mp += 7;
   player.hp = player.max_hp; //recuperar a energia
   player.mp = player.max_mp;
   player.maxp += player.level*10;
   player.level += 1;
}
// Checkforcaxp
int checkforcaxp()
{
   cout << "[!] Voce subiu no Skill Forca ! " << endl;
   player.forcaskill += 1;
   player.forcamaxp += player.forcaskill *10;
}
// Checkmagiaxp
int checkmagiaxp()
{
   cout << "[!] Voce subiu no Skill de Magia ! " << endl;
   player.magiaskill += 1;
   player.magiamaxp += player.magiaskill *10;
}
// o menu do jogo
int menuJogo()
{
int escolha;
 cout << "\n1 - Orc HP:40 ATK:10" << endl;
  cout << "\n2 - Lizard HP:60 ATK:15" << endl;
   cout << "\n3 - Shadow HP:100 ATK:23" << endl;
   cout << "\n4 - Bahamut HP:140 ATK:31" << endl;
   cout << "\n5 - ULTIMA HP:1000 ATK:100" << endl;
   cout << "\n6 - Vasigap HP:100 ATK:100" << endl;
   cout << "\n7 - Ir ao Curandeiro" << endl;
   cout << "\n8 - Veja seu Status!" << endl;
 cout << "\nEscolha uma opcao:" << endl;
   cin >> escolha;
   switch (escolha)
   {
    case 1:
      chamarBatalha(ORC);
        break;
       case 2:
        chamarBatalha(LIZARD);
        break;
        case 3:
         chamarBatalha(SHADOW);
        break;
        case 4:
         chamarBatalha(BAHAMUT);
        break;
        case 5:
         chamarBatalha(ULTIMA);
        break;
    case 6 :
            chamarBatalha(Vasigap);
            break;
    case 7 :
            chamarCurandeiro();
            break;
    case 8 :
            chamarStatus();
            break;
 default:
    system("cls");
    cout << "Comando nao conhecido.... tente outra vez" << endl;
    menuJogo();
    break;
   }
    return 0;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites
Vasigap    0
Vasigap
Sem a sua autorização, fiz pequenas mudanças, pensei em colocar gold também, pois criei um curandeiro e ia aproveitar e criar uma loja para comprar itens e seria bom ter gold pra controlar essa cura e venda/compra, mas já que o jogo é seu, num quis alterar demais.

 

/*
*  Exemplo 9.4 - Hall of Monsters
*  Propriedade de [url]http://agnor.gamedev-pt.net[/url]
*
*  Autor : João Portela aka Agnor
*  Modificações : Vasigap;Matheus Jacob
*  Data  : 20/02/2004 a 21/02/2004
*  Desc  : Hall of Monsters - jogo-tutorial
*
*/
#include <iostream>
#include <stdlib.h.>
#include <windows.h> //para usar o GetTickCount();
using namespace std;
/************************************
**************ESTRUTURAS*************
************************************/
struct Personagem
{
   int hp; //os pontos de vida
int mp; //Pontos de Mana
int max_hp; // vai ser usada para recuperar o personagem no fim de cada partida
int max_mp; // como dito em cima.....
int forcaskill;
int forcaxp;
int forcamaxp;
int magiaskill;
int magiaxp;
int magiamaxp;
int xp; // a experiencia do personagem
int maxp; // max xp
int level; // level do personagem
};
struct Monstro
{
int hp; // HP do monstro
int forca; //forca do monstro
//monstros não necessitam de MP
char *nome; // necessário para podermos alterar o valor do nome sempre que quisermos...
//será explicado na aula 11 - referências e apontadores
};
/////////////////////////////////////
///////////Variáveis/////////////////
/////////////////////////////////////
Personagem player = {50, 7, 50, 7, 1, 0, 10, 1, 0, 10, 0, 10, 1};
Monstro ORC = { 40, 10, "Orc" };
Monstro LIZARD = { 60, 15, "Lizard" };
Monstro SHADOW = { 100, 23, "Shadow" };
Monstro BAHAMUT = { 140, 31, "Bahamut" };
Monstro ULTIMA = { 1000, 100, "Ultima" };
Monstro Vasigap = { 100, 100, "vasigap" }; // tentem matar este 
/*       *
Declarações das funções
*       */
int exp;
int chamarCurandeiro();
int menuJogo();
int chamarStatus();
int chamarBatalha(Monstro monstro);
int menuBatalha(Monstro monstro);
int MonstroIA(Monstro monstro);
int ganhou();
int perdeu();
int getRandom(int de,  int ate);
int checkXP();
int checkmagiaxp();
int checkforcaxp();
//que main pequeno não é?
int main()
{
menuJogo();
cin.get();
return 0;
}
/* chamarBatalha(monstro);
Desc: chama uma Batalha para um determinado monstro ( ex: chamarBatalha(SHADOW); )
*/
int chamarBatalha (Monstro monstro)
{
system("cls");
cout << "\nApareceu um " << monstro.nome << endl;
menuBatalha(monstro);
return 0;
}
/* Cria o menu de Batalha ( utilizada por chamarBatalha(monstro); )
*/
int chamarStatus()
{
system("cls");
   cout << "\nSeu level : " << player.level << endl;
   cout << "Sua atual xp :" <<player.xp << "/" << player.maxp << endl;
   cout << "\n\nSeu HP: " << player.hp << '/' << player.max_hp << endl;
 cout << "Seu MP: " << player.mp << '/' << player.max_mp << endl;
 cout << "\nSeu level de skill de forca : " << player.forcaskill << endl;
 cout << "Sua xp de skill de forca : " << player.forcaxp << "/" << player.forcamaxp << endl;
 cout << "\nSeu level de magia : " << player.magiaskill;
   cout << "\nSua xp de Magia : " << player.magiaxp << "/" << player.magiamaxp << endl;
   cout << "\n\nPara voltar ao menu: " << endl;
system("pause");
system("cls");    
 menuJogo();
return 0 ;}
int chamarCurandeiro()
{
   int escolha;
system("cls");
   cout << "\nOla aventureiro, se voce estiver ferido, posso lhe curar. Desejas ser curado?" << endl;
   cout << "1 - Curar e voltar ao menu" << endl;
   cout << "2 - Sair e voltar ao menu" << endl;
   cin >> escolha;
   switch (escolha)
   {
    case 1:
    system("cls");
         player.hp=player.max_hp;
      player.mp=player.max_mp;
      menuJogo();
        break;
    case 2:
    system("cls");
      menuJogo();
        break;
 default:
    system("cls");
    cout << "Comando nao conhecido.... tente outra vez" << endl;
    chamarCurandeiro();
    break;
   }
return 0 ;}
int menuBatalha (Monstro monstro)
{
int escolha;
cout << "\nSeu HP: " << player.hp << '/' << player.max_hp << endl;
 cout << "Seu MP: " << player.mp << '/' << player.max_mp << endl;
 cout << "Seu level : " << player.level << endl;
 cout << "Sua atual xp :" <<player.xp << "/" << player.maxp << endl;
 cout << "\nSeu level de skill de forca : " << player.forcaskill << endl;
 cout << "Sua xp de skill de forca : " << player.forcaxp << "/" << player.forcamaxp << endl;
 cout << "\nSeu level de magia : " << player.magiaskill;
   cout << "\nSua xp de Magia : " << player.magiaxp << "/" << player.magiamaxp << endl;
cout << "Escolha um ataque:" << endl;
cout << "\n1 - Ataque normal" << endl;
cout << "2 - Fogo" << endl;
cin >> escolha;
system("cls");
 switch (escolha) {
 case 1:
       int num;
       srand(time(NULL));
       num=rand()%20;
   monstro.hp -= player.forcaskill*7+num;
   player.forcaxp += 2;
   cout << "\nVoce atacou e tirou "<< player.forcaskill*7 << "+" << num << endl;
   break;
case 2:
      if (player.mp >= 7 ){
            srand(time(NULL));
            num=rand()%10;
         monstro.hp -= player.magiaskill*10+num;
            player.magiaxp += 2;
       player.mp -= 7;
        cout << "\nVoce usou o fogo e tirou "<< player.magiaskill*10 << "+" << num << endl;
    break;}
   else{
            cout << "\nSem mana para usar fogo...";
            menuBatalha(monstro);}
  default:
       system("cls");
  cout << "\nComando nao conhecido..." << endl;
  menuBatalha(monstro); 
  //estamos a utilizar recursividade nas funções: o menu vai ser chamado de novo
  break;
}
if ( monstro.hp <= 0 )
 ganhou(); //se só tiver uma instrução, um if não precisa de ter chavetas { ... }
else
 MonstroIA(monstro);
return 0;
}
// A intelegência artificial do Monstro. Para dar mais hipoteses aos jogadores
// só há 25% do Monstro utilizar o ataque especial
int MonstroIA(Monstro monstro)
{
   exp = monstro.forca/4;
int random;
random = getRandom(1, 4);
switch (random)
{
 case 1:
 case 2:
 case 3:
           int num; 
           srand(time(NULL));
           num=rand()%20;
  cout << "\n" << monstro.nome << " atacou e tirou " << monstro.forca << "+" << num << endl;
  player.hp -= monstro.forca+num;
  break;
 case 4:
           srand(time(NULL));
           num=rand()%10;
  cout << "\n" << monstro.nome << " usou o seu ataque especial e tirou " << monstro.forca*2 << "+" << num << endl;
  player.hp -= monstro.forca*2+num;
  break;
}
if (player.hp <= 0)
perdeu();
 else
 menuBatalha(monstro);
return 0;
}
//a popular função getRandom
int getRandom(int de,  int ate) {
   srand(GetTickCount());
   int random = ( rand() % ate ) + de;
   return random;
}
// perdeu ((((
int perdeu()
{
cout << "\nPerdeu... Na proxima vez vais ter mais sorte :(" << endl;
player.hp = player.max_hp;
if (player.xp >= player.maxp)
   checkXP();
if (player.forcaxp >= player.forcamaxp)
   checkforcaxp();
if  (player.magiaxp >= player.magiamaxp)
    checkmagiaxp();
menuJogo();
return 0;
}
//ganhou... e também subiu de nível :PPPP
int ganhou()
{
   int num; 
   srand(time(NULL));
   num=rand()%10;
   player.xp +=num+exp;
cout << "\n\nWee ganhou!! Ganhou " << num << "+" << exp << " xp" << endl;
cout << "Atual xp " << player.xp << "/" << player.maxp << endl;
if (player.xp >= player.maxp)
   checkXP();
if (player.forcaxp >= player.forcamaxp)
   checkforcaxp();
if  (player.magiaxp >= player.magiamaxp)
    checkmagiaxp();
//esperar.....
 cin.get();
menuJogo();
 return 0;
}
// CheckXP
int checkXP()
{
   if (player.xp > player.maxp)
   cout << "[!] Voce Subiu de level ! Status recuperado. " << endl;

   player.max_hp += 10;
   player.max_mp += 7;
   player.hp = player.max_hp; //recuperar a energia
   player.mp = player.max_mp;
   player.maxp += player.level*10;
   player.level += 1;
}
// Checkforcaxp
int checkforcaxp()
{
   cout << "[!] Voce subiu no Skill Forca ! " << endl;
   player.forcaskill += 1;
   player.forcamaxp += player.forcaskill *10;
}
// Checkmagiaxp
int checkmagiaxp()
{
   cout << "[!] Voce subiu no Skill de Magia ! " << endl;
   player.magiaskill += 1;
   player.magiamaxp += player.magiaskill *10;
}
// o menu do jogo
int menuJogo()
{
int escolha;
 cout << "\n1 - Orc HP:40 ATK:10" << endl;
  cout << "\n2 - Lizard HP:60 ATK:15" << endl;
   cout << "\n3 - Shadow HP:100 ATK:23" << endl;
   cout << "\n4 - Bahamut HP:140 ATK:31" << endl;
   cout << "\n5 - ULTIMA HP:1000 ATK:100" << endl;
   cout << "\n6 - Vasigap HP:100 ATK:100" << endl;
   cout << "\n7 - Ir ao Curandeiro" << endl;
   cout << "\n8 - Veja seu Status!" << endl;
 cout << "\nEscolha uma opcao:" << endl;
   cin >> escolha;
   switch (escolha)
   {
    case 1:
      chamarBatalha(ORC);
        break;
       case 2:
        chamarBatalha(LIZARD);
        break;
        case 3:
         chamarBatalha(SHADOW);
        break;
        case 4:
         chamarBatalha(BAHAMUT);
        break;
        case 5:
         chamarBatalha(ULTIMA);
        break;
    case 6 :
            chamarBatalha(Vasigap);
            break;
    case 7 :
            chamarCurandeiro();
            break;
    case 8 :
            chamarStatus();
            break;
 default:
    system("cls");
    cout << "Comando nao conhecido.... tente outra vez" << endl;
    menuJogo();
    break;
   }
    return 0;
}

 

 

 

Que isso ! Modifique o quanto você quiser....o jogo nao eh meu....eu peguei uma base e apenas modifiquei,igual a você... =]

 

Poxa ficou muito bom parabens =]

 

Agora dah até pra brinca po... =]

 

A razões deste jogo eh todos ajudarem a implementar, e servir de estudos a outras pessoas...

 

por exemplo eu nao entendi 2 coisas que você colocou :

 

srand(time(NULL));

num=rand()%20;

 

pra q serve esse time null ?

 

e como voce colocou rand apenas botando esse %20 ? Oo como que funciona isso ? =]

 

sou bem iniciante ^^

 

abraços e parabens= ]

Compartilhar este post


Link para o post
Compartilhar em outros sites
mos    0
mos

No jogo já tinha a função rand() usando o GetTickCount, eu só fiz mudá-la. Ela serve pra criar um número aleatório de 0 a x, onde x é você quem determina. No exemplo abaixo ele vai de 0 a 20, ou seja, é como se rolasse 1d20 (um dado de 20 faces).

 

srand(time(NULL));

num=rand()%20;

 

 

E aqui está a parte do código que já tinha a função:

"//a popular função getRandom

int getRandom(int de, int ate) {

srand(GetTickCount());

int random = ( rand() % ate ) + de;

return random;

}"

 

O time null é pra fazer sem esperar tempo algum, ou seja, tempo nulo.

Se eu entendi bem, o jogo não é seu, mas o nome do tópico é "meu primeiro jogo"... Como assim? Não entendi essa hehe...

Compartilhar este post


Link para o post
Compartilhar em outros sites
Vasigap    0
Vasigap
No jogo já tinha a função rand() usando o GetTickCount, eu só fiz mudá-la. Ela serve pra criar um número aleatório de 0 a x, onde x é você quem determina. No exemplo abaixo ele vai de 0 a 20, ou seja, é como se rolasse 1d20 (um dado de 20 faces).

 

srand(time(NULL));

num=rand()%20;

 

 

E aqui está a parte do código que já tinha a função:

"//a popular função getRandom

int getRandom(int de, int ate) {

srand(GetTickCount());

int random = ( rand() % ate ) + de;

return random;

}"

 

O time null é pra fazer sem esperar tempo algum, ou seja, tempo nulo.

Se eu entendi bem, o jogo não é seu, mas o nome do tópico é "meu primeiro jogo"... Como assim? Não entendi essa hehe...

 

 

Eh só q eu n sabia q dava pra simplifica tanto assim o rand...eu fazia de outro jeito =]

 

Bom, eu peguei o jogo, mais tava BEM esqueleto...e eu incrementei...

 

Eu botei meu primeiro jogo, pois nao fica bom colocar : minha primeira modificação ¬¬

 

hahah

 

abraços

 

 

Edit:

 

Como você pode ver no próprio jogo :

 

xemplo 9.4 - Hall of Monsters

* Propriedade de http://agnor.gamedev-pt.net

*

* Autor : João Portela aka Agnor

* Modificações : Vasigap;Matheus Jacob

* Data : 20/02/2004 a 21/02/2004

* Desc : Hall of Monsters - jogo-tutorial

Compartilhar este post


Link para o post
Compartilhar em outros sites
mos    0
mos

Segue a versão 9.5, com algumas modificações e agora coloquei no arquivo a data da última modificação, logo no início. Se eu tiver tempo alguma dia, acho que implemento itens.

 

Algumas modificações:

Fiz uma proporção nos monstros, agora o HP deles são 2x o do anterior enquanto o ATK é 1,5x o do anterior, coloquei level limite para certos monstros, pois senão ficava muito fácil upar, criei gold que servirá tanto para ser curado, quanto para treinar skills e também é uma penalidade quando morre, perde metade do gold e antes, quando morria, não acontecia nada demais. Como já disse, criei um lugar para treino, com probabilidade de 25% de ter um treino excelente e 75% um treino moderado, modifiquei um monstro, tirei o vasigap e coloquei o guardian (desculpe se num gostou), coloquei algumas cores no jogo, apenas para dar um constrate maior, criei algumas variavéis para funcionar certas coisas e o resto você descobre jogando.

É só copiar o código abaixo no compilador e compilar.

 

/*
*  Exemplo 9.5 - Hall of Monsters
*  Propriedade de [url]http://agnor.gamedev-pt.net[/url]
*
*  Autor : João Portela aka Agnor
*  Modificações : Vasigap;Matheus Jacob; mos
*  Data  : 20/02/2004 a 21/02/2004
*  Última modificação: 15/04/2008
*  Desc  : Hall of Monsters - jogo-tutorial
*
*/
#include <iostream>
#include <stdlib.h.>
#include <windows.h> //para usar o GetTickCount();
using namespace std;
/************************************
**************ESTRUTURAS*************
************************************/
struct Personagem
{
   int hp; //os pontos de vida
int mp; //Pontos de Mana
int max_hp; // vai ser usada para recuperar o personagem no fim de cada partida
int max_mp; // como dito em cima.....
int forcaskill;
int forcaxp;
int forcamaxp;
int magiaskill;
int magiaxp;
int magiamaxp;
int xp; // a experiencia do personagem
int maxp; // max xp
int level; // level do personagem
};
struct Monstro
{
int hp; // HP do monstro
int forca; //forca do monstro
//monstros não necessitam de MP
char *nome; // necessário para podermos alterar o valor do nome sempre que quisermos...
//será explicado na aula 11 - referências e apontadores
};
/////////////////////////////////////
///////////Variáveis/////////////////
/////////////////////////////////////
Personagem player = {50, 7, 50, 7, 1, 0, 10, 1, 0, 10, 0, 10, 1};
Monstro ORC = { 40, 10, "Orc" };
Monstro LIZARD = { 80, 15, "Lizard" };
Monstro SHADOW = { 160, 23, "Shadow" };
Monstro BAHAMUT = { 320, 35, "Bahamut" };
Monstro ULTIMA = { 1280, 78, "Ultima" };
Monstro Guardian = { 640, 53, "Guardian" }; // tentem matar este 
/*       *
Declarações das funções
*       */
int exp,cura,gold=0;
int chamarCurandeiro();
int menuJogo();
int chamarStatus();
int chamarBatalha(Monstro monstro);
int menuBatalha(Monstro monstro);
int MonstroIA(Monstro monstro);
int ganhou();
int perdeu();
int getRandom(int de,  int ate);
int checkXP();
int checkmagiaxp();
int checkforcaxp();
//que main pequeno não é?
int main()
{
menuJogo();
cin.get();
return 0;
}
/* chamarBatalha(monstro);
Desc: chama uma Batalha para um determinado monstro ( ex: chamarBatalha(SHADOW); )
*/
int chamarBatalha (Monstro monstro)
{
system("cls");
cout << "\nApareceu um " << monstro.nome << endl;
menuBatalha(monstro);
return 0;
}
/* Cria o menu de Batalha ( utilizada por chamarBatalha(monstro); )
*/
int chamarStatus()
{
system("cls");
   cout << "\nSeu level : " << player.level << endl;
   cout << "Sua atual xp :" <<player.xp << "/" << player.maxp << endl;
   cout << "Seu gold : " << gold << endl;
   cout << "\n\nSeu HP: " << player.hp << '/' << player.max_hp << endl;
 cout << "Seu MP: " << player.mp << '/' << player.max_mp << endl;
 cout << "\nSeu level de skill de forca : " << player.forcaskill << endl;
 cout << "Sua xp de skill de forca : " << player.forcaxp << "/" << player.forcamaxp << endl;
 cout << "\nSeu level de magia : " << player.magiaskill;
   cout << "\nSua xp de Magia : " << player.magiaxp << "/" << player.magiamaxp << endl;
   cout << "\n\nPara voltar ao menu: " << endl;
system("pause");
system("cls");    
 menuJogo();
return 0 ;}
int chamarCurandeiro()
{
   int escolha;
system("cls");
cura = player.level*10;
   cout << "Ola aventureiro, se voce estiver ferido, posso lhe curar por " << cura << " gold." << endl;
   cout << "Voce tem " << gold << " gold e seu HP atual eh " << player.hp << '/' << player.max_hp << "." << endl;
   cout << "1 - Curar e voltar ao menu" << endl;
   cout << "2 - Sair e voltar ao menu" << endl;
   cin >> escolha;
   switch (escolha)
   {
    case 1:
           if (gold >= cura && player.hp != player.max_hp){
                cout << "\nVoce foi totalmente curado. Volte sempre." << endl;
                system("pause");
             system("cls");
              player.hp=player.max_hp;
           player.mp=player.max_mp;
           gold -= cura;
           menuJogo();
             break;}
           else if (player.hp == player.max_hp){
                cout << "\nVoce nao esta ferido." << endl;
                system("pause");
                system("cls");
                menuJogo();
                break;}
           else{
                cout << "\nVoce nao tem gold suficiente." << endl;
                system("pause");
                system("cls");
                menuJogo();
                break;}
    case 2:
    system("cls");
      menuJogo();
        break;
 default:
    system("cls");
    cout << "Comando nao conhecido.... tente outra vez" << endl;
    chamarCurandeiro();
    break;
   }
return 0 ;
}
int chamarTreino()
{
   int escolha;
system("cls");
   cout << "Ola aventureiro, se voce esta fraco, eu posso lhe treinar." << endl;
   cout << "Voce tem " << gold << " gold e seu skill de forca/magia eh " << player.forcaxp << '/' << player.magiaxp << "." << endl;
   cout << "1 - Treinar forca 14gold" << endl;
   cout << "2 - Treinar magia 20gold" << endl;
   cout << "3 - Voltar ao menu" << endl;
   cin >> escolha;
   switch (escolha)
   {
    case 1:
           if (gold >= 14){
               int random;
                random = getRandom(1, 4);
              switch (random)
             {
              case 1:
                 case 2:
                 case 3:
                    int num; 
                    srand(time(NULL));
                    num=rand()%2+1;
                    cout << "\nVoce teve um treino moderado e aumentou " << num << " pontos na skill de forca." << endl;
                    player.forcaxp += num;
                    system("pause");
                 system("cls");
                    menuJogo();
                   break;
                    case 4:
                    srand(time(NULL));
                    num=rand()%2+2;
                    cout << "\nVoce teve um treino excelente e aumentou " << num << " pontos na skill de forca." << endl;
                    player.forcaxp += num;
                    system("pause");
                 system("cls");
                    menuJogo();
                   break;
                 }
           }
           else {
                cout << "\nVoce nao tem gold suficiente." << endl;
                system("pause");
                system("cls");
                menuJogo();
                break;}
    case 2:
           if (gold >= 20){
               int random;
                random = getRandom(1, 4);
              switch (random)
             {
              case 1:
                 case 2:
                 case 3:
                    int num; 
                    srand(time(NULL));
                    num=rand()%2+1;
                    cout << "Voce teve um treino moderado e aumentou " << num << " pontos na skill de magia." << endl;
                    player.magiaxp += num;
                    system("pause");
                 system("cls");
                    menuJogo();
                   break;
                    case 4:
                    srand(time(NULL));
                    num=rand()%2+2;
                    cout << "Voce teve um treino excelente e aumentou " << num << " pontos na skill de magia." << endl;
                    player.magiaxp += num;
                    system("pause");
                 system("cls");
                    menuJogo();
                   break;
                 }
           }
           else {
                cout << "Voce nao tem gold suficiente." << endl;
                system("pause");
                system("cls");
                menuJogo();
                break;}
    case 3:
    system("cls");
      menuJogo();
        break;
 default:
    system("cls");
    cout << "Comando nao conhecido.... tente outra vez" << endl;
    chamarCurandeiro();
    break;
   }
return 0 ;
}
int menuBatalha (Monstro monstro)
{
int escolha;
   system ("color 0C");
   cout << "\nSeu gold: " << gold << endl;
cout << "Seu HP: " << player.hp << '/' << player.max_hp << endl;
 cout << "Seu MP: " << player.mp << '/' << player.max_mp << endl;
 cout << "Seu level : " << player.level << endl;
 cout << "Sua atual xp :" <<player.xp << "/" << player.maxp << endl;
 cout << "\nSeu level de skill de forca : " << player.forcaskill << endl;
 cout << "Sua xp de skill de forca : " << player.forcaxp << "/" << player.forcamaxp << endl;
 cout << "\nSeu level de magia : " << player.magiaskill;
   cout << "\nSua xp de Magia : " << player.magiaxp << "/" << player.magiamaxp << endl;
cout << "Escolha um ataque:" << endl;
cout << "\n1 - Ataque normal" << endl;
cout << "2 - Fogo" << endl;
cin >> escolha;
system("cls");
 switch (escolha) {
 case 1:
       int num;
       srand(time(NULL));
       num=rand()%20;
   monstro.hp -= player.forcaskill*7+num;
   player.forcaxp += 2;
   cout << "\nVoce atacou e tirou "<< player.forcaskill*7 << "+" << num << endl;
   break;
case 2:
      if (player.mp >= 7 ){
            srand(time(NULL));
            num=rand()%10;
         monstro.hp -= player.magiaskill*10+num;
            player.magiaxp += 2;
       player.mp -= 7;
        cout << "\nVoce usou o fogo e tirou "<< player.magiaskill*10 << "+" << num << endl;
    break;}
   else{
            cout << "\nSem mana para usar fogo...";
            menuBatalha(monstro);}
  default:
       system("cls");
  cout << "\nComando nao conhecido..." << endl;
  menuBatalha(monstro); 
  //estamos a utilizar recursividade nas funções: o menu vai ser chamado de novo
  break;
}
if ( monstro.hp <= 0 )
 ganhou(); //se só tiver uma instrução, um if não precisa de ter chavetas { ... }
else
 MonstroIA(monstro);
return 0;
}
// A intelegência artificial do Monstro. Para dar mais hipoteses aos jogadores
// só há 25% do Monstro utilizar o ataque especial
int MonstroIA(Monstro monstro)
{
   exp = monstro.forca/4;
int random;
random = getRandom(1, 4);
switch (random)
{
 case 1:
 case 2:
 case 3:
           int num; 
           srand(time(NULL));
           num=rand()%20;
  cout << "\n" << monstro.nome << " atacou e tirou " << monstro.forca << "+" << num << endl;
  player.hp -= monstro.forca+num;
  break;
 case 4:
           srand(time(NULL));
           num=rand()%10;
  cout << "\n" << monstro.nome << " usou o seu ataque especial e tirou " << monstro.forca*2 << "+" << num << endl;
  player.hp -= monstro.forca*2+num;
  break;
}
if (player.hp <= 0)
perdeu();
 else
 menuBatalha(monstro);
return 0;
}
//a popular função getRandom
int getRandom(int de,  int ate) {
   srand(GetTickCount());
   int random = ( rand() % ate ) + de;
   return random;
}
// perdeu ((((
int perdeu()
{
cout << "\nVoce morreu e perdeu metade do seu gold. Mais sorte da proxima vez." << endl;
player.hp = player.max_hp;
gold = gold/2;
if (player.xp >= player.maxp)
   checkXP();
if (player.forcaxp >= player.forcamaxp)
   checkforcaxp();
if  (player.magiaxp >= player.magiamaxp)
    checkmagiaxp();
menuJogo();
return 0;
}
//ganhou... e também subiu de nível :PPPP
int ganhou()
{
   int num,din; 
   srand(time(NULL));
   num=rand()%10;
   player.xp +=num+exp;
   gold +=num*2+1;
   din = num*2+1;
   system ("color 0C");
cout << "\n\nVoce venceu!! Ganhou " << num << "+" << exp << " xp" << " e " << din << " gold." << endl;
cout << "Atual xp " << player.xp << "/" << player.maxp << endl;
system ("pause");
system ("cls");
if (player.xp >= player.maxp)
   checkXP();
if (player.forcaxp >= player.forcamaxp)
   checkforcaxp();
if  (player.magiaxp >= player.magiamaxp)
    checkmagiaxp();
//esperar.....
 cin.get();
menuJogo();
 return 0;
}
// CheckXP
int checkXP()
{
   if (player.xp > player.maxp)
   cout << "[!] Voce Subiu de level ! Status recuperado. " << endl;

   player.max_hp += 10;
   player.max_mp += 7;
   player.hp = player.max_hp; //recuperar a energia
   player.mp = player.max_mp;
   player.maxp += player.level*10;
   player.level += 1;
system ("pause");
system ("cls");
}
// Checkforcaxp
int checkforcaxp()
{
   cout << "[!] Voce subiu no Skill Forca ! " << endl;
   player.forcaskill += 1;
   player.forcamaxp += player.forcaskill *10;
system ("pause");
system ("cls");
}
// Checkmagiaxp
int checkmagiaxp()
{
   cout << "[!] Voce subiu no Skill de Magia ! " << endl;
   player.magiaskill += 1;
   player.magiamaxp += player.magiaskill *10;
system ("pause");
system ("cls");
}
// o menu do jogo
int menuJogo()
{
int escolha;
   system ("color 0F");
 cout << "\n1 - Orc HP:40 ATK:10" << endl;
  cout << "\n2 - Lizard HP:80 ATK:15" << endl;
   cout << "\n3 - Shadow HP:160 ATK:23" << endl;
   cout << "\n4 - Bahamut HP:320 ATK:35" << endl;
   cout << "\n5 - Guardian HP:640 ATK:53" << endl;
   cout << "\n6 - ULTIMA HP:1280 ATK:78" << endl;
   cout << "\n7 - Ir ao Curandeiro" << endl;
   cout << "\n8 - Treinar skills" << endl;
   cout << "\n9 - Veja seu Status!" << endl;
 cout << "\nEscolha uma opcao:" << endl;
   cin >> escolha;
   switch (escolha)
   {
    case 1:
           if (player.level <= 4){
           chamarBatalha(ORC);
             break;}
           else {
                system("cls");
                cout << "Seu level eh muito alto para enfrentar Orc." << endl;
                menuJogo();
                break;}
       case 2:
           if (player.level <= 8){
           chamarBatalha(LIZARD);
             break;}
           else {
                system("cls");
                cout << "Seu level eh muito alto para enfrentar Lizard." << endl;
                menuJogo();
                break;}
        case 3:
           if (player.level <= 12){
           chamarBatalha(SHADOW);
             break;}
           else {
                system("cls");
                cout << "Seu level eh muito alto para enfrentar Shadow." << endl;
                menuJogo();
                break;}
        case 4:
           if (player.level <= 16){
           chamarBatalha(BAHAMUT);
             break;}
           else {
                system("cls");
                cout << "Seu level eh muito alto para enfrentar Bahamut." << endl;
                menuJogo();
                break;}
        case 5:
           if (player.level <= 20){
           chamarBatalha(Guardian);
             break;}
           else {
                system("cls");
                cout << "Seu level eh muito alto para enfrentar Guardian." << endl;
                menuJogo();
                break;}
    case 6 :
            chamarBatalha(ULTIMA);
            break;
    case 7 :
            chamarCurandeiro();
            break;
    case 8 :
            chamarTreino();
            break;
    case 9 :
            chamarStatus();
            break;
 default:
    system("cls");
    cout << "Comando nao conhecido.... tente outra vez" << endl;
    menuJogo();
    break;
   }
    return 0;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites
Vasigap    0
Vasigap

Po, ficou com outra cara ! =]

 

Eu to trabalhando em um sistema de login/senha e save...e profissão....devo acabar hoje provavelmente, ae eu edito aki pra mostra como fico =]

 

abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça login para comentar

Você vai ser capaz de deixar um comentário após fazer o login



Entrar Agora
Entre para seguir isso  

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×