Miasto

Siemka szukam pomocy
robię program w którym głównym zadaniem jest rozbudowanie miasta póki cochciałbym się zająć pieniądzmi które po zakupie nie zmniejszają się. Więc zwracam się z prośbą edycji kodu tak aby pieniądze się zmniejszały
(C++, GNU GCC Compiler,Code Block)

Kod:

#include
#include
#include <time.h>
#include <windows.h>
#include <stdio.h>
#include
using namespace std;
int wybor, budynek, domy=0, dom1, dom2, dom3, dom4, dom,pieniadze=61000,cena1=60000,cena2=90000,cena3=70000,cena4=20000,wartosc;

int main()
{

SetConsoleTitleA( "City!" );
while(wybor!=2)
{


cout << " -------------------" << endl;
cout << "|     The City!     |" << endl;
cout << "|     1.Graj        |" << endl;
cout << "|     2.Wyjdz       |" << endl;
cout << " -------------------" << endl;
cin>>wybor;
switch (wybor!=2)
{
case 1:
      system("cls");
    cout<<"Gra rozpocznie sie za 3 sekundy";
    //Sleep(3000);
    system("cls");
    for(;;)
    {


    cout<<"Wybierz co bys chcial do swojego maista"<<endl;
    cout<<"1.Dom jednorodzinny(60.000)"<<endl;
    cout<<"2.Blok(100.000)"<<endl;
    cout<<"3.Domek wiejski(90.000)"<<endl;
    cout<<"4.Dom capingowy(20.00)"<<endl;
    cout<<"5.Twoje miasto"<<endl;

    cin>>budynek;
    cout<<endl;

    if(budynek==1)
    {

        cout<<"------------"<<endl;
        cout<<"|          |"<<endl;
        cout<<"|    Dom   |"<<endl;
        cout<<"|          |"<<endl;
        cout<<"------------"<<endl;
        cout<<"Cena= "<<cena1<<endl;
        cout<<"Twoj budzet "<<pieniadze<<endl;
        cout<<endl;
        cout<<endl;
        cout<<"Potwierdzasz?"<<endl;
        cout<<"[1]Tak!"<<endl;
        cout<<"[2]Nie!"<<endl;
        cin>>dom1;
        if(dom1==1)
        {
            if(pieniadze<=cena1)
            {
              cout<<"Niewystarczajaca cena"<<endl;
              getchar();getchar();
            }
            else
            {
                pieniadze-cena1;
            }
        }
        system("cls");

    }








    if(budynek==2)
    {
        cout<<"------------"<<endl;
        cout<<"|          |"<<endl;
        cout<<"|          |"<<endl;
        cout<<"|          |"<<endl;
        cout<<"|   blok   |"<<endl;
        cout<<"|          |"<<endl;
        cout<<"|          |"<<endl;
        cout<<"|          |"<<endl;
        cout<<"|          |"<<endl;
        cout<<"|          |"<<endl;
        cout<<"------------"<<endl;
        cout<<"Cena= "<<cena2<<endl;
        cout<<"Twoj budzet "<<pieniadze<<endl;
        cout<<endl;
        cout<<endl;
        cout<<"Potwierdzasz?"<<endl;
        cout<<"[1]Tak!"<<endl;
        cout<<"[2]Nie!"<<endl;
        cin>>dom2;
        if(dom2==1)
        {
            if(pieniadze<=cena2)
            {
              cout<<"Niewystarczajaca cena"<<endl;
              getchar();getchar();
            }
            else
            {
                pieniadze-cena2;
            }

        }


        system("cls");
    }


    if(budynek==3)
    {
        cout<<"------------"<<endl;
        cout<<"|          |"<<endl;
        cout<<"|Domek wiej|"<<endl;
        cout<<"|          |"<<endl;
        cout<<"|          |"<<endl;
        cout<<"------------"<<endl;
        cout<<"Cena= "<<cena3<<endl;
        cout<<"Twoj budzet "<<pieniadze<<endl;
        cout<<endl;
        cout<<endl;
        cout<<"Potwierdzasz?"<<endl;
        cout<<"[1]Tak!"<<endl;
        cout<<"[2]Nie!"<<endl;
        cin>>dom3;
        if(dom3==1)
        {
            if(pieniadze<=cena3)
            {
              cout<<"Niewystarczajaca cena"<<endl;
              getchar();getchar();
            }
            else
            {
                pieniadze-cena3;
            }
        }
        system("cls");

    }










    if(budynek==4)
    {
        cout<<"------------"<<endl;
        cout<<"|Domek camp|"<<endl;
        cout<<"|          |"<<endl;
        cout<<"------------"<<endl;
        cout<<"Cena= "<<cena4<<endl;
        cout<<"Twoj budzet "<<pieniadze<<endl;
        cout<<endl;
        cout<<endl;
        cout<<"Potwierdzasz?"<<endl;
        cout<<"[1]Tak!"<<endl;
        cout<<"[2]Nie!"<<endl;
        cin>>dom4;
        if(dom4==1)
        {
            if(pieniadze<=cena4)
            {
              cout<<"Niewystarczajaca cena"<<endl;
              getchar();getchar();
            }
            else
            {
                pieniadze-cena4;
            }
        }
        system("cls");

    }




    if(budynek==5)
    {
        if(dom1==1)
        {
            dom1=1;
        }
        else
        {
            dom1=0;
        }
        if(dom2==1)
        {
            dom2=1;
        }
        else
        {
            dom2=0;
        }
        if(dom3==1)
        {
            dom3=1;
        }
        else
        {
            dom3=0;
        }
        if(dom4==1)
        {
            dom4=1;
        }
        else
        {
            dom4=0;
        }


        if(budynek==1,2,3,4)
        {
            cout<<"W twoim miescie znajduja sie "<<dom1+dom2+dom3+dom4<<" budynkow"<<endl;
        }
        if(dom1==1)
        {
           cout<<"------------"<<endl;
        cout<<"|          |"<<endl;
        cout<<"|    Dom   |"<<endl;
        cout<<"|          |"<<endl;
        cout<<"------------"<<endl;
        }



            if(dom2==1)
        {
            cout<<"------------"<<endl;
        cout<<"|          |"<<endl;
        cout<<"|          |"<<endl;
        cout<<"|          |"<<endl;
        cout<<"|   blok   |"<<endl;
        cout<<"|          |"<<endl;
        cout<<"|          |"<<endl;
        cout<<"|          |"<<endl;
        cout<<"|          |"<<endl;
        cout<<"|          |"<<endl;
        cout<<"------------"<<endl;
        }



        if(dom3==1)
        {
            cout<<"------------"<<endl;
        cout<<"|          |"<<endl;
        cout<<"|Domek wiej|"<<endl;
        cout<<"|          |"<<endl;
        cout<<"|          |"<<endl;
        cout<<"------------"<<endl;
        }
        if(dom4==1)
        {
            cout<<"------------"<<endl;
        cout<<"|Domek camp|"<<endl;
        cout<<"|          |"<<endl;
        cout<<"------------"<<endl;
        }








    getchar();getchar();
    system("cls");
    }



    }
    
   break;
case 2:
    exit(0);
    break;


}
}
return 0;

}

