Ukryte działania

0

Witam.
Mam pewien problem. Mianowicie nie wiem jak zrobic w c++ aby działanie nie wyświetlały się na konsoli lecz tylko wynik.

1
slime3000fly napisał(a):

Witam.
Mam pewien problem. Mianowicie nie wiem jak zrobic w c++ aby działanie nie wyświetlały się na konsoli lecz tylko wynik.

Jakie działania? Może ich po prostu nie wypisuj?

0

Pokaż kod, bo normalnie nie działanie się nie printuje :)

@templas 4 sekundy wcześniej...

3

Należy po prostu nie wyświetlać działania, a wyświetlać tylko wynik.

0
 #include <iostream>
#include "gra.h"
#include <cstdlib>
using namespace std;

gracz::gracz()
{
nazwa="user";
miecze=0;
piki=0;
topory=0;
drewno=300;
zelazo=300;
i=0;
v=0;
a=0;
}
void gracz::pokaz()
{
    cout << "posiadasz:" << endl;
    cout << miecze << " mieczników"<< endl;
    cout << piki << " pikinierów"<< endl;
    cout << topory << " toporników"<< endl;
    cout << drewno << " drewna"<< endl;
    cout << zelazo << " ¿elaza"<< endl;
}
void gracz::naz()
{
        cout<<"podaj nazweêgracza: ";
        cin >> nazwa;
        cout<< endl << "twoja nazwa to: " << nazwa << endl;

}
void gracz::ustaw()
{
   do
   {
cout<< endl << "co chesz zrobiæ? " << endl;
   cout << "1.zobacz liczbê surowców" << endl;
   cout << "2.zobacz liczbê wojsk" << endl;
   cout << "3.zrekrutuj wojska" << endl;
   cout << "4.nastêpna tura" << endl;
   cout << "0.koniec gry" << endl;
   cin >> i;
   switch(i)
   {
   case 1:
       pokaz();
   break;
   case 2:
        pokaz();
   break;
   case 3:
       cout << endl << "1.zobacz kosztorys" << endl << "2.zrekrutuj wojska" << endl;
        cin >> v;
    switch(v)
    {
    case 1:
        cout<< endl << "jednego miecznika" << endl << "jednego pikiniera" << endl << "jednego topornika" << endl;
        cin >> a;
        switch (a)
            {
            case 1:
                cout<< endl << "jeden miecznik kosztuje 20 drewna i 40 zelaza, a posiadasz : "<< endl<<"drewna:" << drewno << endl<< "zelaza:" << zelazo <<endl;
            break;
            case 2:
                cout<< endl << "jeden pikinier kosztuje 15 drewna i 20 zelaza, a posiadasz : "<< endl<<"drewna:" << drewno << endl<< "zelaza:" << zelazo <<endl;
            break;
            case 3:
                cout<< endl << "jeden topornik kosztuje 25 drewna i 60 zelaza, a posiadasz : "<< endl<<"drewna:" << drewno << endl<< "zelaza:" << zelazo <<endl;
             break;
            }

    break;
            case 2:
                cout << endl << "kogo chesz zrekrutowaæ? 1.miecznika 2.pikiniera 3.topornika" << endl;
                cin >> b;
                switch(b)
                {
                case 1:
                    cout << endl << "ile?" << endl;
                    cin >> i1;
                    if (i1*20 > drewno)
                    {
                        cout << endl << "masz za ma³o drewna." << endl;
                    }
                    else
                    {
                        if (i1*40 > zelazo)
                        {
                            cout << endl << "masz za ma³o zelaza." << endl;
                        }
                        else
                        {
                            cout << drewno - i1*20;
                            cout << zelazo - i1*40;
                            cout << miecze + 3;
                            cout << endl << "zrekrutowano: " << i1 << "mieczników" << endl;
                        }
                    }
                break;
                }
            break;
    }
   break;
   }
   }while (i != 0);
}

chodzi o to by to policzyło ale się nie wyświetliło
cout << drewno - i120;
cout << zelazo - i1
40;
cout << miecze + 3;

1

Zablokować wyświetlanie możesz np. poprzez usunięcie linii odpowiadających za wyświetlanie.

0

ale kiedy usunę cout to się nie liczy

2

Jak się nie liczy? Przecież Ty jedynie wyświetlasz to na ekran.

