WinFuture-Forum.de: Name Für Kniffelartiges Spiel - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
  • 2 Seiten +
  • 1
  • 2

Name Für Kniffelartiges Spiel

#16 Mitglied ist offline   ThunderKiller 

  • Gruppe: aktive Mitglieder
  • Beiträge: 2.697
  • Beigetreten: 31. August 06
  • Reputation: 0
  • Wohnort:Deutschland

geschrieben 26. Oktober 2008 - 18:29

Beitrag anzeigenZitat (smite: 26.10.2008, 19:22)

Also, meinst du würfel eins muss 1 sein.
Würfel zwei: 2
Würfel drei: 3
und so weiter?


jap, so wäre das ja bei deiner lösung, wenn ich dich richtig verstanden habe. die reihenfolge soll aber keine rolle spielen
Eingefügtes Bild
0

Anzeige



#17 Mitglied ist offline   smite 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.199
  • Beigetreten: 08. Januar 07
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:127.0.0.1

geschrieben 26. Oktober 2008 - 18:43

Hab vll. ne Lösung.
Wenn ich eine hab, schreib ich sie dir. Bin mir aber selbst noch nicht ganz sicher, sie existiert nur in meinem Kopf. ;)
Eingefügtes BildEingefügtes Bild
0

#18 Mitglied ist offline   ThunderKiller 

  • Gruppe: aktive Mitglieder
  • Beiträge: 2.697
  • Beigetreten: 31. August 06
  • Reputation: 0
  • Wohnort:Deutschland

geschrieben 26. Oktober 2008 - 18:46

Beitrag anzeigenZitat (smite: 26.10.2008, 19:43)

Hab vll. ne Lösung.
Wenn ich eine hab, schreib ich sie dir. Bin mir aber selbst noch nicht ganz sicher, sie existiert nur in meinem Kopf. ;)

okay, danke
Eingefügtes Bild
0

#19 Mitglied ist offline   smite 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.199
  • Beigetreten: 08. Januar 07
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:127.0.0.1

geschrieben 26. Oktober 2008 - 19:06

So, hier ist meine Lösung, hoffe es sind keine Fehler drinnen.
Es ist zwar in C++ geschrieben. Ich finde es leichter dir den Code zu geben, anstatt es jetzt umständlich zu erklären.
Wenn du etwas nicht verstehst, frag mich einfach.
Klick mich für die exe-Datei des Programms.
#include <iostream>

using namespace std;


int main(int argc, char* argv[])
{
	int wuerfel[5];
	bool geworfen [6];
	
	//setzen aller Werte in geworfen auf false
	for (int j=0; j<6; j++)
	{
		geworfen[j]=false;
	}


	//Eingabe der Wuerfe
	for (int i=0; i<5; i++)
	{
		cout<<i+1<<". Wurf:\t";
		cin>>wuerfel [i];
	}

	//jede geworfene Zahl minus eins rechnen, da die Felder bei Null loslaufen und nicht bei eins
		for (int k=0; k<5; k++)
	{
		wuerfel [k]--;
	}
	
	//Speichern der Zahlen, welche gewürfelt wurden.
	geworfen[wuerfel[0]]=true;
	geworfen[wuerfel[1]]=true;
	geworfen[wuerfel[2]]=true;
	geworfen[wuerfel[3]]=true;
	geworfen[wuerfel[4]]=true;


	//überprüfen ob es eine Straße ist
	if (geworfen[1]==true && geworfen[2]==true && geworfen[3]==true && geworfen[4]==true)
	{
		if (geworfen[0]==true || geworfen[5]==true)
		{
			cout<<"Glueckwunsch, Sie haben eine Grosse Strasse gewuerfelt."<<endl;
		}

	}
	else
	{
		cout<<"Leider keine Strasse"<<endl;
	}
	

	system ("pause");	
	return 0;
}

Dieser Beitrag wurde von smite bearbeitet: 26. Oktober 2008 - 19:09

Eingefügtes BildEingefügtes Bild
0

#20 Mitglied ist offline   ThunderKiller 

  • Gruppe: aktive Mitglieder
  • Beiträge: 2.697
  • Beigetreten: 31. August 06
  • Reputation: 0
  • Wohnort:Deutschland

geschrieben 26. Oktober 2008 - 19:17

joa das sieht doch schonmal gut aus.

lässt sich
if (geworfen[1]==true && geworfen[2]==true && geworfen[3]==true && geworfen[4]==true)


auch in vb realisieren?
Eingefügtes Bild
0

#21 Mitglied ist offline   smite 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.199
  • Beigetreten: 08. Januar 07
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:127.0.0.1

