Zum Inhalt springen
Malarkey

Coder-Stübchen

Empfohlene Beiträge

Um dir etwas Schreibarbeit zu sparen und m.M.n. den Quellcode gerade am Anfang übersichtlicher zu gestalten könntest du using namespace std; einbauen. Googlesuche "Standard Namensraum c++" für mehr Infos ;)

Bevor jetzt einer rumweint mir sind die Probleme mit unterschiedlichen Namensräumen bei großen Projekten durchaus bekannt, aber ich hatte damit nie Probleme. Stichwort "Namenskollisionen". Ich persönlich finde es so sogar besser zur Abgrenzung von Standardbezeichnern und eigenen Namespaces, aber muß jeder selber entscheiden oder halt das Pflichtenheft...

Beispiel:

#include <iostream>

int main()

{

std::cout << "Hello World";

system("pause");

return 0;

}

und so sieht das dann aus

#include <iostream>

using namespace std;

int main()

{

cout << "Hello World";

system("pause");

return 0;

}

Ich kann dir ein Buch empfehlen !

http://www.galileocomputing.de/2156?GPP=opc3

http://www.galileocomputing.de/download/da...von_a_bis_z.pdf

Zufällig ist gerade das Thema Namensräume dort als Leseprobe enthalten ;) aber wie du siehst ist es bereits Seite 225 also nicht gleich in die Ecke werfen, wenn du es nicht 100% verstehst bzw. Begrifflichkeiten dort nicht mehr erklärt werden.

Ansonsten kannst du dir auch erstmal den Style des Buches anschauen indem du das quasi "baugleiche" Buch zu C statt C++ anschaust das gibt es komplett kostenlos im Netz.

http://openbook.galileocomputing.de/c_von_a_bis_z/

Best C (nicht C++) Buch ever ! :daumenhoch:

Gleicher Autor !

Edit:

Wenn du die Grundlagen erstmal draufhast kannst du dich immer noch entscheiden, ob du dein Spiel nicht lieber in einer anderen Sprache programmieren möchtest. Spontan würde ich dafür eher Actionscript (Flash) nehmen oder halt sowas wie schon erwähnt XNA wenn es nur unter Windows laufen soll, aber ob das alles so geeignet für Einsteiger ist laß ich mal im Raum stehen. :whistling: Wenn du später C++ halbwegs drauf hast kannst dich immer noch umschauen.

Bearbeitet von Buggy McDermit
Link zu diesem Kommentar
Auf anderen Seiten teilen

Danke für die antworten :)

Aber ich bleibe bei C++, schon zuviel darüber gelernt xD

Momentan Programmiere uich gerade ein kleines Wett Spiel^^

Mit Geld uns so, wenn es fertig ist werde ich es mal hier posten um eure Meinungen zu hören.

Das Buch schaut interessant aus, ich werde es mir also demnächst holen,

oder kennt ihr noch andere?

Link zu diesem Kommentar
Auf anderen Seiten teilen

So nun ne frage zu c++:

Wie kann ich machen das man bei einer eingabe nicht Enter drücken muss? Also nur die nummer zb. tippen.

Habe gelesen das ghet mit getch, aber irgendwwie kriege ich das nicht hin...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hast du die entsprechende Headerdatei eingebunden in der getch() enthalten ist ?

Edit:

Bringt dir nichts wenn ich es hier einfach poste...falls ich dich richtig verstanden habe meinst du in etwa sowas

#include <iostream>

#include <conio.h>



int main()

{



// Speicherplatz fuer Eingabe schaffen 

char eingabe;



// Speicherplatz fuellen durch Lesen von der Standardeingabe 

// also der Tastatur im Normalfall

eingabe = getch();



// Optional: Eingelesenes Zeichen ausgeben

cout << eingabe << endl;



return 0;

}

Edit2:

Tausend Typos korrigiert :whistling:

gn8

Bearbeitet von Buggy McDermit
Link zu diesem Kommentar
Auf anderen Seiten teilen

So nun hier mein Pferderdewettspiel:

// Pferdewettspiel by rcameise 2011



#include <iostream>

#include <time.h>

#include <fstream>

#include <iomanip>

#include <conio.h>





using namespace std;





short eins;

short zwei;

short drei;

short vier;

short fuenf;

short runden;

short menu;



long betrag;

long summe = 1000;



int pferd[5];

int i, j, k;



bool platz;

bool geld;

bool ok;

bool nummer;



char eingabe;

char auswahl;



	





int main()

