Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Merita un Termostat Smart pentru ...

Sfat achizitie MTB Devron Riddle

Problema mare cu parintii= nervi ...

switch microtik
 Permis categoria B la 17 ani

Sfaturi pentru pregatirea de eval...

Crapaturi placa

cum imi accesez dosarul electroni...
 Momentul Aprilie 1964

Sursa noua - zgomot ?

A fost lansat Ubuntu 24.04 LTS

Pareri apartament in zona Berceni?
 Free streaming SkyShowtime de la ...

Skoda Fabia 1.0 TSI (110 CP)- 19 ...

Mezina familiei, Merida BigNine

The Tattooist of Auschwitz (2024)
 

Ajutor joc Spanzuratoarea.

* * * - - 1 votes
  • Please log in to reply
2 replies to this topic

#1
drpetro

drpetro

    New Member

  • Grup: Junior Members
  • Posts: 1
  • Înscris: 22.05.2018
Buna ziua, forum.
Sunt nou si am de facut un joc in c++ destul de simplu pentru ca trebuie explicat si nu am facut prea multe pana acum. Am ales sa fac spanzuratoarea, am facut programul dar doar pentru un singur cuvant. Ma poate ajuta cineva.. sa fie vreo 10 cuvinte macar si sa se aleaga aleatoriu de acolo? Stiu ca ar trebui sa folosesc siruri si o functie probabil, dar nu prea stiu cum ar trebui facuta asta.

Codul conceput:

#include <iostream>
using namespace std;
char qSpatiul;
char qSpatiul1=('*');
char qSpatiul2=('*');
char qSpatiul3=('*');
char qSpatiul4=('*');
char qSpatiul5=('*');
char qSpatiul6=('*');
char qSpatiul7=('*');
char qSpatiul8=('*');
char qSpatiul9=('*');
char qSpatiul10=('*');
bool GameOver=false;
int iLGresita=0;
char Mai_Vreau;

int main() {
			cout<<"~~~Bine ai venit la spanzuratoarea!~~~\n";
			cout<<"		Fircare litera este un - X -";
			cout<<"\nTrebuie sa scrii o litera pentru a incepe sa ghicesti.";
			cout<<"\n Numarul maxim de incercari este 5!";
do {
			cout<<endl<<qSpatiul1<<qSpatiul2<<qSpatiul3<<qSpatiul4<<qSpatiul5<<qSpatiul6<<qSpatiul7<<qSpatiul8<<qSpatiul9<<qSpatiul10<<endl;
  //Citirea literei
  cout<<endl<<"Introduceti o litera:";
  cin>>qSpatiul;
  cout<<endl;

  //Verifica daca litera face parte din cuvant
  if (qSpatiul=='p' || qSpatiul=='r' || qSpatiul=='o' || qSpatiul=='g' ||
   qSpatiul=='a' || qSpatiul=='m' || qSpatiul=='e'  ){
	switch (qSpatiul)
	{
	case 'p':
	 qSpatiul1='p';
	 break;
	case 'r':
	 qSpatiul2 ='r';
	 qSpatiul5 ='r';
	 qSpatiul10='r';
	 break;
	case 'o':
	 qSpatiul3='o';
	 break;
	case 'g':
	 qSpatiul4='g';
	 break;
	case 'a':
	 qSpatiul6='a';
	 break;
	case 'm':
	 qSpatiul7='m';
	 qSpatiul8='m';
	 break;
	case 'e':
	 qSpatiul9='e';
	 break;
	}
	//Verifica daca tot cuvantul a fost descoperit
	if (qSpatiul1=='p' && qSpatiul2=='r' && qSpatiul3=='o' && qSpatiul4=='g' && qSpatiul5=='r' &&
	 qSpatiul6=='a' && qSpatiul7=='m' && qSpatiul8=='m' && qSpatiul9=='e' && qSpatiul10=='r' )
	 {
	  GameOver=true;
	  system ("CLS");
	  cout<<"Ai castigat! Cuvantul era programmer."<<endl;
	  //Mai incerci?
	  cout<<endl<<"Mai incerci?(y/n)";
	  cin>>Mai_Vreau;
	  if (Mai_Vreau=='y')
	   GameOver=false;
	  else
	   GameOver=true;
					}
  }else{
   //Incrementam cu 1 valoarea variabilei ce memoreaza numarul de incercari
   iLGresita++;
   //Verificam sansele ramase
  if (iLGresita==1){
   system("CLS");
   cout<<"~~~Bine ai venit la spanzuratoarea!~~~\n";
			cout<<"		Fircare litera este un - X -";
			cout<<"\nTrebuie sa scrii o litera pentru a incepe sa ghicesti.";
			cout<<"\n Numarul maxim de incercari este 5!";
   cout<<"|--|"   <<endl;
   cout<<"|  O"   <<endl;
   cout<<"|"	  <<endl;
   cout<<"|"	  <<endl;
   cout<<"[=]" <<endl<<endl<<endl;

  }else if (iLGresita==2){
   system("CLS");
   cout<<"~~~Bine ai venit la spanzuratoarea!~~~\n";
			cout<<"		Fircare litera este un - X -";
			cout<<"\nTrebuie sa scrii o litera pentru a incepe sa ghicesti.";
			cout<<"\n Numarul maxim de incercari este 5!";
   cout<<"|--|"   <<endl;
   cout<<"|  O"   <<endl;
   cout<<"|  |"   <<endl;
   cout<<"|"	  <<endl;
   cout<<"[=]" <<endl<<endl<<endl;

  }else if (iLGresita==3){
   system("CLS");
   cout<<"~~~Bine ai venit la spanzuratoarea!~~~\n";
			cout<<"		Fircare litera este un - X -";
			cout<<"\nTrebuie sa scrii o litera pentru a incepe sa ghicesti.";
			cout<<"\n Numarul maxim de incercari este 5!";
   cout<<"|--|"   <<endl;
   cout<<"|  O"   <<endl;
   cout<<"| /|"   <<endl;
   cout<<"|"	  <<endl;
   cout<<"[=]" <<endl<<endl<<endl;

  }else if (iLGresita==4){
   system("CLS");
   cout<<"|--|"   <<endl;
   cout<<"|  O"  <<endl;
   cout<<"| /|/ "	<<endl;
   cout<<"|"	  <<endl;
   cout<<"[=]" <<endl<<endl<<endl;

  }else if (iLGresita==5){
   system("CLS");
   cout<<"~~~Bine ai venit la spanzuratoarea!~~~\n";
			cout<<"		Fircare litera este un - X -";
			cout<<"\nTrebuie sa scrii o litera pentru a incepe sa ghicesti.";
			cout<<"\n Numarul maxim de incercari este 5!";
   cout<<"|--|"   <<endl;
   cout<<"|  O"  <<endl;
   cout<<"| /|/ "  <<endl;
   cout<<"| /"	<<endl;
   cout<<"[=]" <<endl<<endl<<endl;

  }else if (iLGresita==6){
   system("CLS");
   cout<<"~~~Bine ai venit la spanzuratoarea!~~~\n";
			cout<<"		Fircare litera este un - X -";
			cout<<"\nTrebuie sa scrii o litera pentru a incepe sa ghicesti.";
			cout<<"\n Numarul maxim de incercari este 5!";
   cout<<"|--|"   <<endl;
   cout<<"|  O"  <<endl;
   cout<<"| /|/ "  <<endl;
   cout<<"| // " <<endl;
   cout<<"[=]" <<endl<<endl<<endl;
   GameOver=true;
   cout<<endl<<"Ai pierdut";
   //Mai Vreai?
   cout<<endl<<"Mai vrei?(y/n)";
   cin>>Mai_Vreau;
   if (Mai_Vreau=='y')
	GameOver=false;
   else
	GameOver=true;
  }
   }
}while (GameOver==false);
}

