problem z prostą grą w c++

0

Witam!
Postanowiłem napisać prostą grę w c++. Niestety nie działa jedna z funkcji która miałaby naliczać dni. Oto kod: http://wklej.org/id/511849/ . Gdzie popełniłem błąd?

#include <iostream>
#include <cstdlib>
using namespace std;

int konto=1000;
int klient=10;

int cukier;
int ziemniaki;
int kapusta;
int marchewka;
int czekolada;
int chipsy;
int dzien=1;

void zakupy();
void reklama();
void nastepny_dzien();

int main()
{
	cout<<"Witam w grze w ktorej poprowadzisz swoj wlasny sklep spozywczy!\n\n\n";

			

	void(*twf[3])()={&zakupy,
					&reklama,
					&nastepny_dzien};

	int co;

	while(1)
	{
		cout<<"\t\t\t------------- MENU ------------\n"
			<<"\t\tWybierz 0, aby zakupic produkty do swojego sklepu.\n"
			<<"\t\tWybierz 1, aby zrobic reklame sklepu.\n"
			<<"\t\tWybierz 2, aby przejsc do nastepnego dnia\n"
			<<"\t\tWybierz 5, aby wyjsc.\n\n";

	cout<<"\nStan konta: "<<konto<<" zl\t\t Ilosc klientow: "<<klient<<" klientow"<<"\t\tDzien: "<<dzien<<"\n"
		<<"\t\tIlosc twoich produktow: \n"
		<<cukier<<" kg cukru\t\t\t"
		<<ziemniaki<<" kg ziemniakow\n"
		<<kapusta<<" glowek kapusty\t\t"
		<<marchewka<<" sztuk marchewki\n"
		<<czekolada<<" tabliczek czekolady\t\t"
		<<chipsy<<" paczek chipsow\n\n";

		cin>>co;

		switch(co)
		{
		case 0:
		case 1:
			(*twf[co])();
			break;


		case 5:
			exit(1);

		default:
			break;
		}
	}



	system("pause");
}
void zakupy()
{
	int produkt;

	cout<<"Wybierz 1, aby zakupic marchewke = 100 szt.\n"
		<<"Wybierz 2, aby zakupic ziemniaki = 100 szt.\n"
		<<"Wybierz 3, aby zakupic cukier = 100 szt.\n"
		<<"Wybierz 4, aby zakupic kapuste = 100 szt.\n"
		<<"Wybierz 5, aby zakupic czekolade 100 szt.\n"
		<<"Wybierz 6, aby zakupic chipsy = 100 szt.\n"
		<<"Zakup każdego produktu to koszt 100 zl\n";

	cin>>produkt;
	switch(produkt)
	{
	case 1:
		marchewka=marchewka+100;
		konto=konto-100;
		break;
	case 2:
		ziemniaki=ziemniaki+100;
		konto=konto-100;
		break;
	case 3:
		cukier=cukier+100;
		konto=konto-100;
		break;
	case 4:
		kapusta=kapusta+100;
		konto=konto-100;
		break;
	case 5:
		czekolada=czekolada+100;
		konto=konto-100;
		break;
	case 6:
		chipsy=chipsy+100;
		konto=konto-100;
		break;

	default:
		break;
	}
}
void reklama()
{

	int jaka;
	cout<<" \tWybierz rodzaj reklamy\n"
		<<"1 - reklama na plakatach = 50 zl\n"
		<<"2 - reklama w gazecie = 75 zl\n"
		<<"3 - reklama w radio = 100 zl\n"
		<<"4 - reklama w telewizji = 250 zl\n"
		<<"5 - reklama na bilbordach = 750 zl\n";
	cin>>jaka;
	switch(jaka)
	{
	case 1:
		klient=klient+3;
		konto=konto-10;
		break;
	case 2:
		klient=klient+5;
		konto=konto-50;
		break;
	case 3:
		klient=klient+10;
		konto=konto-75;
		break;
	case 4:
		klient=klient+15;
		konto=konto-250;
		break;
	case 5:
		klient=klient+20;
		konto=konto-750;
		break;

	default:
		break;
	}
}
void nastepny_dzien()
{
	klient=klient+2;
	dzien++;
	if(konto<0)
	{
		cout<<"Jestes bankrutem!!!";
		exit(1);
	}

	if(marchewka>0, cukier>0, ziemniaki>0, kapusta>0, czekolada>0, chipsy>0)
	{
		klient=klient+2;
		dzien++;
		konto=klient*10;
	
		marchewka=marchewka-6;
		cukier=cukier-10;
		ziemniaki=ziemniaki-15;
		kapusta=kapusta-9;
		czekolada=czekolada-2;
		chipsy=chipsy-4;
	}
	else
	{
		dzien++;
	}
} 
0

