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

Gra cookie kliker. Pytanie odnośnie pętli i optymalizacji.

0 głosów
140 wizyt
pytanie zadane 3 listopada 2016 w C i C++ przez justKaPi Początkujący (250 p.)

Witam. Od niedawna coś tam sobie kodzę i wpadłem na pomysł, żeby napisać grę typu Cookie Clicker. Mam jednak mały problem. Chciałbym aby wszystkie zakupione akcje wykonywały się co sekundę. Chciałbym, żeby to wykonywało się w nieskończonej pętli jednak z możliwością wpisania wartości w konsolę (w celu zakupu,np. babci, albo po prostu kliknięcia) co zmieniałoby zmienną wewnątrz pętli. Kolejną sprawą są int'y. Dałoby się je upchać jakoś w tablice?

 

#include <iostream>
#include <windows.h>
#include <cstdlib>


using namespace std;

int akcja;
int v;

int cookie = 0;

int babcia=0;
int pole=0;
int fabryka=0;
int kopalnia=0;

int x=10;
int y=150;
int z=500;
int k=1500;



int main(){




    for(int i=0; ; i++)
    {




        if(akcja==1){
            cookie +=1;
        }

        if(akcja==2 && x <= cookie){
            cookie -=x;
            x = x+x*2;
            babcia +=1;
        }
        if(akcja==3 && y <= cookie){
            cookie -=y;
            y = y+y*2;
            pole +=1;
        }
        if(akcja==4 && z <= cookie){
            cookie -=z;
            z = z+z*2;
            fabryka +=1;
        }
        if(akcja==5 && k <= cookie){
            cookie -=k;
            k = k+k*2;
            kopalnia +=1;
        }


        v=1+babcia*5+pole*15+fabryka*50+kopalnia*100;

        cout<<"Ilosc ciastek: " << cookie << endl;
        cout <<"1. [Klik]                         <--- Produkuje "<< v <<" ciastek" <<endl;
        cout <<"2. [Babcia] Koszt: (" << x << ")" << "           <--- Produkuje 5 ciastka na klik" << endl;
        cout <<"3. [Pole ciastek] Koszt: (" << y << ")" << "    <--- Produkuje 15 ciastek na klik"<< endl;
        cout <<"4. [Fabryka ciastek] Koszt: (" << z << ")" << " <--- Produkuje 50 ciastek na klik"<<endl;
        cout <<"5. [Kopalnia ciastek] Koszt: (" << k << ")" << " <--- Produkuje 100 ciastek na klik"<<endl;


        cout <<"Akcja: " << flush;

        cin>>akcja;

        cookie = cookie+babcia*5+pole*15+fabryka*50+kopalnia*100;

        cout << cookie << endl;



    }





    return 0;
}

 

1 odpowiedź

+3 głosów
odpowiedź 3 listopada 2016 przez draghan VIP (105,920 p.)

Chciałbym aby wszystkie zakupione akcje wykonywały się co sekundę.

Wykorzystaj timery.

Chciałbym, żeby to wykonywało się w nieskończonej pętli jednak z możliwością wpisania wartości w konsolę (w celu zakupu,np. babci, albo po prostu kliknięcia) co zmieniałoby zmienną wewnątrz pętli.

Niestety, operacje strumieni są blokujące. Jeśli czytasz ze strumienia, to coś w tym strumieniu musi być. Inaczej program się bezwzględnie zatrzyma i będzie oczekiwał na wprowadzenie danych. Średnio to pasuje do logiki działania gry w takim sensie. Co nie znaczy, że się nie da. Jeśli chodzi o rozwiązania tylko dla Windows, poczytaj o funkcji kbhit() albo spójrz tu (trochę wyższy level).

Podobne pytania

0 głosów
1 odpowiedź 121 wizyt
pytanie zadane 3 października 2019 w Bezpieczeństwo, hacking przez michal_php Stary wyjadacz (13,660 p.)
0 głosów
1 odpowiedź 124 wizyt
pytanie zadane 3 stycznia 2018 w PHP przez Ryba2k Nowicjusz (140 p.)
0 głosów
1 odpowiedź 296 wizyt
pytanie zadane 18 września 2016 w PHP przez MatiiTv Gaduła (3,790 p.)

88,325 zapytań

136,919 odpowiedzi

305,557 komentarzy

58,598 pasjonatów

Motyw:

Akcja Pajacyk

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

Sklep oferujący ćwiczenia JavaScript, PHP, rozmowy rekrutacyjne dla programistów i inne materiały

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...