zadanie z symfonii

0

Nie będę podawał całego polecenia, powiem tylko w czym mam problem. Otóż po uruchomieniu programu i np.wybraniu opcji 3,a następnie 7 pokazuję się napis: skacze do gory1. Jak wyeliminować to 1 z napisu ? Dzięki.

 #include <iostream>
using namespace std;
bool w_prawo();
bool w_lewo();
bool w_gore();
bool w_dol();
bool machanie_reka();
bool machanie_noga();

int main()
{
	bool (*wsk[20])();
	int co;
	while(1)
	{

Menu:
	cout << "Menu:\n"
		    "1.Ruch w prawo\n"
			"2.Ruch w lewo\n"
			"3.Ruch do gory\n"
			"4.Ruch w dol\n"
			"5.Machanie reka\n"
			"6.Machanie noga\n"
			"7.Wykonaj ruchy\n"
			"9.Wyjscie\n";

	
for(int i = 0; ; i++)
{
	cout << "Podaj liczby z menu: ";
	cin >> co;
	switch(co)
{
case 1:
	wsk[i] = &w_prawo;
	break;
case 2:
	wsk[i] = &w_lewo;
	break;
case 3:
	wsk[i] = &w_gore;
	break;
case 4:
	wsk[i] = &w_dol;
	break;
case 5:
	wsk[i] = &machanie_reka;
	break;
case 6:
	wsk[i] = &machanie_noga;
	break;
case 7:
	for(int n = 0; n < i; n++)
	{
		cout << wsk[n]() << endl;
	}
	i = 0;
	goto Menu;
case 9:
	exit(1);
	break;

default:
	cout << "Nie ma takiej opcji!";
	i--;
	break;
}
}
}
}
bool w_prawo()
{
	int ile;
	cout << "Ile razy mam isc w prawo ?\nTwoja odpowiedz to: ";
	cin >> ile;
	for(int i = 0; i < ile; i++)
	{
		cout << "Obrot ramienia w prawo";
	}
	return true;
}
bool w_lewo()
{
	cout << "Obrot ramienia w lewo";
	return true;
}
bool w_gore()
{
	cout << "Skacze do gory";
	return true;
		
}
bool w_dol()
{
	cout << "Schodze w dol";
	return true;
}
bool machanie_reka()
{
	cout << "Macham reka";
	return true;
}
bool machanie_noga()
{
	cout << "Machanie noga";
	return true;
}
2
cout << wsk[n]() << endl;

Wyświetlasz wynik funkcji. Bool zostaje przedstawiony jako liczba 1 lub 0. Wywal couta, po prostu wykonaj funkcję.

Przy okazji: popracuj na formatowaniem kodu, fatalnie się to czyta. Nie czytelniej tak: http://melpon.org/wandbox/permlink/BWJlTuPJplZlprLw ?

0

tak się zastanawiam lepiej pisać tak:

switch(x) {
coś tam
}

czy tak:

switch(x)
{
cos tam 
}

bo w pętlach for stosuje ten zapis drugi, natomiast w pętlach while,dowhile zapis pierwszy

0

To bardzo indywidualna sprawa. Najważniejsze jest, abyś przyjął swoje zasady i był w nich konsekwentny (a w przypadku wieloosobowego projektu abyś się dostosował do istniejących zasad). Ja { przenoszę na nową linię tylko dla nieinline funkcji, wszystkie pętle, ify, lambdy, listy inicjalizacyjne i cokolwiek jeszcze mogłem pominąć leci w tej samej linii. Przestrzeń wertykalna jest zbyt cenna, szczególnie gdy szaleńcy od marketingu zabili perfekcyjne 16:10 na rzecz 16:9.

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