Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Zagadka... przynajmniej dla mnie.

Ostatnio zmodyfikowano 2011-08-11 17:30
Autor Wiadomość
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
C/C++
obrazeniabroni[ 9 ] = { 2, 4, 8, 16, 32, 64, 128, 256, 512 );
    obrazeniafizyczne = 5;
    poziombroni = 1;
   
    obrazeniafizyczne = obrazeniafizyczne + obrazeniabroni[ poziombroni ]
    poziombroni++
a n drugim:
C/C++
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ń ?
P-38821
pekfos
» 2011-08-11 17:04:43
huh? ogarnij to.
P-38827
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..

C/C++
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 );
}

// To oderwana część

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();
P-38834
pekfos
» 2011-08-11 17:13:17
zapisz sobie jakie były na początku i przywróć.
P-38838
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...
P-38846
SeaMonster131
» 2011-08-11 17:20:56
obrazeniafizyczne -= obrazeniabroni[ poziom_before_dead - 1 ];

Czy coś takiego :P
P-38849
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ń?
P-38852
Mrowqa
» 2011-08-11 17:26:56
C/C++
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.)
P-38854
« 1 » 2
  Strona 1 z 2 Następna strona