Multumesc mult!

#2
A10Warthog

A10Warthog

    Member

  • Grup: Moderators
  • Posts: 902
  • Înscris: 12.11.2017
Nu trebuie să folosești o funcție, ci o grămadă de funcții. Ai hardcodat prea mult ca să merite să continui. Ia-o de la capăt.

Citește aici.

Primul pas e să pui zece cuvinte într-un array și să selectezi unul random. Folosește documentația și un IDE cu IntelliSense, ca să te ajute cu importurile.

#3
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,238
  • Înscris: 24.02.2007
Functiile si structurile de date te ajuta sa generalizezi codul, sa nu hard-codezi logica pentru cuvinte individuale
#include <iostream>
#include <string>
#include <set>

void afiseazaScorul(unsigned int nrCaractereGresite)
{
...
}

void joaca(const std::string& cuvant)
{
	const unsigned int nrMaximIncercari = 6;
	const char caracterNedescoperit = '_';

	std::cout << "\n~~~Bine ai venit la spanzuratoarea!~~~\n"
			  << "		 Fiecare litera este un - X -\n"
			  << "Trebuie sa scrii o litera pentru a incepe sa ghicesti.\n"
			  << "Numarul maxim de incercari este " << nrMaximIncercari << "!\n\n";

	std::string cuvantGhicit(cuvant.size(), caracterNedescoperit);
	std::set<char> caractereIntroduse;
	unsigned int nrCaractereGresite = 0;

	while (nrCaractereGresite < nrMaximIncercari)
	{
		afiseazaScorul(nrCaractereGresite);

		std::cout << "De ghicit: " << cuvantGhicit << '\n';

		char caracterCurent;
		std::cin.get(caracterCurent);
		if ( ! caractereIntroduse.insert(caracterCurent).second)
		{
			continue;//caracterul acesta a mai fost folosit
		}

		bool caracterPotrivit = false;
		bool caractereIncaNedescoperite = false;

		for (unsigned int i = 0; i < cuvantGhicit.size(); ++i)
		{
			if (cuvantGhicit[i] == caracterNedescoperit)
			{
				if (caracterCurent == cuvant[i])
				{
					cuvantGhicit[i] = cuvant[i];
					caracterPotrivit = true;
				}
				else
				{
					caractereIncaNedescoperite = true;
				}
			}
		}
		if (caracterPotrivit)
		{
			if (!caractereIncaNedescoperite)
			{
				std::cout << "Ai castigat!\n";
				break;
			}
		}
		else 
		{
			nrCaractereGresite += 1;
		}
	}
	std::cout << "Ai pierdut!\n";
}

bool determinaDacaSaContinueJocul()
{
...
}

int main()
{
	bool maiVreau = true;
	while (maiVreau)
	{
		joaca("programmer"); //a se specifica alt cuvant

		maiVreau = determinaDacaSaContinueJocul();
	}
}


Edited by dani.user, 22 May 2018 - 19:11.


Anunturi

Chirurgia cranio-cerebrală minim invazivă Chirurgia cranio-cerebrală minim invazivă

Tehnicile minim invazive impun utilizarea unei tehnologii ultramoderne.

Endoscoapele operatorii de diverse tipuri, microscopul operator dedicat, neuronavigația, neuroelectrofiziologia, tehnicile avansate de anestezie, chirurgia cu pacientul treaz reprezintă armamentarium fără de care neurochirurgia prin "gaura cheii" nu ar fi posibilă. Folosind tehnicile de mai sus, tratăm un spectru larg de patologii cranio-cerebrale.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate