# [SUCHE] C++ Quellcode für Mastermind ohne Design Oberfläche



## SViethy (27. Januar 2004)

Hi
kann mir jemand einen Quellcode für das Game Mastermind geben? Ich suche nur den Quellcode und will auch keine grafische Oberfläche verwenden. Einfach ein paar Felder in denen die Farben oder wenigstens Zahlen auftauchen die man dann erraten muss.

Vielleicht kann mir ja jemand helfen


----------



## Kachelator (29. Januar 2004)

Wo ist das Problem? Das ist doch vom Ablauf und der Implementierung her eine recht einfache Sache. Sollte innerhalb von 1-2 Stunden fertig programmiert sein (mit Zahlen), sofern die Spielregeln bekannt sind.

Hier rumliegen habe ich solche Sourcen leider nicht.


----------



## natsu1000 (27. März 2007)

wurde in Visual Studio erstellt. Weiß nicht welchen Compiler du verwendest, musst also sehen ob es bei dir funktioniert.
Die Farben zum suchen werden automatisch erstellt, und es ist so eingestellt, das jede Farbe genau einmal vorkommt, dieses aber durch zufall geschieht. Hoffe es hilft dir.


```
#include "stdafx.h"
#include "conio.h"
#include "iostream"
#include "ctime"
#include "cmath"

using namespace std;

int lauf=0, z=1;

class Mastermind
{
private:
	int farben_suchen[4];
	int farbe[4];
	int stat1[25];
	int stat2[25];
	int stat3[25];
	int stat4[25];
		
public:
	void farbe_festlegen();
	void farbe_suchen();
	void zeige_alle();
	bool gewonnen();
};

//Klassenmethode
void Mastermind::farbe_festlegen()
{
	srand((unsigned)time(NULL));
	farben_suchen[0]=rand()%4+1;
	farben_suchen[1]=rand()%4+1;

	while (farben_suchen[0]==farben_suchen[1])
	{
		farben_suchen[1]=rand()%4+1;
	}

	farben_suchen[2]=rand()%4+1;

	while (farben_suchen[0]==farben_suchen[2]||farben_suchen[1]==farben_suchen[2])
	{
		farben_suchen[2]=rand()%4+1;
	}

	farben_suchen[3]=rand()%4+1;

	while (farben_suchen[0]==farben_suchen[3]||farben_suchen[1]==farben_suchen[3]||farben_suchen[2]==farben_suchen[3])
	{
		farben_suchen[3]=rand()%4+1;
	}
	
}

void Mastermind::farbe_suchen()

{	

	int stelle_richtig=0, stelle_falsch=0;
	
	cout<<"Es gibt 4 Farben (Rot =1, Blau=2, Grun=3,Gelb=4)"<<endl;
	cout<<"Bitte geben sie ihre erste Farbe ein."<<endl;
	cin>>farbe[0];
	stat1[lauf]=farbe[0];
	cout<<"Bitte geben sie ihre zweite Farbe ein!"<<endl;
	cin>>farbe[1];
	stat2[lauf]=farbe[1];
	cout<<"Bitte geben sie ihre dritte Farbe ein!"<<endl;
	cin>>farbe[2];
	stat3[lauf]=farbe[2];
	cout<<"Bitte geben sie ihre vierte Farbe ein!"<<endl;
	cin>>farbe[3];
	stat4[lauf]=farbe[3];



	if(farbe[0]==farben_suchen[0])
		stelle_richtig=stelle_richtig+1;
		
	if (farbe[1]==farben_suchen[1])
		stelle_richtig=stelle_richtig+1;
	
	if(farbe[2]==farben_suchen[2])
		stelle_richtig=stelle_richtig+1;
		
	if(farbe[3]==farben_suchen[3])
		stelle_richtig=stelle_richtig+1;

	cout<<endl<<"Es sind "<<stelle_richtig<<" Farben richtig"<<endl<<endl;
	}
bool Mastermind::gewonnen()
{

		return farbe[0]==farben_suchen[0] && farbe[1]==farben_suchen[1] && farbe[2]==farben_suchen[2] && farbe[3]==farben_suchen[3];
		
		 
		
}

void Mastermind::zeige_alle()
{
cout<<"Ihre bisherigen Versuche waren: "<<endl;
for (int i=0; i<=lauf-1; i++)
{
	cout<<"Ihr "<<i+1<<" Versuch:";
	switch(stat1[i])
	{
	case 1:
		cout<<"Rot,";
		break;
	case 2:
		cout<<" Blau,";
		break;
	case 3:
		cout<<" Grun,";
		break;
	case 4:
		cout<<" Gelb,";
		break;
	}

	switch(stat2[i])
	{
	case 1:
		cout<<"Rot,";
		break;
	case 2:
		cout<<" Blau,";
		break;
	case 3:
		cout<<" Grun,";
		break;
	case 4:
		cout<<" Gelb,";
		break;
	}

	switch(stat3[i])
	{
	case 1:
		cout<<"Rot;";
		break;
	case 2:
		cout<<" Blau,";
		break;
	case 3:
		cout<<" Grun,";
		break;
	case 4:
		cout<<" Gelb,";
		break;
	}

	switch(stat4[i])
	{
	case 1:
		cout<<"Rot";
		break;
	case 2:
		cout<<" Blau";
		break;
	case 3:
		cout<<" Grun";
		break;
	case 4:
		cout<<" Gelb";
		break;
	}

	cout<<endl;
}
cout<<endl;
}


int _tmain(int argc, _TCHAR* argv[])
{

Mastermind Spiel;

Spiel.farbe_festlegen();
while (z==1)
	{
		Spiel.farbe_suchen();
		if (Spiel.gewonnen())
		{
			cout<<"Sie haben gewonnen!"<<endl;		
			getch();		
			return 0;
		}
		lauf=lauf+1;
		Spiel.zeige_alle();
	
		
	}

}
```


----------

