Schnelle objektorientierte, kompilierende Programmiersprache.
-
MartyMcFly1976
- Beiträge: 34
- Registriert: Sa Dez 06, 2014 5:56 pm
Beitrag
von MartyMcFly1976 » Sa Dez 06, 2014 6:02 pm
Hallo !
Ich sitze grade an meinen Hausaufgaben und soll ein Programm schreiben das mit zufällig eine Würfelzahl ausgibt. Das funtioniert einwandfrei aber ich möchte das Programm etwas "pimpen" und habe zu jeder Zahl einen Würfel programmiert den ich über die Bildschirmausgabe nun auch Anzeigen möchte.
D.h. Der Zufallsgenerator wirft mir eine drei, dann sollte der Würfel mit der Nummer drei auch angezeigt werden.
Könnte mir da jemand mit einem Tip weiterhelfen ?
Hier mein bis jetzt geschriebenes Programm :
Code: Alles auswählen
#include <stdio.h>
#include"conio.h"
#include <stdlib.h>
#include <time.h>
int main(void)
{
int zufallszahl;
int summe=0;
int eingabe;
printf("\t\t\tWillkommen im W\x81 \brfelprogramm\n\n\n\n");
srand(time(NULL));
printf("\t\t\t Ihre W\x81 \brfelzahl ist %d\n\n",zufallszahl=rand()%6+1);
Bis hierhin funktioniert die Ausgabe der Zufallszahl und nun soll nur noch der passende Würfel Angezeigt werden !
Code: Alles auswählen
//Die Eins Anzeigen
printf("\t\t\t\t\xc9\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xbb\n");
printf("\t\t\t\t\xba \xba\n");
printf("\t\t\t\t\xba \xba\n");
printf("\t\t\t\t\xba \xfe \xba\n");
printf("\t\t\t\t\xba \xba\n");
printf("\t\t\t\t\xba \xba\n");
printf("\t\t\t\t\xc8\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xbc\n\n\n");
// Die zwei Anzeigen
printf("\t\t\t\t\xc9\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xbb\n");
printf("\t\t\t\t\xba \xfe \xba\n");
printf("\t\t\t\t\xba \xba\n");
printf("\t\t\t\t\xba \xba\n");
printf("\t\t\t\t\xba \xba\n");
printf("\t\t\t\t\xba \xfe \xba\n");
printf("\t\t\t\t\xc8\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xbc\n\n\n");
// Die drei Anzeigen
printf("\t\t\t\t\xc9\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xbb\n");
printf("\t\t\t\t\xba \xfe \xba\n");
printf("\t\t\t\t\xba \xba\n");
printf("\t\t\t\t\xba \xfe \xba\n");
printf("\t\t\t\t\xba \xba\n");
printf("\t\t\t\t\xba \xfe \xba\n");
printf("\t\t\t\t\xc8\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xbc\n\n\n");
// Die vier Anzeigen
printf("\t\t\t\t\xc9\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xbb\n");
printf("\t\t\t\t\xba \xfe \xfe \xba\n");
printf("\t\t\t\t\xba \xba\n");
printf("\t\t\t\t\xba \xba\n");
printf("\t\t\t\t\xba \xba\n");
printf("\t\t\t\t\xba \xfe \xfe \xba\n");
printf("\t\t\t\t\xc8\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xbc\n\n\n");
// Die fünf Anzeigen
printf("\t\t\t\t\xc9\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xbb\n");
printf("\t\t\t\t\xba \xfe \xfe \xba\n");
printf("\t\t\t\t\xba \xba\n");
printf("\t\t\t\t\xba \xfe \xba\n");
printf("\t\t\t\t\xba \xba\n");
printf("\t\t\t\t\xba \xfe \xfe \xba\n");
printf("\t\t\t\t\xc8\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xbc\n\n\n");
// Die sechs Anzeigen
printf("\t\t\t\t\xc9\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xbb\n");
printf("\t\t\t\t\xba \xfe \xfe \xba\n");
printf("\t\t\t\t\xba \xba\n");
printf("\t\t\t\t\xba \xfe \xfe \xba\n");
printf("\t\t\t\t\xba \xba\n");
printf("\t\t\t\t\xba \xfe \xfe \xba\n");
printf("\t\t\t\t\xc8\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xbc\n\n\n");
getch();
return 0;
}
MfG und Danke schonmal für die Tips !
Marty
Edit by cloidneurx: Code-Tags
-
Bebu
- Beiträge: 562
- Registriert: Mi Okt 21, 2009 6:19 pm
- Wohnort: In der Nähe von Salzburg - Bin aber kein Österreicher!
Beitrag
von Bebu » So Dez 07, 2014 1:07 pm
Du brauchst ein Konstrollstruktur. Momentan läuft dein Programm einfach von oben nach unten durch und zeigt alle Würfelvarianten an.
Du kannst mit if-else oder mit case arbeiten.
Du kannst jetzt: Jede Anzeigevariante in eine eigene Funktion auslagern, oder eine Funktion schreiben, der du z.B. die Augenzahl mitgibst und dann funktionsintern das richtige Würfelbild ausgegeben wird. Eleganter ist Variante Zwei.
Gruß Bebu
Edit:
PS: Es gibt im Forum Code-Tags, dann kann man deinen Code auch leichter lesen.
Wer immer nach dem Unerreichbaren jagt, der wird irgendwann auf die Schnauze fallen!
-
MartyMcFly1976
- Beiträge: 34
- Registriert: Sa Dez 06, 2014 5:56 pm
Beitrag
von MartyMcFly1976 » So Dez 07, 2014 3:56 pm
Hallo !
Hmm, O.K. Danke für den Tip.
Ich hatte schon einen Taschenrechner mit der case Funktion programiert.
Das war aber ein menue was ich dann über ein Symbol zuordnen konnte + - * : ! dieses konnte ich dann einsetzen und die einzelnen case aufrufen. Jetzt hab ich aber nur den Würfelwurf und weiss nicht wo ich das Ergebnis rausziehen soll um es einem Würfel zuzuweisen !
O.K. Ich versuche das mal und dann poste ich es auch mit dem Code Tag !
MfG
Marty
-
MartyMcFly1976
- Beiträge: 34
- Registriert: Sa Dez 06, 2014 5:56 pm
Beitrag
von MartyMcFly1976 » So Dez 07, 2014 4:37 pm
Code: Alles auswählen
#include <stdio.h>
#include"conio.h"
#include<stdlib.h>
#include <time.h>
int main(void)
{
int zufallszahl;
int summe=0;
int eingabe;
int (wahl);
printf("\t\t\tWillkommen im W\x81 \brfelprogramm\n\n\n\n");
srand(time(NULL));
printf("\t\t\t Ihre W\x81 \brfelzahl ist %d\n\n",zufallszahl=rand()%6+1);
switch(wahl)
{
case 1: //Die Eins Anzeigen
printf("\t\t\t\t\xc9\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xbb\n");
printf("\t\t\t\t\xba \xba\n");
printf("\t\t\t\t\xba \xba\n");
printf("\t\t\t\t\xba \xfe \xba\n");
printf("\t\t\t\t\xba \xba\n");
printf("\t\t\t\t\xba \xba\n");
printf("\t\t\t\t\xc8\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xbc\n\n\n");
break;
case 2:// Die zwei Anzeigen
printf("\t\t\t\t\xc9\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xbb\n");
printf("\t\t\t\t\xba \xfe \xba\n");
printf("\t\t\t\t\xba \xba\n");
printf("\t\t\t\t\xba \xba\n");
printf("\t\t\t\t\xba \xba\n");
printf("\t\t\t\t\xba \xfe \xba\n");
printf("\t\t\t\t\xc8\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xbc\n\n\n");
break;
case 3:// Die drei Anzeigen
printf("\t\t\t\t\xc9\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xbb\n");
printf("\t\t\t\t\xba \xfe \xba\n");
printf("\t\t\t\t\xba \xba\n");
printf("\t\t\t\t\xba \xfe \xba\n");
printf("\t\t\t\t\xba \xba\n");
printf("\t\t\t\t\xba \xfe \xba\n");
printf("\t\t\t\t\xc8\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xbc\n\n\n");
break;
case 4:// Die vier Anzeigen
printf("\t\t\t\t\xc9\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xbb\n");
printf("\t\t\t\t\xba \xfe \xfe \xba\n");
printf("\t\t\t\t\xba \xba\n");
printf("\t\t\t\t\xba \xba\n");
printf("\t\t\t\t\xba \xba\n");
printf("\t\t\t\t\xba \xfe \xfe \xba\n");
printf("\t\t\t\t\xc8\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xbc\n\n\n");
break;
case 5:// Die fünf Anzeigen
printf("\t\t\t\t\xc9\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xbb\n");
printf("\t\t\t\t\xba \xfe \xfe \xba\n");
printf("\t\t\t\t\xba \xba\n");
printf("\t\t\t\t\xba \xfe \xba\n");
printf("\t\t\t\t\xba \xba\n");
printf("\t\t\t\t\xba \xfe \xfe \xba\n");
printf("\t\t\t\t\xc8\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xbc\n\n\n");
break;
case 6:// Die sechs Anzeigen
printf("\t\t\t\t\xc9\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xbb\n");
printf("\t\t\t\t\xba \xfe \xfe \xba\n");
printf("\t\t\t\t\xba \xba\n");
printf("\t\t\t\t\xba \xfe \xfe \xba\n");
printf("\t\t\t\t\xba \xba\n");
printf("\t\t\t\t\xba \xfe \xfe \xba\n");
printf("\t\t\t\t\xc8\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xbc\n\n\n");
break;
}
getch();
return 0;
}
So ich hab das nun mal so umgeschrieben !
Leider hab ich das nächste Problem mit Visual Studio.... Ich kann es nicht mehr überschreiben. Es nimmt keine Änderung mehr an die ich am Programm mache.
G.Marty
Zuletzt geändert von
MartyMcFly1976 am So Dez 07, 2014 4:47 pm, insgesamt 1-mal geändert.
-
Bebu
- Beiträge: 562
- Registriert: Mi Okt 21, 2009 6:19 pm
- Wohnort: In der Nähe von Salzburg - Bin aber kein Österreicher!
Beitrag
von Bebu » So Dez 07, 2014 4:46 pm
Bezüglich Visual Studio kann ich dir jetzt nicht auf die schnelle helfen, aber im Programm steckt ein Denkfehler. Woher soll switch deine Zufallszahl kennen?
Lösungstipp: Variable nutzen...
Das mit den Codetags ist perfekt. Du solltest aber über das einrücken nachdenken. Warum rückst du jedes case weiter ein? Die sind gleichberechtigt und hängen nicht voneinander ab.
Wer immer nach dem Unerreichbaren jagt, der wird irgendwann auf die Schnauze fallen!
-
MartyMcFly1976
- Beiträge: 34
- Registriert: Sa Dez 06, 2014 5:56 pm
Beitrag
von MartyMcFly1976 » So Dez 07, 2014 5:00 pm
Das Problem mit dem Visual Studio hab ich gelöst ! Man das nervt wenn stundenlang probiert wird und dann sowas !
Programm aud der Liste gelöscht und neu erstellt
So nun hab ich das nochmal sauber neu gerichtet und die "VARIABLE ZUFALLSZAHL" eingesetzt !
Funktioniert super !
Code: Alles auswählen
#include <stdio.h>
#include"conio.h"
#include<stdlib.h>
#include <time.h>
int main(void)
{
int zufallszahl;
int summe=0;
int eingabe;
printf("\t\t\tWillkommen im W\x81 \brfelprogramm\n\n\n\n");
srand(time(NULL));
printf("\t\t\t Ihre W\x81 \brfelzahl ist %d\n\n",zufallszahl=rand()%6+1);
switch(zufallszahl)
{
case 1: //Die Eins Anzeigen
printf("\t\t\t\t\xc9\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xbb\n");
printf("\t\t\t\t\xba \xba\n");
printf("\t\t\t\t\xba \xba\n");
printf("\t\t\t\t\xba \xfe \xba\n");
printf("\t\t\t\t\xba \xba\n");
printf("\t\t\t\t\xba \xba\n");
printf("\t\t\t\t\xc8\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xbc\n\n\n");
break;
case 2:// Die zwei Anzeigen
printf("\t\t\t\t\xc9\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xbb\n");
printf("\t\t\t\t\xba \xfe \xba\n");
printf("\t\t\t\t\xba \xba\n");
printf("\t\t\t\t\xba \xba\n");
printf("\t\t\t\t\xba \xba\n");
printf("\t\t\t\t\xba \xfe \xba\n");
printf("\t\t\t\t\xc8\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xbc\n\n\n");
break;
case 3:// Die drei Anzeigen
printf("\t\t\t\t\xc9\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xbb\n");
printf("\t\t\t\t\xba \xfe \xba\n");
printf("\t\t\t\t\xba \xba\n");
printf("\t\t\t\t\xba \xfe \xba\n");
printf("\t\t\t\t\xba \xba\n");
printf("\t\t\t\t\xba \xfe \xba\n");
printf("\t\t\t\t\xc8\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xbc\n\n\n");
break;
case 4:// Die vier Anzeigen
printf("\t\t\t\t\xc9\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xbb\n");
printf("\t\t\t\t\xba \xfe \xfe \xba\n");
printf("\t\t\t\t\xba \xba\n");
printf("\t\t\t\t\xba \xba\n");
printf("\t\t\t\t\xba \xba\n");
printf("\t\t\t\t\xba \xfe \xfe \xba\n");
printf("\t\t\t\t\xc8\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xbc\n\n\n");
break;
case 5:// Die fünf Anzeigen
printf("\t\t\t\t\xc9\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xbb\n");
printf("\t\t\t\t\xba \xfe \xfe \xba\n");
printf("\t\t\t\t\xba \xba\n");
printf("\t\t\t\t\xba \xfe \xba\n");
printf("\t\t\t\t\xba \xba\n");
printf("\t\t\t\t\xba \xfe \xfe \xba\n");
printf("\t\t\t\t\xc8\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xbc\n\n\n");
break;
case 6:// Die sechs Anzeigen
printf("\t\t\t\t\xc9\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xbb\n");
printf("\t\t\t\t\xba \xfe \xfe \xba\n");
printf("\t\t\t\t\xba \xba\n");
printf("\t\t\t\t\xba \xfe \xfe \xba\n");
printf("\t\t\t\t\xba \xba\n");
printf("\t\t\t\t\xba \xfe \xfe \xba\n");
printf("\t\t\t\t\xc8\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xbc\n\n\n");
break;
}
getch();
return 0;
}
Danke dir für die Unterstützung mit deinen Tips !
Funktioniert 1a ! Sehr geil !
-
Bebu
- Beiträge: 562
- Registriert: Mi Okt 21, 2009 6:19 pm
- Wohnort: In der Nähe von Salzburg - Bin aber kein Österreicher!
Beitrag
von Bebu » So Dez 07, 2014 5:29 pm
Kann man. Aber was soll das bringen? Scanf ist dazu da, eine Eingabe beim User abzufragen. Bei einem Würfelprogramm etwas sinnlos, außer du willst den User das Würfeln auf Tastendruck auslösen lassen.
Bei mir funktioniert es schon