strzelam : konto=klient*10;

0

A cóż to za instrukcja? :)

if(marchewka>0, cukier>0, ziemniaki>0, kapusta>0, czekolada>0, chipsy>0)
0

Poprawiłem, ale nadal nie działą ta funkcja :( http://wklej.org/id/511879/

0
pan kuba napisał(a)

A cóż to za instrukcja? :)

if(marchewka>0, cukier>0, ziemniaki>0, kapusta>0, czekolada>0, chipsy>0)

pytanie raczej powinno brzmieć "co to za język programowania" bo c/c++ to na pewno nie jest ;p

0

if(marchewka, cukier, ziemniaki, kapusta, czekolada, chipsy>0) jest równoważne z if(chipsy>0).
Na pewno o to Ci chodzi?

0

Jak nie podasz jak ma działać , i jakie wyniki dostajesz a jakie powinny być to raczej nikt skutecznie ci nie pomożę

0

Dziękuję wszystkim za pomoc, już sobie poradziłem. ;)

0

Witam!
Mam kolejny problem. W programie http://wklej.org/id/512512/ mam zmienne które pokazują ilość warzyw. Niestety, ale wartości niektórych zmiennych są ujemne po wczytaniu funkcji nastepny_dzien. Proponuję skompilować program, aby zobaczyć o co mi chodzi.

0

będziesz tak przychodzić za każdym razem na forum gdy coś ci nie będzie działać? Programowanie to nie jest tylko samo klepanie kodu ale również projektowanie i debuggowanie go. Naucz się tych dwóch ostatnich, a problemy będziesz sam rozwiązywał. Przeanalizuj sobie po kolei co robi twój kod i w którym miejscu się wykrzacza. Poza tym dlaczego stosujesz tyle zmiennych globalnych?

0

@autor: przykro im ale twój problem nie polega na tym że "cos tam się dzieje ze zmienną". Twój problem polega na:
"nie umiem programować ale chcę napisać grę". I niestety istnieje tylko jedno rozwiązanie: NAJPIERW porządnie naucz sie programować, a POTEM pisz sobie grę.
Pisząc taki idiotyczny, copy-paste'owy kod NICZEGO (podkreślam NICZEGO) się nie nauczysz, zmarnujesz tylko czas.

0

i do jesteś bankrutem dopisać " Musisz spłacić dług!" i powiedzieć what if :jesteś bankrutem" wtedy ta hipotetyczna gra miała by ręce i nogi.:)

0
Shalom napisał(a)

@autor: przykro im ale twój problem nie polega na tym że "cos tam się dzieje ze zmienną". Twój problem polega na:
"nie umiem programować ale chcę napisać grę". I niestety istnieje tylko jedno rozwiązanie: NAJPIERW porządnie naucz sie programować, a POTEM pisz sobie grę.
Pisząc taki idiotyczny, copy-paste'owy kod NICZEGO (podkreślam NICZEGO) się nie nauczysz, zmarnujesz tylko czas.

To jak Ty byś napisał ten program?

0

Zacząłbym od jakieś prostego obiektowego projektu takiej gry.
http://4programmers.net/Pastebin/1170
Tutaj masz przykład jak wygląda wstępna implementacja gry w karty. Porównaj twój kod z tym i pomyśl ze do tego mojego kodu wystarczy dopisać kilka linijek żeby mieć działajacą grę w karty.

1 użytkowników online, w tym zalogowanych: 0, gości: 1