• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

system walki początkujący programista

VPS Starter Arubacloud
0 głosów
397 wizyt
pytanie zadane 4 listopada 2016 w C i C++ przez emce1996 Nowicjusz (170 p.)

cześć mam takie pytanko bo się zastanawiam jak zrobić system walki i napisało mi się cośtakiego

#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;
int walka( int t[], int rozmiar )
{
    srand( time( NULL ) );
    int przedzial =( rand() % 3 ) + 0;
    t[ 0 ] =( rand() % 10 ) + 0; //slabe
    t[ 1 ] =( rand() % 20 ) + 11; //srednie
    t[ 2 ] =( rand() % 30 ) + 31; //mocne
    if( przedzial == 0 )
         cout << "slabo ";
    else if( przedzial == 1 )
         cout << "srednio ";
    else if( przedzial == 2 )
         cout << "mooocno ";
    
    przedzial = t[ przedzial ];
    if( przedzial == 0 )
         cout << endl << endl << " potknales sie czy co 0.o " << endl << endl;
    
    cout << " uderzyles za: " << przedzial;
    return przedzial;
}

int main()
{
    int tablica[ 3 ];
    int suma = 0;
    do
    {
        cout << " wpisz 1 aby zatakowac. ";
        int atak;
        cin >> atak;
        if( atak == 1 )
             suma = suma + walka( tablica, 3 );
        
        cout << " przeciwnikowi zostalo :  " << 1100 - suma << " zycia" << endl;
        
    } while( suma < 1100 );
    
    return 0;
}

w dobrym kierunku idę ?? chodzi mi żeby ciosy były dzielone na słabe średnie i mocne dodam że jestem początkującym programistą ;D 

1 odpowiedź

0 głosów
odpowiedź 4 listopada 2016 przez pewolt Mądrala (5,790 p.)
wybrane 5 listopada 2016 przez emce1996
 
Najlepsza
Witam

Nie jest źle :) lecz nie mam zielonego pojęcia poco zrobiłeś zmienna tablica i rozmiar.

Można by zoptymalizować to i owo ale ogólnie jest dobrze.
komentarz 4 listopada 2016 przez emce1996 Nowicjusz (170 p.)
tablice zrobiłęm dlatego żę są te obrażenia podzielone na słabe średnie i mocne no i przerabiam ten temat akurat ale tak teraz jak na to patrze to też nie wiem po co rozmiar, może dlatego że wcześniej robiłem pętle i się przydaje ta zmienna xD dzięki za odpowiedź. a bez tablicy to jak by to miało wyglądać ?
1
komentarz 4 listopada 2016 przez niezalogowany
Załóżmy masz jakiś określony maksymalny atak. Losujesz 1 liczę w zakresie od 0 do maksymalnego ataku czyli nasz atak i sprawdzasz jaki duży jest. Przykładowo jeżeli większy niż 2/3 maksymalnego to piszesz "mocno".
1
komentarz 4 listopada 2016 przez pewolt Mądrala (5,790 p.)

a bez tablicy to jak by to miało wyglądać ?

wywal tablice z 29 linijki i przenieś tablice z linijki 5 o tak:

int walka()
{
    int t[3];
    srand( time( NULL ) );

 

komentarz 4 listopada 2016 przez emce1996 Nowicjusz (170 p.)
edycja 4 listopada 2016 przez emce1996

yhm zrobione teraz mam taki problem

#include <iostream>
#include <ctime>
#include <cstdlib>
#include <windows.h>
using namespace std;
//void przeciwnik()
//{
   // int tablica[3];
   // cout << "przeciwnik atakuje: ";
     //walka( tablica, 3, 0 );

//}

int walka( int a, int b)
{
    int t[3];
    srand( time( NULL ) );
    int przedzial = ( rand() % 3 ) + 0;
    t[0] = ( rand() % a ) + b; //slabe
    t[1] = ( rand() % a + 10 ) + b + 11; //srednie
    t[2] = ( rand() % a + 20 ) + b + 21; //mocne
    if(przedzial == 0)
    cout << "slabo ";
    else if(przedzial == 1)
    cout << "srednio ";
    else if(przedzial == 2)
    cout << "mooocno ";

    przedzial = t[przedzial];
    return przedzial;
}
//void Gracz()
//{
    //int hp = 100;
    //int mana = 0;

//}

int main()
{
    //int tablica[ 3 ];
    int suma = 0;
    int hit = 0;
    do
    {
    cout << " wpisz 1 aby zatakowac. ";
    int atak;
    cin >> atak;
    if( atak == 1 )
     suma = suma + walka( 10, 0 );
     cout << "uderzyles za: " << suma;

     if( suma == 0 )
    cout << endl<< endl<< " potknales sie czy co 0.o " << endl << endl;

     cout << " przeciwnikowi zostalo :  " << 1100 - suma << " zycia" << endl;
     Sleep(1000);
     hit = hit + walka( 3, 0 );
     cout << "przeciwnik uderzyl za: " << hit << endl;
     if(hit == 0)
     cout<<endl<<endl<<"masz szczescie wyglada na to ze twoj przeciwnik nie jest w najlepszej formie"<<endl<<endl;
     cout << "zostalo ci " << 500 - hit << " zycia" << endl;

    }while( suma < 1100 && hit < 500 );
     return 0;
}

obrażenia się sumują za pierwszym razem działało ale jak dodałem przeciwnika który nam zadaje obrażenia to postanowiły się sumować ;D 

a ja głupi jestem ;D ale chętnie poczytam (wcześniej wyświetlałem info o obrażeniach w funkcji a w mainie to sumowałem jak dodałemm przeciwnika to przełożyłem wiadomość o obrażeniach do main() dlatego błąd heh

komentarz 4 listopada 2016 przez emce1996 Nowicjusz (170 p.)
yhm dzięki ci bardzo, jutro nad tym pomyśle i się pokombinuje ;d złapałem zajawkę hehe
komentarz 4 listopada 2016 przez emce1996 Nowicjusz (170 p.)
a ja głupi jestem ;D ale chętnie poczytam (wcześniej wyświetlałem info o obrażeniach w funkcji a w mainie to sumowałem jak dodałemm przeciwnika to przełożyłem wiadomość o obrażeniach do main() dlatego błąd heh
1
komentarz 4 listopada 2016 przez draghan VIP (106,230 p.)

Radził bym też nie tworzyć zmiennych w jakichkolwiek pętlach ponieważ program zacznie zżerać coraz więcej ramu.

Nieprawda.

komentarz 5 listopada 2016 przez pewolt Mądrala (5,790 p.)
O matko..

Faktycznie, przepraszam D:

Jest tak przy zmiennych dynamicznych podczas dodawania nowych elementów
1
komentarz 5 listopada 2016 przez emce1996 Nowicjusz (170 p.)
nie szkodzi przyjdzie czas na to ;D na razie nie wiem co to zmienna dynamiczna hehe dziękuje wszystkim za odpowiedzi ;)

Podobne pytania

0 głosów
1 odpowiedź 202 wizyt
pytanie zadane 14 kwietnia 2016 w C i C++ przez niezalogowany
+2 głosów
1 odpowiedź 1,168 wizyt
pytanie zadane 20 września 2019 w Nasze projekty przez Itnes Początkujący (350 p.)
+5 głosów
5 odpowiedzi 465 wizyt
pytanie zadane 17 października 2018 w Nasze projekty przez matrix92 Nowicjusz (210 p.)

92,845 zapytań

141,786 odpowiedzi

320,861 komentarzy

62,178 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...