In dieser Zeile steckt ein Fehler:
Deine Zufallszahl steht in einem Int namens Zufallszahl. Nochmal die Frage: Woher soll diese Switchanweisung wissen, dass sie ausgerechnet mit dem Wert von Zufallszahl vergleichen soll, wenn du es ihr nicht sagst?
Switch besitzt keine Kristallkugel und sucht auch nicht nach Variablen die im Umfeld stehen. Du musst explizit sagen, womit swich vergleichen soll.
Wer immer nach dem Unerreichbaren jagt, der wird irgendwann auf die Schnauze fallen!
-
MartyMcFly1976
- Beiträge: 34
- Registriert: Sa Dez 06, 2014 5:56 pm
Beitrag
von MartyMcFly1976 » So Dez 07, 2014 6:38 pm
Hallo !
JA das hab ich gefunden mit dem 1,2,3,4,5,6 und gegen zufallszahl getauscht und oben reingeschrieben das es funktioniert

!
Danke für deine Hilfe so stell ich mir das vor wenn ich was im Forum frage bzw. Poste !
Wünsche dir einen ruhigen Wochenstart !
MfG
Marty
-
Xin
- nur zu Besuch hier
- Beiträge: 8862
- Registriert: Fr Jul 04, 2008 11:10 pm
- Wohnort: /home/xin
-
Kontaktdaten:
Beitrag
von Xin » Di Dez 09, 2014 1:16 pm
MartyMcFly1976 hat geschrieben:JA das hab ich gefunden mit dem 1,2,3,4,5,6 und gegen zufallszahl getauscht und oben reingeschrieben das es funktioniert

!
Für mich war es recht verwirrend, Bebus Antworten zu lesen.
Bitte ändere vorherige Posts nur so, dass ihr ursprünglicher Inhalt erhalten bleibt und vor allem, dass nachfolgende Posts nicht unverständlich werden. Danke.

Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.