master mind in c
-
SeppJ schrieb:
Und ich suche den heiligen Gral.
Der ist in meiner Bluse. Bitte um diskrete Kontakaufnahme.
-
volkard schrieb:
SeppJ schrieb:
Und ich suche den heiligen Gral.
Der ist in meiner Bluse. Bitte um diskrete Kontakaufnahme.
Muss ich dazu wissen, was der bußfertige Mann macht oder ein Gebüsch als Opfer bringen?
-
SeppJ schrieb:
volkard schrieb:
SeppJ schrieb:
Und ich suche den heiligen Gral.
Der ist in meiner Bluse. Bitte um diskrete Kontakaufnahme.
Muss ich dazu wissen, was der bußfertige Mann macht oder ein Gebüsch als Opfer bringen?
Hab knapp 800 weitere Anfragen von heute, um den Gralsheber festzustellen, in meine Bluse zu fassen, sorry, wenn ich verzögert antworte. Du würdest es vermutlich in Deinem Inneren wissen, wenn Du berufen wärst. Im Zweifel, oder wenn Du überzeugt davon bist, Mail bitte.
-
volkard schrieb:
SeppJ schrieb:
Und ich suche den heiligen Gral.
Der ist in meiner Bluse. Bitte um diskrete Kontakaufnahme.
du willst ja nur das man dir an die wäsche gehn tut!
-
bitte keine trollpostings.
danke.
-
@c lehrling:
ich habe schon mal nach reiflicher überlegung einen ansatz für den datendesign festgelegt und definiert:
#define CODE_ELEMENTS "abcdef" #define CODE_ELEMENTS_COUNT (sizeof(CODE_ELEMENTS)-1) #define CODE_ELEMENTS_TO_GUESS_COUNT 4 #define GUESS_TRIALS_MAX 12
die farben werden durch buchstaben realisiert: abcdef.
das entspricht 6 verschiedenen farben.
es gilt 4 farben zu erraten wobei farben mehrfach vorkommen können und man hat 12 versuche den code zu knacken.wie würdest du anfangen?
-
auch lernt schrieb:
@c lehrling:
ich habe schon mal nach reiflicher überlegung einen ansatz für den datendesign
für das datendesign!
http://www.duden.de/rechtschreibung/Design
mfg
-
auch lernt schrieb:
@c lehrling:
ich habe schon mal nach reiflicher überlegung einen ansatz für den datendesign festgelegt und definiert:
#define CODE_ELEMENTS "abcdef" #define CODE_ELEMENTS_COUNT (sizeof(CODE_ELEMENTS)-1) #define CODE_ELEMENTS_TO_GUESS_COUNT 4 #define GUESS_TRIALS_MAX 12
die farben werden durch buchstaben realisiert: abcdef.
das entspricht 6 verschiedenen farben.
es gilt 4 farben zu erraten wobei farben mehrfach vorkommen können und man hat 12 versuche den code zu knacken.wie würdest du anfangen?
Hab keine bessere Idee darum übernehme ich deinen Ansatz
Dann würd ich sagen das man noch n paar Variable braucht!char code[CODE_ELEMENTS_TO_GUESS_COUNT]; // das programm erzeugt zufälligen code char user_guess[CODE_ELEMENTS_TO_GUESS_COUNT]; // der benutzer gibt eine code ein char guess_result[CODE_ELEMENTS_TO_GUESS_COUNT]; // speichert die treffer
entweder soll ein zweiter spieler den code eingeben oder eine
funktion erzeugt ihnvoid create_code_to_guess(char code[CODE_ELEMENTS_TO_GUESS_COUNT]) { int i; for(i = 0; i < CODE_ELEMENTS_TO_GUESS_COUNT; i++) code[i] = CODE_ELEMENTS[rand() % CODE_ELEMENTS_COUNT]; }
eine funktion, die den code anzeigt:
void display_code(char code[CODE_ELEMENTS_TO_GUESS_COUNT]) { int i; for(i = 0; i < CODE_ELEMENTS_TO_GUESS_COUNT; i++) putchar(code[i]); putchar('\n'); }
testprogramm für code-Erzeugung:
#define CODE_ELEMENTS_TO_GUESS_COUNT 4 void display_code(char code[CODE_ELEMENTS_TO_GUESS_COUNT]) { int i; for(i = 0; i < CODE_ELEMENTS_TO_GUESS_COUNT; i++) putchar(code[i]); putchar('\n'); } void create_code_to_guess(char code[CODE_ELEMENTS_TO_GUESS_COUNT]) { int i; for(i = 0; i < CODE_ELEMENTS_TO_GUESS_COUNT; i++) code[i] = CODE_ELEMENTS[rand() % CODE_ELEMENTS_COUNT]; } // Testprogramm für Code-Erzeugung int main(void) { int i; char code[CODE_ELEMENTS_TO_GUESS_COUNT] = {0}; srand(time(0)); for(i = 0; i < 20; i++) { create_code_to_guess(code); // 20 mal code erzeugen display_code(code); // und anzeigen } fflush(stdin); // puffer leer machen getchar(); // warten damit fenster nicht zu geht return 0;}
das funzt schon mal.
als nächstes schlage ich die benutzereingabe vor. die eigabe des codes
-
so, jetze mal vollständig:
#include <stdio.h> // putchar #include <stdlib.h> // rand, srand #include <time.h> // time #define CODE_ELEMENTS "abcdef" #define CODE_ELEMENTS_TO_GUESS_COUNT 4 #define CODE_ELEMENTS_COUNT (sizeof(CODE_ELEMENTS)-1) void display_code(char code[CODE_ELEMENTS_TO_GUESS_COUNT]) { int i; for(i = 0; i < CODE_ELEMENTS_TO_GUESS_COUNT; i++) putchar(code[i]); putchar('\n'); } void create_code_to_guess(char code[CODE_ELEMENTS_TO_GUESS_COUNT]) { int i; for(i = 0; i < CODE_ELEMENTS_TO_GUESS_COUNT; i++) code[i] = CODE_ELEMENTS[rand() % CODE_ELEMENTS_COUNT]; } // Testprogramm für Code-Erzeugung int main(void) { int i; char code[CODE_ELEMENTS_TO_GUESS_COUNT] = {0}; srand(time(0)); for(i = 0; i < 20; i++) { create_code_to_guess(code); // 20 mal code erzeugen display_code(code); // und anzeigen } fflush(stdin); // puffer leer machen getchar(); // warten damit fenster nicht zu geht return 0; }
-
Kleine Bemerkung:
Ich persönlich mag keine UNENDLICH_LANGE_FUNKTIONS_VARIABEL_ODER_MAKRO_NAMEN.
Zu unübersichtlich und zuviel Schreibarbeit.Bevorzuge bspw.
"CODE_SIZE" statt "CODE_ELEMENTS_TO_GUESS_COUNT"
"newCode" statt "create_code_to_guess"Steht euch natürlich frei, die Namen zu wählen, wie ihr lustig seid.
KISS (Keep It Simple and Stupid)
-
Nach dem holprigen Start ("ich suche code von master mind") geht es ja nun doch voran hier.
Ich würde das ganze allerdings genau andersherum aufziehen und bei main anfangen:
#include <stdlib.h> #include <time.h> int main(void){ srand(time(NULL)); game g = {0}; play(&g); }
Also von oben nach unten anfangen - das erscheint mir immer noch leichter - besonders, wenn ich Sachen machen muss, die ich nicht schon ein paar mal gemacht habe.
Und bei den Bezeichnern würde ich tatsächlich auch was kürzeres wählen. (Ich weiss auch nicht, ob Dich jemand auf den Arm genommen hat mit dem "Design", das Ergebnis "reiflicher Überlegung" ist.)