marcin107 Temat założony przez niniejszego użytkownika  | 
Zagadka... przynajmniej dla mnie. » 2011-08-11 16:59:14 Witam, z góry uprzedzam że mogłem napisać ten temat trochę niezrozumiale bo ciężko to wytłumaczyć. Mam pewną zagadkę z którą mam problem konkretnie: Wyobraźcie sobie że jakaś broń ma 9 poziomów ulepszeń, zaczyna się od poziomu 1, i za każdym razem kiedy chce się ulepszyć o 1 jest ryzyko nie powodzenia, broń dodaje na każdym poziomie x obrażeń więcej, obrażenia zapisałem na tablicy, dodają się one w sposób, jeżeli powiedzie się ulepszenie to na pierwszym poziomie  obrazeniabroni[ 9 ] = { 2, 4, 8, 16, 32, 64, 128, 256, 512 );     obrazeniafizyczne = 5;     poziombroni = 1;          obrazeniafizyczne = obrazeniafizyczne + obrazeniabroni[ poziombroni ]     poziombroni++
  a n drugim: obrazeniafizyczne = obrazeniafizyczne - obrazeniabroni[ poziombroni - 1 ] obrazeniafizyczne = obrazeniafizyczne + obrazeniabroni[ poziombroni ] Natomiast jak zrobić żeby odejmowały się wszystkie obrażenia dodatkowe z broni? Czyli powiedzmy że broń rozwaliła mi się na 5 poziomie, jak odjąć od obrażeń fizycznych obrażenia które powinna zadawać broń ?   | 
 | 
pekfos  | 
» 2011-08-11 17:04:43 huh? ogarnij to.  | 
 | 
marcin107 Temat założony przez niniejszego użytkownika  | 
» 2011-08-11 17:09:28 To inaczej, kilka deklaracji mogłem nie wypisać, ale mniej więcej będzie wiadomo o co chodzi, cel tego mieści się przy spaleniu przedmiotu, konkretnie trzeba odjąć jego obrażenia nawet jak będzie na x poziomie, a ja nie wiem jak..  int fizdmgja = 38; int sword = 0; int upgradechance[ 9 ] = { 100, 90, 80, 70, 60, 50, 40, 35, 30 }; int swordcosts[ 9 ] = { 50, 100, 200, 400, 800, 1600, 3200, 6400, 12800 }; int sworddmg[ 9 ] = { 2, 4, 8, 16, 32, 64, 128, 256, 512 };
  void nmoney1() {     std::cout << "Za malo zlota!\n";     Sleep( 1000 );     itemupgrades(); }
  void zakupiony() {     std::cout << "Nie posiadasz tego itemu!\n";     Sleep( 1000 );     itemupgrades(); }
  void brakopcji() {     std::cout << "Nie ma takiej opcji!";     Sleep( 1000 );     itemupgrades(); }
  void surewybor() {     std::cout << "Czy kontynuowac?\n";     std::cout << "1 - tak\n";     std::cout << "2 - nie\n";     std::cin >> surewybor2;     if( surewybor2 == 1 ) { }     else if( surewybor2 == 2 )          itemupgrades();     else          brakopcji();      }
  void spalony() {     using namespace std;          cout << "Ulepszenie itemu nie powiodlo sie!";     Sleep( 1000 );     itemupgrades(); }
  void ulepszony() {     using namespace std;          cout << "Ulepszenie itemu powiodlo sie!\n\n";     Sleep( 1000 ); }
 
 
  if( poz1 == 1 ) {     cout << "Koszt upgrade na poziom +" << sword + 1 << " to " << swordcosts[ sword ] << " zlota\n";     cout << "Szansa na poprawne ulepszenie itemu to " << upgradechance[ sword ] << "%\n";     cout << "Masz " << zloto << " zlota\n";     if( zloto < swordcosts[ sword ] ) nmoney1();          surewybor();     if( surewybor2 == 1 )     {         srand( time( NULL ) );         spali = rand() % 100;         zloto = zloto - swordcosts[ sword ];         if( spali < upgradechance[ sword ] ) ulepszony();         else         {                          Sleep( 2000 );             sword = 0;             poz1 = 0;             spalony();         }         sword++;         fizdmgja = fizdmgja + sworddmg[ sword ];         if( sword >= 1 )              fizdmgja = fizdmgja - sworddmg[ sword - 1 ];                  itemupgrades();     } } else zakupiony();  | 
 | 
pekfos  | 
» 2011-08-11 17:13:17 zapisz sobie jakie były na początku i przywróć.  | 
 | 
marcin107 Temat założony przez niniejszego użytkownika  | 
» 2011-08-11 17:18:00 o kurde, dobre. nie wpadłem na to... dzięki...   | 
 | 
SeaMonster131  | 
» 2011-08-11 17:20:56 obrazeniafizyczne -= obrazeniabroni[ poziom_before_dead - 1 ]; Czy coś takiego :P  | 
 | 
marcin107 Temat założony przez niniejszego użytkownika  | 
» 2011-08-11 17:24:15 a można dodać do siebie jakoś zakres tablic jak np: w tym wypadku, bym chciał odjąć od fizdmgja zakres tablic od 0 do poziomu na którym rozwala się broń?  | 
 | 
Mrowqa  | 
» 2011-08-11 17:26:56 for(; lv_weapon == 1; )      dmg -= dmg_for_upgrade[ lv_weapon-- ];
 
  Czy jakoś tak ;) Zawsze możesz stworzyć bazę itemu ;) (co polecam) /edit: @up nie rozumiem ;/ (uprzedziłeś mnie, to odp. na wcześniejsze pyt.)  | 
 | 
|  « 1 »  2 |