geschrieben 26. Oktober 2008 - 19:20

Denke mal, kenn mich mit vb nicht aus.
Aber die Zeile heißt eigentlich nur:
Wenn eine 2 UND eine 3 UND eine 4 UND eine 5 gewürfelt wurden sage true.
Danach wird dann noch überprüft ob die letze Zahl eine 1 ODER eine 6 ist. Weil es könnte ja auch eine Zahl doppelt sein.
Im Prinzip könntest du das ganze auch mit mehreren if-else Bedingungen machen.
Eingefügtes BildEingefügtes Bild
0

#22 Mitglied ist offline   ThunderKiller 

  • Gruppe: aktive Mitglieder
  • Beiträge: 2.697
  • Beigetreten: 31. August 06
  • Reputation: 0
  • Wohnort:Deutschland

geschrieben 26. Oktober 2008 - 19:53

was genau wird denn hier gemacht?

	geworfen[wuerfel[0]]=true;
	geworfen[wuerfel[1]]=true;
	geworfen[wuerfel[2]]=true;
	geworfen[wuerfel[3]]=true;
	geworfen[wuerfel[4]]=true;


habs jetzt so in vb versucht:

Private Sub cmdWürfel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdWürfel.Click

		i = 0

		For i = 1 To 5
			geworfen(i) = False
		Next

		For i = 1 To 5
			würfel(i) = Rnd() * 5 + 1
		Next

		Label1.Text = würfel(1)			 'Ausgabe der gewürfelten Zahlen
		Label2.Text = würfel(2)
		Label3.Text = würfel(3)
		Label4.Text = würfel(4)
		Label5.Text = würfel(5)

		geworfen(würfel(0)) = True
		geworfen(würfel(1)) = True
		geworfen(würfel(2)) = True
		geworfen(würfel(3)) = True
		geworfen(würfel(4)) = True

		If geworfen(1) = True & geworfen(2) = True & geworfen(3) = True & geworfen(4) = True Then
			If geworfen(0) = True Or geworfen(5) = True Then
				MsgBox("Sie haben eine große Straße gewürfelt!")
			End If
		End If
	End Sub


(die variablen sind selbstverständlich auch deklariert), funzt aber nicht, er meckert bei der ersten if-abfrage (Eine Ausnahme (erste Chance) des Typs "System.InvalidCastException" ist in Microsoft.VisualBasic.dll aufgetreten. und Ungültige Konvertierung von der Zeichenfolge TrueTrue in Typ Boolean.)
Eingefügtes Bild
0

#23 Mitglied ist offline   smite 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.199
  • Beigetreten: 08. Januar 07
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:127.0.0.1

geschrieben 26. Oktober 2008 - 20:05

Beitrag anzeigenZitat (ThunderKiller: 26.10.2008, 20:53)

was genau wird denn hier gemacht?

	geworfen[wuerfel[0]]=true;
	 geworfen[wuerfel[1]]=true;
	 geworfen[wuerfel[2]]=true;
	 geworfen[wuerfel[3]]=true;
	 geworfen[wuerfel[4]]=true;

Es existieren die Variablen:
geworfen [0];
geworfen [1];
geworfen [2];
geworfen [3];
geworfen [4];
geworfen [5];
In den eckigen Klammern darf jedoch auch eine Variable stehen. Und dort habe ich dann die Variable der Würfel eingetragen.
Dort habe ich dann den Inhalt der Variablen der Würfel eingetragen und sie dann auf true gesetzt, damit gespeichert ist, ob eine Zahl gewürfelt wurde oder nicht.
Eingefügtes BildEingefügtes Bild
0

#24 Mitglied ist offline   ThunderKiller 

  • Gruppe: aktive Mitglieder
  • Beiträge: 2.697
  • Beigetreten: 31. August 06
  • Reputation: 0
  • Wohnort:Deutschland

geschrieben 26. Oktober 2008 - 20:20

also wäre in geworfen[wuerfel[0]] quasi eine 5 drin gespeichert, wenn der erste würfel eine 5 wäre oder?

habs jetzt mal geändert in:

geworfen(würfel(0)) = True
		geworfen(würfel(1)) = True
		geworfen(würfel(2)) = True
		geworfen(würfel(3)) = True
		geworfen(würfel(4)) = True

		If geworfen(2) = True Then
			If geworfen(3) = True Then
				If geworfen(4) = True Then
					If geworfen(5) = True Then
						If geworfen(6) = True Then
							MsgBox("Sie haben eine große Straße gewürfelt!")
						Else
							If geworfen(1) = True Then
								MsgBox("Sie haben eine große Straße gewürfelt!")
							End If
						End If
					End If
				End If
			End If
		End If


