Peršokti į turinį

Kaip padaryti, kad įvedus pasirinkimą daugiau rinktis nebeleistų?


ZOLY

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 3017 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Recommended Posts

Visai nesenai pradėjau programuoti (darau programavimo kursą) ir sugalvojau tiesiog namuose būdamas pasipraktikuoti.

Mano programa visai paprasta - gali susikurti savo norimą Counter Strike: Global Offensive komandą įrašydamas žaidėjų vardus ir juos nusipirkdamas (čia kol kas tik pradžia)

 

Tik yra viena problema - pasirinkus kokį nors žaidėją, viskas būna normaliai, pinigai nusiminusuoja kaip ir priklauso, bet įvedus kokio nors žaidėjo vardą dar kartą (antrą kartą), dar kartą nusiminusuoja pinigai ir rašo, kad pasirinkai kitą žaidėją.

 

Ar yra koks nors paprastas būdas kaip padaryti, kad įvedus vieno žaidėjo vardą, programa išeitų iš tų 'if' statementų ir neleistų daugiau rinktis žaidėjų iš to sąrašo? Pavyzdžiui išmestų klaidą, kad "Žaidėjas jau išsirnktas, to daryti daugiau nebegalite".

 

Mano dabartinis kodas:

#include <iostream>
#include <string>
#include <time.h>
#include <windows.h>

using namespace std;

int main()
{
	int money = 20000;

	cout << "There are 5 teams of which you can buy players from" << endl;
	cout << "These teams are: fnatic, EnVyUs, NIP, Na'Vi, Astralis" << endl;
	cout << "You have 10,000 money to buy 5 players of your choice" << endl;
	cout << "\nTo start off, select your main player who will use the Sniper Rifle 'AWP'." << endl;
	cout << "You can choose from 5 players - JW, f0rest, KennyS, GuardiaN and Karrigan.\n" << endl;

	bool running = true;
	while (running) {

		string choice;

		cin >> choice;

		if (choice == "JW" || "jw")
		{
			cout << "\nYou have chosen JW from team 'fnatic' as your main 'Awper'. He cost you 3500." << endl;
			money -= 3500;
			cout << "Right now you have got " << money << "\n" << endl;
		}

			else if (choice == "f0rest" || "F0REST" || "F0rest" || "forest")
			{
				cout << "\nYou have chosen f0rest from team 'Ninjas In Pyjamas' as your main 'Awper'. He cost you 5000." << endl;
				money -= 5000;
				cout << "Right now you have got " << money << "\n" << endl;
			}

				else if (choice == "KennyS" || "kennys" || "KENNYS")
				{
					cout << "\nYou have chosen KennyS from team 'EnVyUs' as your main 'Awper'. He cost you 7500." << endl;
					money -= 7500;
					cout << "Right now you have got " << money << "\n" << endl;
				}

					else if (choice == "GuardiaN" || "GUARDIAN" || "guardian")
					{
						cout << "\nYou have chosen GuardiaN from team 'Natus Vincere' as your main 'Awper'. He cost you 10,000." << endl;
						money -= 10000;
						cout << "Right now you have got " << money << "\n" << endl;
					}

						else if (choice == "Karrigan" || "karrigan" || "KARRIGAN")
						{
							cout << "\nYou have chosen Karrigan from team 'Astralis' as your main 'Awper'. He cost you 2500." << endl;
							money -= 2500;
							cout << "Right now you have got " << money << "\n" << endl;
						}
						else
						{
							cout << "\nYou have not entered the correct name of any players that were shown." << endl;
						}

						cout << "You have chosen " << choice << endl;
						
		cin.get();
	}
}
Nuoroda į komentarą
Dalintis per kitą puslapį

if statementai pas tave blogi. kai rasai if statement su or ||, tu negali tiesiog if statemento pradzioje parasyti viena kintamaji ir rasyti palyginimus viena po kito tarp ||, tarp ju taip pat vel turi buti kintamasis su kuriuo tu lygini, pvz tu rasai:

if (choice == "JW" || "jw")

o turetu buti:

if (choice == "JW" || choice == "jw")

taip pat vietoje taves nevargciau su daug palyginimu viename if vien del mazuju/didziuju raidziu, geriau susikurk kokia funkcija kuri pavercia visa string'a i lower case arba naudok jau esama, ir if statementas bus daug paprastenis, pvz:

if(tolowercase(choice) == "jw")
Redaguota , nario -Modestas
  • Teigiamai 2
Nuoroda į komentarą
Dalintis per kitą puslapį

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 3017 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Svečias
Ši tema yra užrakinta.
  • Šiame puslapyje naršo:   0 nariai

    • Nėra registruotų narių peržiūrinčių šį forumą.

Skelbimai


×
×
  • Sukurti naują...