{



//Startscreen



cout << "C++ Pferderennen\n\n\n\n\n\n\n" 

	 <<"by rcameise 2011" << endl;

	

system ("PAUSE");

system ("CLS");



	

//Spielmenü



	cout << "1. Spielen!\n2. Beenden" << endl;

	eingabe = getch();





	if(eingabe=='1')

	{	

		

// Hier beginnt das eigentlche Spiel		

			

// Runden



		cout << "Anzahl an Runden: " << endl;

		cin >> runden;



		system ("CLS");



		for (int k=1; k<=runden; k++)

			{

			cout << "Sie sind in der ";

				if (k==runden)

					{

					cout << "letzten Runde!";

					}

				else

					{

					cout << k << ". Runde !";

					}

//Wettart folgt noch







//Einsatz



		do

		{

		

			cout << "\nAuf welches Pferd wollen Sie setzen?\n1. Eins\n2. Zwei\n3. Drei\n4. Vier\n5. Fuenf" << endl;

			auswahl = getch();





			if (auswahl < '5' || auswahl == '5')

			{

				nummer = true;

			} 

			else 

			{

				cout << "Dieses Pferd Existiert nicht!" << endl;

				nummer = false;

			}

		}while (!nummer);



		system ("CLS");



		do

			{

				cout << "Ihr Geld: " << summe << "\nWieviel Geld wollen Sie bieten?" << endl;

				cin >> betrag;

		

			if (betrag == summe || betrag < summe)

			{

				ok = true;

			} 

			else 

			{

				cout << "Sie haben zu wenig Geld, bieten Sie nochmal" << endl;

				ok = false;

			}

		}while (!ok);

		



		system ("CLS");



//Nun wird die Platzierung ausgewertet



		srand(time (NULL));

		for(i=0; i<5; i++)

		{

			do

			{

				pferd[i] = (rand() %5) +1;

				platz = true;

				for (j=0; j<i; j++)

				{

					if (pferd[i] == pferd[j])

					{	

						platz = false;

					}

				}

			}while (!platz);

		}



//Plazierungen wiedergegeben



		cout << "Plazierungen\nEins: " << pferd[0] << "\nZwei: " << pferd[1]

		<< "\nDrei: " << pferd[2] << "\nVier: " << pferd[3] << "\nFuenf: " << pferd[4]

		<<"\n\nIhre Wahl: " << auswahl << endl;



//Auswertung Win-Lose



		if (auswahl == 1 && pferd[0] == 1)

		{

			cout << "Gewonnen!" << endl;

			geld = true;

		}

		else if (auswahl == 2 && pferd[1] == 1)

		{

			cout << "Gewonnen!" << endl;

			geld = true;

		}

		else if (auswahl == 3 && pferd[2] == 1)

		{

			cout << "Gewonnen!" << endl;

			geld = true;

		}

		else if (auswahl == 4 && pferd[3] == 1)

		{

			cout << "Gewonnen!" << endl;

			geld = true;

		}

		else if (auswahl == 5 && pferd[4] == 1)

		{

			cout << "Gewonnen!" << endl;

			geld = true;

		}

		else

		{

			cout <<"Schade..." << endl;

			geld = false;

		}

		

//Auswertung Geld



		if (geld == true)

		{

			cout << summe << " + " << betrag << " = " << endl;

			summe = summe+betrag;

			cout << summe << endl;

		}

		else if (geld == false)

		{

			cout << summe << " - " << betrag << " = " << endl;

			summe = summe-betrag;

			cout << "Ihr Geld: " << summe << endl;

		

		}



		system ("Pause");

		system ("CLS");



		}



// Punkte



		cout << "Ihre Punkte: " << summe << endl;



		system ("Pause");



		}



// Menü - Spiel Beenden



	else

	{

		cout << "Bye" << endl;

	} 

}

Nichts besonderes, was meint ihr dazu?

Bearbeitet von rc-ameise
Link zu diesem Kommentar
Auf anderen Seiten teilen

klappts? daran knabber ich grad..


Aufgabe:
Erstellen Sie die externe Funktion und das Hauptprogramm als fehlerfrei kompilierbaren
C++-Quellcode. Im Hauptprogramm soll die eingelesene ISBN-Nummer an die externe
Funktion übergeben werden und nach Prüfung soll das Ergebnis in Form einer
Bildschirmmeldung entsprechend den Auswertekennzeichen ausgegeben werden.
(Verwenden Sie für die Meldung ein zweidimensionales Char-Array)
	Für die Prüfabteilung eines Buchhandels soll  eine externe Funktion names ISBNPRF

	zur Kontrolle der ISBN-Nummern erstellt werden. 						

																							

	Beschreibung:																		

	Die ISBN-Nummer hat folgendes Format 9-999-99999-X (X=Prüfziffer)

	Die externe Funktion soll die ISBN-Nummer  prüfen und je nach  Prüfungsergebnis

	ein entsprechendes Auswertungskennzeichen als numerischen Wert zurückliefern.

																							

	Auswertekennzeichen:															

	1                   Falsche Laenge der ISBN-Nummer							

	2                   Falsche Trennzeichen in der ISBN-Nummer				

	3                   Stellen der ISBN-Nummer nicht numerisch				

	4                   Falsche Pruefziffer												

	5                   ISBN-Nummer korrekt											

																							

	Berechnung der Prüfziffer:														

	1. Jede Stelle ist mit einem stellenbezogenen Faktor (1, 2, 3 ... bis 9) zu multiplizieren.

	2. Die Summe aller Multiplikationen ist durch 11 zu dividieren; der Rest ist zu ermitteln.

	3. Der Rest ist die Prüfziffer; bei Rest 10 ist die Prüfziffer das Zeichen X.

																							

