Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Aragaz cu plita pe gaz si cuptor ...

Cablu FFC

Poco F6/F6 Pro

Scurgere catre hazna
 De la 24V la 5V DC?

Deducere TVA

Intalnire cu un tip de pe tinder ...

Open WRT nu sincronizeaza ceasul ...
 salariu plafonat

sistem actionare electrica pentru...

Sfaturi achizitie auto ~10k€

ICC/ICM soft monitorizare si cont...
 Recomandare ipad

Ce fel de disc pentru acest circu...

Windows 11 24H2 pe release?

Intrebare motor auto
 

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,270
  • Î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

Neurochirurgie minim invazivă Neurochirurgie minim invazivă

"Primum non nocere" este ideea ce a deschis drumul medicinei spre minim invaziv.

Avansul tehnologic extraordinar din ultimele decenii a permis dezvoltarea tuturor domeniilor medicinei. Microscopul operator, neuronavigația, tehnicile anestezice avansate permit intervenții chirurgicale tot mai precise, tot mai sigure. Neurochirurgia minim invazivă, sau prin "gaura cheii", oferă pacienților posibilitatea de a se opera cu riscuri minime, fie ele neurologice, infecțioase, medicale sau estetice.

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