jetzt gehts, aber nur als kleine straße, also als 1-2-3-4 oder 2-3-4-5 oder 3-4-5-6

Dieser Beitrag wurde von ThunderKiller bearbeitet: 26. Oktober 2008 - 20:23

Eingefügtes Bild
0

#25 Mitglied ist offline   smite 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.199
  • Beigetreten: 08. Januar 07
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:127.0.0.1

geschrieben 26. Oktober 2008 - 20:32

Beitrag anzeigenZitat (ThunderKiller: 26.10.2008, 21:20)

also wäre in geworfen[wuerfel[0]] quasi eine 5 drin gespeichert, wenn der erste würfel eine 5 wäre oder?

Nein, da gewürfelt bool Variablen sind.
Das heißt, wenn eine 5 gewürfelt wurde, wird bool [5] von false auf true gesetzt.
Wenn jetzt noch eine 5 gewürfelt wird, wird die variable gewuerfelt [5] von true auf true gesetzt, ergibt zwar keinen Sinn.
Bool kann halt nur 0 oder 1 speichern. Das dient eigentlich nur dem Zweck, dass überprüft werden kann ob eine Zahl MINDESTENS einmal gewürfelt wurde.
Hoffe das ist ein bisschen Verständlicher geschrieben, sonst frag noch mal nach^^.

Im Prinzip besteht das Programm aus 3 Teilen:
1. Würfeln, generieren von Zufallszahlen. Das habe ich durch eine Eingabe realisiert.
2. Feststellen welche Zahlen gewürfelt wurden.
3. Überprüfen ob es eine Straße ist.

Zu deinem Code kann ich dir leider nichts sagen, da ich mich mit vb nicht auskenne.
Ich kann nur ein bisschen C++ und php.

Gruß smite
Eingefügtes BildEingefügtes Bild
0

#26 Mitglied ist offline   ThunderKiller 

  • Gruppe: aktive Mitglieder
  • Beiträge: 2.697
  • Beigetreten: 31. August 06
  • Reputation: 0
  • Wohnort:Deutschland

geschrieben 26. Oktober 2008 - 20:45

ok das hab ich jetzt verstanden, verstehe aber immernoch nicht warum auch schon bei einer kleinen straße die meldung rausgegeben wird.
Eingefügtes Bild
0

#27 Mitglied ist offline   smite 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.199
  • Beigetreten: 08. Januar 07
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:127.0.0.1

geschrieben 26. Oktober 2008 - 20:58

Dann überprüfe mal deine Bedingungen. Vermutlich hast du dort einen Fehler gemacht. Wenn nicht, überprüfe mal ob in den Variablen geworfen immer das richtige drin steht. Vll. passiert dort auch ein Fehler.
smite

Bei VB, ist dort das erste Element Nr. 0, oder Nr.1?
Eingefügtes BildEingefügtes Bild
0

#28 Mitglied ist offline   ThunderKiller 

  • Gruppe: aktive Mitglieder
  • Beiträge: 2.697
  • Beigetreten: 31. August 06
  • Reputation: 0
  • Wohnort:Deutschland

geschrieben 26. Oktober 2008 - 21:10

Beitrag anzeigenZitat (smite: 26.10.2008, 21:58)

Bei VB, ist dort das erste Element Nr. 0, oder Nr.1?


das erste element is 0, das war auch der fehler^^ thx
Eingefügtes Bild
0

#29 Mitglied ist offline   smite 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.199
  • Beigetreten: 08. Januar 07
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:127.0.0.1

geschrieben 26. Oktober 2008 - 21:18

np^^. Also jetzt läufts?

ps: poste mal das Spiel wenns fertig ist^^
Eingefügtes BildEingefügtes Bild
0

#30 Mitglied ist offline   ThunderKiller 

  • Gruppe: aktive Mitglieder
  • Beiträge: 2.697
  • Beigetreten: 31. August 06
  • Reputation: 0
  • Wohnort:Deutschland

geschrieben 26. Oktober 2008 - 21:20

Beitrag anzeigenZitat (smite: 26.10.2008, 22:18)

np^^. Also jetzt läufts?

ps: poste mal das Spiel wenns fertig ist^^


jop jetzt gehts^^

ich lads hoch wenns fertig is. im moment wird aber noch das kniffel vba-projekt für die schule fertig gemacht. aber wenn ichs als exe kompiliere muss ich ja nur kopieren und ein paar stellen code ändern...
Eingefügtes Bild
0

Thema verteilen:


  • 2 Seiten +
  • 1
  • 2

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0