Przy okazji: popraw indentację kodu, Twoja jest tragiczna. Nie czytelniej jest tak?

#include <iostream>
#include "gra.h"
#include <cstdlib>
using namespace std;

gracz::gracz() {
  nazwa = "user";
  miecze = 0;
  piki = 0;
  topory = 0;
  drewno = 300;
  zelazo = 300;
  i = 0;
  v = 0;
  a = 0;
}
void gracz::pokaz() {
  cout << "posiadasz:" << endl;
  cout << miecze << " mieczników" << endl;
  cout << piki << " pikinierów" << endl;
  cout << topory << " toporników" << endl;
  cout << drewno << " drewna" << endl;
  cout << zelazo << " ¿elaza" << endl;
}
void gracz::naz() {
  cout << "podaj nazweêgracza: ";
  cin >> nazwa;
  cout << endl << "twoja nazwa to: " << nazwa << endl;
}
void gracz::ustaw() {
  do {
    cout << endl << "co chesz zrobiæ? " << endl;
    cout << "1.zobacz liczbê surowców" << endl;
    cout << "2.zobacz liczbê wojsk" << endl;
    cout << "3.zrekrutuj wojska" << endl;
    cout << "4.nastêpna tura" << endl;
    cout << "0.koniec gry" << endl;
    cin >> i;
    switch (i) {
      case 1:
        pokaz();
        break;
      case 2:
        pokaz();
        break;
      case 3:
        cout << endl << "1.zobacz kosztorys" << endl << "2.zrekrutuj wojska"
             << endl;
        cin >> v;
        switch (v) {
          case 1:
            cout << endl << "jednego miecznika" << endl << "jednego pikiniera"
                 << endl << "jednego topornika" << endl;
            cin >> a;
            switch (a) {
              case 1:
                cout << endl << "jeden miecznik kosztuje 20 drewna i 40 "
                                "zelaza, a posiadasz : " << endl
                     << "drewna:" << drewno << endl << "zelaza:" << zelazo
                     << endl;
                break;
              case 2:
                cout << endl << "jeden pikinier kosztuje 15 drewna i 20 "
                                "zelaza, a posiadasz : " << endl
                     << "drewna:" << drewno << endl << "zelaza:" << zelazo
                     << endl;
                break;
              case 3:
                cout << endl << "jeden topornik kosztuje 25 drewna i 60 "
                                "zelaza, a posiadasz : " << endl
                     << "drewna:" << drewno << endl << "zelaza:" << zelazo
                     << endl;
                break;
            }

            break;
          case 2:
            cout
                << endl
                << "kogo chesz zrekrutowaæ? 1.miecznika 2.pikiniera 3.topornika"
                << endl;
            cin >> b;
            switch (b) {
              case 1:
                cout << endl << "ile?" << endl;
                cin >> i1;
                if (i1 * 20 > drewno) {
                  cout << endl << "masz za ma³o drewna." << endl;
                } else {
                  if (i1 * 40 > zelazo) {
                    cout << endl << "masz za ma³o zelaza." << endl;
                  } else {
                    cout << drewno - i1 * 20;
                    cout << zelazo - i1 * 40;
                    cout << miecze + 3;
                    cout << endl << "zrekrutowano: " << i1 << "mieczników"
                         << endl;
                  }
                }
                break;
            }
            break;
        }
        break;
    }
  } while (i != 0);
}
0

Dziękuje pomogło, ale mam jeszcze jedne problem mianowicie to działanie nie zmienia wartości zmiennych. Dodaje załącznik, i z gury dziękuje.

2

Nie musisz tego wyświetlać. Musisz natomiast przypisać nową wartość do zmiennej.

Zakładam, że miałeś na myśli coś w tym stylu:

drewno = drewno - i1 * 20;
zelazo = zelazo - i1 * 40;
miecze = miecze + 3;

lub w formie skróconej:

drewno -= i1 * 20;
zelazo -= i1 * 40;
miecze += 3;
4

Odpuść sobie pisanie jakiejś pseudo-gry i weź się lepiej za jakiś podstawowy kurs programowania, bo to się kupy nie trzyma.
Poprzez takie pisanie niczego sensownego się nie nauczysz tylko co chwile będziesz miał takie irytujące problemy.

0

Przepraszam wszystkich zobaczyłem swój głupi błąd :D

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