Bearbeitet von SWIZZ=kettcar=
Link zu diesem Kommentar
Auf anderen Seiten teilen

:facepalm:

Mache gerade meine ersten Schritte in C. Habe mir dafür Visual Studio 2010 Prof. geladen, ich den Skripten wird aber Express verwendet/beschrieben.

Nun soll ich unter Tools die Expert Settings aktivieren, ich finde aber keine Tools? <_<

Kann man diese Einstellungen bei Professional nicht ändern und muss ich mir jetzt doch Express laden?

Link zu diesem Kommentar
Auf anderen Seiten teilen

So nun hier mein Pferderdewettspiel:

// Pferdewettspiel by rcameise 2011



#include <iostream>

#include <time.h>

#include <fstream>

#include <iomanip>

#include <conio.h>





using namespace std;





short eins;

short zwei;

short drei;

short vier;

short fuenf;

short runden;

short menu;



long betrag;

long summe = 1000;



int pferd[5];

int i, j, k;



bool platz;

bool geld;

bool ok;

bool nummer;



char eingabe;

char auswahl;



	





int main()

{



//Startscreen



cout << "C++ Pferderennen\n\n\n\n\n\n\n" 

	 <<"by rcameise 2011" << endl;

	

system ("PAUSE");

system ("CLS");



	

//Spielmenü



	cout << "1. Spielen!\n2. Beenden" << endl;

	eingabe = getch();





	if(eingabe=='1')

	{	

		

// Hier beginnt das eigentlche Spiel		

			

// Runden



		cout << "Anzahl an Runden: " << endl;

		cin >> runden;



		system ("CLS");



		for (int k=1; k<=runden; k++)

			{

			cout << "Sie sind in der ";

				if (k==runden)

					{

					cout << "letzten Runde!";

					}

				else

					{

					cout << k << ". Runde !";

					}

//Wettart folgt noch







//Einsatz



		do

		{

		

			cout << "\nAuf welches Pferd wollen Sie setzen?\n1. Eins\n2. Zwei\n3. Drei\n4. Vier\n5. Fuenf" << endl;

			auswahl = getch();





			if (auswahl < '5' || auswahl == '5')

			{

				nummer = true;

			} 

			else 

			{

				cout << "Dieses Pferd Existiert nicht!" << endl;

				nummer = false;

			}

		}while (!nummer);



		system ("CLS");



		do

			{

				cout << "Ihr Geld: " << summe << "\nWieviel Geld wollen Sie bieten?" << endl;

				cin >> betrag;

		

			if (betrag == summe || betrag < summe)

			{

				ok = true;

			} 

			else 

			{

				cout << "Sie haben zu wenig Geld, bieten Sie nochmal" << endl;

				ok = false;

			}

		}while (!ok);

		



		system ("CLS");



//Nun wird die Platzierung ausgewertet



		srand(time (NULL));

		for(i=0; i<5; i++)

		{

			do

			{

				pferd[i] = (rand() %5) +1;

				platz = true;

				for (j=0; j<i; j++)

				{

					if (pferd[i] == pferd[j])

					{	

						platz = false;

					}

				}

			}while (!platz);

		}



//Plazierungen wiedergegeben



		cout << "Plazierungen\nEins: " << pferd[0] << "\nZwei: " << pferd[1]

		<< "\nDrei: " << pferd[2] << "\nVier: " << pferd[3] << "\nFuenf: " << pferd[4]

		<<"\n\nIhre Wahl: " << auswahl << endl;



//Auswertung Win-Lose



		if (auswahl == 1 && pferd[0] == 1)

		{

			cout << "Gewonnen!" << endl;

			geld = true;

		}

		else if (auswahl == 2 && pferd[1] == 1)

		{

			cout << "Gewonnen!" << endl;

			geld = true;

		}

		else if (auswahl == 3 && pferd[2] == 1)

		{

			cout << "Gewonnen!" << endl;

			geld = true;

		}

		else if (auswahl == 4 && pferd[3] == 1)

		{

			cout << "Gewonnen!" << endl;

			geld = true;

		}

		else if (auswahl == 5 && pferd[4] == 1)

		{

			cout << "Gewonnen!" << endl;

			geld = true;

		}

		else

		{

			cout <<"Schade..." << endl;

			geld = false;

		}

		

//Auswertung Geld



		if (geld == true)

		{

			cout << summe << " + " << betrag << " = " << endl;

			summe = summe+betrag;

			cout << summe << endl;

		}

		else if (geld == false)

		{

			cout << summe << " - " << betrag << " = " << endl;

			summe = summe-betrag;

			cout << "Ihr Geld: " << summe << endl;

		

		}



		system ("Pause");

		system ("CLS");



		}



// Punkte



		cout << "Ihre Punkte: " << summe << endl;



		system ("Pause");



		}



// Menü - Spiel Beenden



	else

	{

		cout << "Bye" << endl;

	} 

}

