hilfe mit lottospiel programmierung
-
hi leute ich hab mich hier mal angemeldet und wollte gleich mal fragen ob mir hier jemand helfen kann^^
ich wollt halt ein lottoprogramm programieren aber ich denk das ich mich da in etwas ziemlich komplexes
festhalte. also ich geh halt zur schule und bin einsteiger in C ich hab bereits felder funktionen usw. durchgenommen
fehlen halt noch cursor und und.. ich wollt aber mal mit cursor arbeiten und sie auch mal ausprobieren
dazu hab ich ma son kleines programm geschrieben.ich wollte das prog halt so aufbauen das die Verfahrensweisen und Regeln angenähert angenähert denen des staatlich kontrollierten Lottospiels (6 aus 49) entsprechen sollen , allerdings ohne Zusatzzahl u.ä., aber zu Testzwecken auch modifiziert werden können (5 aus 36 etc. darüber denk ich zuletz nach^^). Eine Gewinnrechnung (Auszahlung) mit zugehöriger Kalkulation (Einnahmen, Betriebsgewinn) muss nicht sein wäre aktzeptabel:P.
Die Rollen der Spieler sollten beeinflussbar sein:
Computer zieht <-> Mensch tippt
Computer zieht <-> Computer tippt
Mensch zieht <-> Computer tipptNeben Einzeltipps sollte es auch möglich sein, eine bestimmte Tippanzahl oder ein bestimmtes Ergebnis (z.B. 4 richtige) vorzugeben, was insbesondere bei den Rollenvarianten 2 und 3 interessant sein könnte.also man hat ja recht wenig chancen zu gewinnen und wollt sie halt auch erhöhen
Um Glück oder Aufwand zu dokumentieren wäre eine Spielauswertung (Statistik) wünschenswert, optional mit Speichern in Dateien.
Die Abläufe und Ergebnisse sollten mit den beschränkten Mitteln der Konsolentextausgabe so ansprechend wie möglich dargestellt werden (Spielfeld, Farben, ...).
so nun hab ich halt ein programm geschrieben:#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>
#include <limits.h>void linie_prg_ueberschrift(void); // unwichtige linien für überschrift und so ^^
void linie_menue_punkt_2(void); // unwichtige linien für überschrift und so ^^#define ANZ_LZ 49// Anzahl der Lottozahlen
#define ANZ_TIPPS6// Anzahl der abzugebenen Tippsmain()
{
int zufallz,r,x,y,z;
char spielfeld[5][11];
int *ptrx,*ptry;
int menue;//Auswahlmenue
char e;// Abgesicherte eingabeprintf("Was Wollen Sie spielen?? \n\n"); // Ausgabe von Menü
printf(" 1.) Computer zieht <->Mensch tippt\n");
printf(" 2.) Computer zieht <->Computer tippt\n");
printf(" 3.) Mensch zieht <-> Computer tippt\n\n");// e=(Abgesicherte Eingabe von Menü)
do
{
printf("Auswahl: ");
e=scanf("%d", &menue);
fflush(stdin);
} while(!e || menue<1 || menue>3); // Eingrenzung für die eingabe von 1-3//srand((unsigned)time(NULL));
switch(menue)
{
// Computer zieht <-> Mensch tippt
case 1:
/*system("color 0E");*/
system("cls");// Bildschirm löschen & Überschrift Menüpunkt 1 taucht auf
printf("Computer zieht <-> Mensch tippt\n\n");
linie_menue_punkt_2();x=1;
for(spielfeld[x];x<2;spielfeld[x++])
{
printf("",x);
printf("\n\n");
y=1;for(spielfeld[y];y<50;spielfeld[y++])
{
printf("%8i",y);
printf("");
}
printf("\n");
ptrx=&x;
ptry=&y;
}//system("cls");
printf("\n %10c Die heutigen Lottozahlen beim 6 aus 49\n\n");srand((int)time(NULL));
for(z=0; z<6;z++)
for(zufallz=6;zufallz<49;zufallz++)
{
{
z=rand()%49-1;
printf("%i \n",z);
printf("Bitte geben sie ihre Tipps ab: \n");
scanf("%i",&zufallz);
}
}
printf("\n\n");}
}da hab ich halt das spielfeld schon erstellt und ich wollt halt umbedingt wissen ob es möglich ist mit zb. w,a,s,d hoch runter rechts links zu gehen und dabei ankreuzen was du halt für ne zahl möchtest, ich denke dabei müsste ich cursor beherschen
Da hab ich mir was ziemlich schwieriges vorgenommen aber ich hoffe ihr könnt mir helfen
thx.
pathe
-
Benutez bitte die C/C++ Codetags! Den Code hat keiner Bock sich anzuschauen.
-
#include <stdio.h> #include <string.h> #include <stdlib.h> #include <time.h> #include <limits.h> void linie_prg_ueberschrift(void); // unwichtige linien für überschrift und so ^^ void linie_menue_punkt_2(void); // unwichtige linien für überschrift und so ^^ #define ANZ_LZ 49// Anzahl der Lottozahlen #define ANZ_TIPPS6// Anzahl der abzugebenen Tipps main() { int zufallz,r,x,y,z; char spielfeld[5][11]; int *ptrx,*ptry; int menue;//Auswahlmenue char e;// Abgesicherte eingabe printf("Was Wollen Sie spielen?? \n\n"); // Ausgabe von Menü printf(" 1.) Computer zieht <->Mensch tippt\n"); printf(" 2.) Computer zieht <->Computer tippt\n"); printf(" 3.) Mensch zieht <-> Computer tippt\n\n"); // e=(Abgesicherte Eingabe von Menü) do { printf("Auswahl: "); e=scanf("%d", &menue); fflush(stdin); } while(!e || menue<1 || menue>3); // Eingrenzung für die eingabe von 1-3 //srand((unsigned)time(NULL)); switch(menue) { // Computer zieht <-> Mensch tippt case 1: /*system("color 0E");*/ system("cls");// Bildschirm löschen & Überschrift Menüpunkt 1 taucht auf printf("Computer zieht <-> Mensch tippt\n\n"); linie_menue_punkt_2(); x=1; for(spielfeld[x];x<2;spielfeld[x++]) { printf("",x); printf("\n\n"); y=1; for(spielfeld[y];y<50;spielfeld[y++]) { printf("%8i",y); printf(""); } printf("\n"); ptrx=&x; ptry=&y; } //system("cls"); printf("\n %10c Die heutigen Lottozahlen beim 6 aus 49\n\n"); srand((int)time(NULL)); for(z=0; z<6;z++) for(zufallz=6;zufallz<49;zufallz++) { { z=rand()%49-1; printf("%i \n",z); printf("Bitte geben sie ihre Tipps ab: \n"); scanf("%i",&zufallz); } } printf("\n\n"); } }
-
Um den Cursor über Standard-C zu bewegen, fallen mir momentan nur Escape-Sequenzen ein. Das wird aber schwierig und äußerst unsauber..
Abfangen der Tasten wasd machst du in dem Fall mit getch() (conio.h)
Alles in allem gibt es aber (soweit mir bekannt ist) keine komfortable Lösung dafür in Ansi-C.
-
hab jetz wieder komplet neu angefangen und wollt euch nochmal paar fragen stellen
ich stell ma mein code hier rein:#include<stdio.h>
#include<stdlib.h>//Funktionen
int spielen(int x);
void ziehung(int zufall[], int r, int bereich );
void ziehung_aus(int zufall[], int r);
void tippen(int tipps[], int r);
void tippen_aus(int tipps[],int tipp);//Hauptprogramm
void main(void)
{
// Definitonen für die Vektoren
int zufall[100],tipps[100];
char spielfeld[5][11];
// Definition der Variablen
int bereich,r,x,y,i,tipp;
int *ptrx,*ptry;
int e,menue;//Konsolenausgabe-Hauptbildschirm
srand((unsigned int)time(NULL));
printf("%18c***************************************************");
printf("\n %18c Zahlenlotto-Projekt fuer Programmieren 04/09\n");
printf("%18c***************************************************\n\n");printf("\nLiebe Nutzer es gibt genau 3 Spielmoeglichkeiten:\n");
printf("\n1. Computer zieht -> Spieler tippt");
printf("\n2. Computer tippt -> Spieler zieht");
printf("\n3. Computer zieht -> Computer tippt");do
{
printf(" \n\nAuswahl: ");
e=scanf("%d", &menue);
fflush(stdin);
} while(!e || menue<1 || menue>3);switch(menue)
{
//Menüpunkt1: Computer zieht <-> Mensch tippt
case 1:
system("cls");
printf("\n\nDie Ziehung ist Variable d.h 6 aus 49 oder 5 aus 49 sie haben die Wahl");
printf("\n\nBitte geben sie nun an wieviel Zahlen gezogen werden sollen\n");
scanf("%d", &r);
fflush(stdin);
printf("Geben sie den Bereich ein aus denen die Zahlen gezogen werden sollen\n");
scanf("%d", &bereich);
fflush(stdin);//Aufruf der Funktionen
tippen(tipps,r);
ziehung(zufall,r,bereich);
ziehung_aus(zufall,r);
tippen_aus(tipps,r);break;
//Gewinnprüfung
case 2:
//int vec[10];
break;
case 3:break;
}//Spielfeld - Ausgabe
/*x=1;
for(spielfeld[x];x<2;spielfeld[x++])
{
printf("",x);
printf("\n\n");
y=1;for(spielfeld[y];y<50;spielfeld[y++])
{
printf("%8i",y);
printf("");
}
printf("\n");
ptrx=&x;
ptry=&y;
}*/printf("\n\n");
printf("\n\n");}
void ziehung(int zufall[], int r, int bereich )
{
int i,j,zufallz;//Element 1 mit Zahlen füllen
//i=0;
while(i<r)
{
zufall[0]=(rand((unsigned int)time(NULL))%bereich) +1;
srand((unsigned int)time(NULL));
++i;
zufall[i]= (rand() % bereich) +1;// Sicherung vor doppelten eingaben
j=0;
while(j<i)
{
if(zufall[i]!=zufall[j]) ++j;
else(zufall[i] = (rand() % bereich)) +1;
}
}
}void tippen(int tipps[],int r)
{
int i;for(i=0;i<r;i++)
{
//do
//{
printf("Bitte geben Sie ihren %i Tipp ab\n",i+1);
scanf("%i",&tipps[i]);
fflush(stdin);
//}while(!i || tipps<1 || tipps>49);
}
}void tippen_aus(int tipps[],int r)
{
int i;printf("Ihre Tipps %i aus 49 :\n", r);
for(i=0;i<r;i++)
{
printf("%d/", tipps[i]);
}
printf("\n\n");
}void ziehung_aus(int zufall[], int r)
{
int i;printf("Ihre Ziehung %i aus 49 :\n", r);
for(i = 0; i <r; i++)
{
printf("%d/",zufall[i]);
}
printf("\n\n");
}wollte halt mal fragen ob ihr wisst wie is im zweiten menüpunkt
computer zieht <-> computer tippt
und zwar könnt ihr mir sagen wie ich es schaffe
den computer zahlen tippen zu lassen die aber auch treffen
also zb der computer soll mindestens 3 richtige treffen oder so
also eine eingabe für wieviele richtige wollen sie treffen zb
dann zieht der computer zufzahlen und tippt zufzahlen wie kann ich die beiden
zahlen gleich kriegen kann mir da jemand helfen?
hoffe ich spreche verständlich xD
thx pathe
-
Erzieherische Maßnahme: Codetags benutzen, damit man den Code lesen kann.