Protonchen
Cadet 1st Year
- Registriert
- Dez. 2013
- Beiträge
- 9
Hallo liebe Mitlgieder! Vielleicht kann mir jemand helfen, habe folgendes Programm erstellt, bzw. das ist die MINIMINIMINI-Version vom ganzen Programm!
Ich möchte es nun schaffen, je nachdem welche Zahlen ich bei der hold-Funktion eingebe, dass nochmal gewürfelt wird, aber nur die würfel welche ich nicht "holde",
sprich, wähle ich 2 und 3, dann soll nur der erste würfel nochmal gewürfelt werden und 2 und 3 unverändert bleiben, wähle ich nur 2 sollen nur der erste und 3 würfel nochmal gewürfelt werden und der 2. bleibt unverändert!
eigentlich habe ich das mit 5 würfeln programmiert, aber nur mal zum verständnis hier mit 3, damit ich vielleicht das system dahinter durchblicke :-(
Würde mich über Hilfestellungen sehr freuen!
Danke!
PHP:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
#include <conio.h>
int zahl[3]; // 3 Werte
int anz;
char ausg[3][14];
/*******************************************************************/
//Funktion zufallszahl
void wuerfel(int zahl[], int anz)
{
int i;
for (i=0; i<anz;i++)
//srand(time(0)); //bei 5 Würfel egal
zahl[i]=1+rand()%3;
return;
}
//Ausgabe Würfel switch case
void zeichnen (int wert1, int wert2, int wert3)
{
int z,s;
for (z=0;z<3;z++)
{for (s=0;s<14;s++)
ausg[z][s]=' ';
} //Array mit Leerzeichen initialisieren
switch (wert1) //Werte fuer Wuerfel 1 in Array eintragen
{ case 1:
ausg[1][1]='x';
break;
case 2:
ausg[1][1]='x';
ausg[1][2]='x';
break;
case 3:
ausg[0][1]='x';
ausg[1][1]='x';
ausg[2][1]='x';
break;
}
switch (wert2) //Werte fuer Wuerfel 2 in Array eintragen
{ case 1:
ausg[1][6]='x';
break;
case 2:
ausg[1][6]='x';
ausg[1][7]='x';
break;
case 3:
ausg[0][6]='x';
ausg[1][6]='x';
ausg[2][6]='x';
break;
}
switch (wert3) //Werte fuer Wuerfel 3 in Array eintragen
{ case 1:
ausg[1][11]='x';
break;
case 2:
ausg[1][11]='x';
ausg[1][12]='x';
break;
case 3:
ausg[0][11]='x';
ausg[1][11]='x';
ausg[2][11]='x';
break;
}
//Wuerfel zeichnen
printf("---- ---- ----\n");
for (z=0;z<3;z++)
{
for (s=0;s<14;s++)
{
printf("%c",ausg[z][s]);
}
printf("\n");
}
printf("---- ---- ----\n");
}
/******************* MAIN *************************/
int main(int argc, char **argv)
{
srand(time(0)); //definiert man hier nochmal damit es WIRKLICH zufaellig ist!
wuerfel (zahl,3); //ruft die Funktion auf; 5... alle 5 Wuerfel
zeichnen(zahl[0], zahl[1], zahl[2]);
char hold[]={49,50,51},h;
int i,f=1;
printf("\nWeiter w%crfeln=<enter>\n",129);
do
{
printf("hold?\t<%c>\t<%c>\t<%c>\r",hold[0],hold[1],hold[2]);
h=getch();
f=h;
for (i=0;i<5;i++)
{
if (hold[i]==h)
{
hold[i]=219; // 219 ist Ascii fuer viereckiges Zeichen...
}
}
}
while (f!=13); //Abbruchbedingung ENTER Ascii = "13" CR
return 0;
}
Ich möchte es nun schaffen, je nachdem welche Zahlen ich bei der hold-Funktion eingebe, dass nochmal gewürfelt wird, aber nur die würfel welche ich nicht "holde",
sprich, wähle ich 2 und 3, dann soll nur der erste würfel nochmal gewürfelt werden und 2 und 3 unverändert bleiben, wähle ich nur 2 sollen nur der erste und 3 würfel nochmal gewürfelt werden und der 2. bleibt unverändert!
eigentlich habe ich das mit 5 würfeln programmiert, aber nur mal zum verständnis hier mit 3, damit ich vielleicht das system dahinter durchblicke :-(
Würde mich über Hilfestellungen sehr freuen!
Danke!