Nichts besonderes, was meint ihr dazu?

Bin gerade fix rübergeflogen, auch wenn du später sicherlich einiges anders machen wirst ;) ist es für den Einstieg auf jeden Fall okay.

Kleine Anmerkung weil es mir direkt aufgefallen ist

Das ODER kannst du dir hier sparen ;)

betrag == summe || betrag < summe

betrag <= summe
Link zu diesem Kommentar
Auf anderen Seiten teilen

Wenn man sich an das Model-View-Controller Prinzip hält, darf dann ein View Objekt einem anderen View Objekt ein Model Objekt geben, welches von einem Controller erstellt wurde? :)

Das andere View Objekt gibt das Model auch nur an einen anderen Controller weiter ohne irgendetwas damit zu machen.

Denn normalerweise sollte ja das View gar nichts mit dem Model zu tun haben. :kritisch:

Bearbeitet von Cyborg11
Link zu diesem Kommentar
Auf anderen Seiten teilen

Uff an welche der mittlerweile zweimillionen Varianten ? :)

Also, generell (meine ich) war es im "klassischen MVC" so das View nur für die Präsentation des Modells da war und keinerlei "Funktionen" haben darf. 1:1 Beziehung zwischen Controller und View keine direkte Beziehung zwischen View und View (die drei Komponenten als Kreis vorstellen ;) )

Jedoch gibt es heutzutage etliche (pseudo) Varianten (wovon einige auch ziemlich für den Arsch sind)...da du ja "Javaraner" bist würde ich mich dann auf das Delegate Model stürzen von Swing darin sind Controller und View teilweise vereint :P und deine Frage ist beantwortet. ;)

Edit:

Deutsche Erklärung zu UI Delegate

Bearbeitet von Buggy McDermit
Link zu diesem Kommentar
Auf anderen Seiten teilen

Hab schon die ganze Zeit trotz Swing nach dem klassischen MVC programmiert.

Meine Oberflächen stellen nur die grafischen Oberflächen da und rufen nur die Controllerfunktionen auf.

Ich weiß, dass Swing beides ineinander vereint, ich finde aber das klassische besser und so haben wir es auch in Software Engineering gelernt. :)

Wobei das aber auch nicht immer so leicht geht wie zum Beispiel bei einem CellRenderer für eine JList. :whistling:

Link zu diesem Kommentar
Auf anderen Seiten teilen

Okay, dann sag ich zu deiner ursprünglichen Frage.

NEIN, es ist nicht erlaubt da ein View keine Funktion haben darf und somit keinen weiteren View aufrufen darf :excl:

Jedenfalls hab ich das mal so gelernt in ebenfalls SEG ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also dürfte mein JFrame durch einen Button den JDialog nicht aufrufen, sondern ich müsste erst eine Controllerfunktion aufrufen, die den Dialog erstellt? Darf das View das Profle Objekt an diesen Controller weitergeben oder müssen die Controller untereinander kommunizieren? :)

Irgendwie ist es doof mit Swing. Irgendwann hat man trotzdem in einigen Klassen VC vermischt. :D Siehe CellRenderer :)

Bearbeitet von Cyborg11
Link zu diesem Kommentar
Auf anderen Seiten teilen

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden


  • Wer ist Online   0 Benutzer

    • Keine registrierten Benutzer online.
×
×
  • Neu erstellen...

Wichtige Information

Wir haben Cookies auf Deinem Gerät platziert. Das hilft uns diese Webseite zu verbessern. Du kannst die Cookie-Einstellungen anpassen, andernfalls gehen wir davon aus, dass Du damit einverstanden bist, weiterzumachen.