Nie zapisujesz zaktualizowanej ilości pieniędzy

pieniadze = pieniadze - cena1;
1 polubienie

Za ten kod i tak należy się maksymalnie 2.0 nawet jak pieniądze się odejmą.
break po exit nie przyszedłby do głowy najsłabszym programistom, podobnie jak puste includy.

if(budynek==1,2,3,4)

To też jest mocne. Używanie system do wyczyszczenia ekranu, brak jakiejkolwiek walidacji inputu itd.
switch (wybor!=2)
Tu w wyniku jest bool, coś zupełnie innego niż autor miał na myśli.

To jest jeden wielki bug i przykład złych praktyk.
I to wszystko widzi człowiek, który nawet nie jest programistą i dotykał C++ ostatnio blisko 10 lat temu.

dzięki

źle się kod skopiował. Break jest po exit(0) bo exit jest w funkcji switch. A poza tym wypowiadanie się na temat języka w którym się nie programowało 10 lat to chyba zły pomysł

Akurat @abcdefghjikl ma trochę racji. break po exit ma mało sensu bo po exit już się żaden kod nie wykona, ale z drugiej strony taki break poprawia czytelność bo jest tam gdzie się go ktoś spodziewa.
Co do ifa

if(budynek==1,2,3,4)

to nie rozumiem jaka za nim stała idea, ale poczytaj o operatorze , (przecinka) bo ten if nie ma logicznego sensu, a program kompiluje się tylko ze względu na to jak działa operator przecinka. Nie działa to raczej w sposób jaki chcesz.

No i? Po co on tam jest? Po nic. Czyli bez sensu.

A poza tym wypowiadanie się na temat języka w którym się nie programowało 10 lat to chyba zły pomysł

Wszystkie uwagi są merytoryczne, nie ma nikogo, kto się z nimi nie zgadza więc sugeruję wziąć je pod uwagę i zastosować. To jest poziom, na który wchodzi się po kilku godzinach nauki albo po 15 minutach jeśli zna się jakiś inny język więc nawet bez bieżącej praktyki łatwo to ocenić. A swoje w C++ napisałem.

To, że uwagi są słuszne i się z nimi nie da nie zgodzić, to ton wypowiedzi pozostawia wiele do życzenia.

Nie każdy musi być takim geniuszem, generalnie polecam nie mierzyć ludzi swoją miarą. To nie są rzeczy oczywiste po kilku godzinach nauki. A pewne niektóre zastosowane elementy składni sugerują, że autor już programował w jakimś nieco bardziej egzotycznym języku niż bazującym na C-style i przekłada niektóre konstrukcje na C++ w sposób błędny. Osobiście obstawiam jakiś język skryptowy.

1 polubienie

Parę uwag ode mnie stosujesz switch przy zmiennej wybór i bardzo dobrze ,ale dlaczego nie stosujesz jej przy budynek? Po za tym do wartości dom przypisujesz tylko 0 lub 1 dla takich przypadków stosuje się bool. To tak na szybko resztę uwag dopiszę jutro.

Pozwól, że będę własne myśli formułował po swojemu, a nie tak jak się komuś podoba.

Pozwól, że swoją opinię i spostrzeżenia będę publikował gdzie chcę i kiedy chcę. Ja Ci niczego nie narzucam, stwierdziłem tylko fakt, a Ty odebrałeś to w błędny sposób i zabraniasz mi mówienia jak masz formułować myśli co nie jest prawdą bo taka sytuacja nie miała miejsca.