Lottoprogramm Ausgabe formatieren
-
Hey Community,
ich muss derzeit für die Schule ein Lottoprogramm schreiben, es funktioniert alles aber ich habe noch etwas Probleme mit der Ausgabe.
Hier der Quellcode:
//Headerdateien
#include <iostream>
#include <time.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <windows.h>
using namespace std;//**************************************************************************************************
//Prototypen
void tippen(int*);
void ausgeben(int*);
void ziehen(int*);
void sortieren(int*);
void auswerten(int*,int*);
bool doppelt(int*,int);
void gotoxy(int x, int y);//**************************************************************************************************
//**************************************************************************************************
//Hauptprogramm
int main()
{//Variablen und Arrays deklarieren
int ar_tipp[6];
int ar_ausgeben[6];
int ar_lotto[6];
char wiederholen;
int zeichen;system("cls");
//Funktionsaufruf "Tippen"
for(int i=1;i<=8;i++)//Ecke Links oben
{
gotoxy(15,i);//position des Koersers
zeichen= 201;
cout<<zeichen<<"\n";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 12);
gotoxy(15,1);
cout<<"xxx xxxx xxxxxxxxx xxxxxxxxx xxxx " <<endl;
gotoxy(15,2);
cout<<"xxx xx xx xxxxxxxxx xxxxxxxxx xx xx "<<endl;
gotoxy(15,3);
cout<<"xxx xx xx xx xx xx xx"<<endl;
gotoxy(15,4);
cout<<"xxx xx xx xx xx xx xx"<<endl;
gotoxy(15,5);
cout<<"xxx xx xx xx xx xx xx " <<endl;
gotoxy(15,6);
cout<<"xxx xx xx xx xx xx xx"<<endl;
gotoxy(15,7);
cout<<"xxxxxxx xx xx xx xx xx xx " <<endl;
gotoxy(15,8);
cout<<"xxxxxxx xxxx xx xx xxxx "<<endl;
}
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 14);
gotoxy(30,11);
cout<<"Willkommen zum Lottospiel."<<endl;
gotoxy(25,13);
cout<<"Bitte geben sie 6 von 49 Zahlen ein"<<endl;tippen (ar_tipp);
ziehen (ar_lotto);
auswerten (ar_tipp, ar_lotto);
cout<<"\nMoechten sie nochmal spielen? -J/N"<<endl;
cin>>wiederholen;
if(wiederholen=='j')
{main();
}return 0;
}//**************************************************************************************************
//Unterprogramme//Unterprogramm "Tippen" usw.
void tippen(int* ar_tipp)
{for(int i=0; i<6; i++)
{ gotoxy(2, i+15);cout<<i+1<<". Tipp: ";
cin>>ar_tipp[i];
if(ar_tipp[i]<1 || ar_tipp[i]>49)
{
gotoxy(5,22);cout<<"Der gewuenschte Tipp ist nicht gueltig"<<endl;
i--;}
if(doppelt(ar_tipp,i))
{
gotoxy(5,22);cout<<"Die Zahl wurde bereits schon eingegeben! Bitte Eingabe wiederholen."<<endl;
i--;}
}
system("cls");
ausgeben(ar_tipp);}
//**************************************************************************************************
//Unterprogramm "Ausgeben" usw.void ausgeben(int* ar_ausgeben)
{
int temp1;
int zeichen;for(int i=1;i<=8;i++)//Ecke Links oben
{
gotoxy(15,i);//position des Koersers
zeichen= 201;
cout<<zeichen<<"\n";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 12);
gotoxy(15,1);
cout<<"xxx xxxx xxxxxxxxx xxxxxxxxx xxxx " <<endl;
gotoxy(15,2);
cout<<"xxx xx xx xxxxxxxxx xxxxxxxxx xx xx "<<endl;
gotoxy(15,3);
cout<<"xxx xx xx xx xx xx xx"<<endl;
gotoxy(15,4);
cout<<"xxx xx xx xx xx xx xx"<<endl;
gotoxy(15,5);
cout<<"xxx xx xx xx xx xx xx " <<endl;
gotoxy(15,6);
cout<<"xxx xx xx xx xx xx xx"<<endl;
gotoxy(15,7);
cout<<"xxxxxxx xx xx xx xx xx xx " <<endl;
gotoxy(15,8);
cout<<"xxxxxxx xxxx xx xx xxxx "<<endl;
}
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 14);
gotoxy(30,11);
cout<<"Willkommen zum Lottospiel."<<endl;
gotoxy(25,13);
cout<<"Bitte geben sie 6 von 49 Zahlen ein"<<endl;cout<<"\nIhr Tipp:"<<endl;
for(int i=0; i<6; i++)
{
for(int j=0; j<6;j++)
{
if(ar_ausgeben[j]>ar_ausgeben[j+1])
{
temp1=ar_ausgeben[j];
ar_ausgeben[j]=ar_ausgeben[j+1];
ar_ausgeben[j+1]=temp1;
}
}
}
for(int k=0; k<6;k++)
{
cout<<k+1<<". Zahl= "<<ar_ausgeben[k]<<"\n"<<endl;
}}
//**************************************************************************************************
//Unterprogramm "Ziehen" usw.
void ziehen(int* ar_lotto)
{srand((unsigned)time(NULL));//Zufallszahlengenerator starten.
for(int i=0;i<6; i++)
{
ar_lotto[i]=rand()%49+1;if(doppelt(ar_lotto,i))
{
i--;
}
}
sortieren(ar_lotto);}
//**************************************************************************************************
//Unterprogramm "Sortieren" usw.
void sortieren(int* ar_lotto)
{int temp;
int zeichen;
for(int l=0; l<1; l++)
{cout<<"Lottozahlen:";
{for(int i=0; i<6; i++)
{
for(int j=0; j<6;j++)
{
if(ar_lotto[j]>ar_lotto[j+1])
{
temp=ar_lotto[j];
ar_lotto[j]=ar_lotto[j+1];
ar_lotto[j+1]=temp;
}
}
}
}for(int k=0; k<6;k++)
{
cout<<"\n"<<k+1<<". Zahl= "<<ar_lotto[k]<<endl;
}
}
}//**************************************************************************************************
//Unterprogramm "Auswerten" usw.
void auswerten(int* ar_tipp,int* ar_lotto)
{int k=0;
for(int i=0; i<6; i++)
{for(int j=0; j<6; j++)
{
if(ar_tipp[i]==ar_lotto[j])
{k++;
}
}
}cout<<"\n Sie haben "<<k<<" richtige Zahlen";
}//**************************************************************************************************
//Unterprogramm "Doppelt" usw.
bool doppelt(int* ar_zahlen ,int i)
{
if(i>0)
{
for(int j=0; j<=i-1; j++)
{
if(ar_zahlen[j]==ar_zahlen[i])
{
return(true);
}
}}
return(false);}
void gotoxy(int xpos, int ypos)
{
COORD scrn;
HANDLE hOuput = GetStdHandle(STD_OUTPUT_HANDLE);
scrn.X = xpos; scrn.Y = ypos;
SetConsoleCursorPosition(hOuput,scrn);
}//True oder false
**Es geht um diese Stelle:
********************
//Unterprogramm "Sortieren" usw.
void sortieren(int* ar_lotto)
{int temp;
int zeichen;
for(int l=0; l<1; l++)
{cout<<"Lottozahlen:";
{for(int i=0; i<6; i++)
{
for(int j=0; j<6;j++)
{
if(ar_lotto[j]>ar_lotto[j+1])
{
temp=ar_lotto[j];
ar_lotto[j]=ar_lotto[j+1];
ar_lotto[j+1]=temp;
}
}
}
}for(int k=0; k<6;k++)
{
cout<<"\n"<<k+1<<". Zahl= "<<ar_lotto[k]<<endl;
}
}**
}Ich hätte gern das die gezogenen Lottozahlen Rechts neben dem eigenen Tipp stehen. Ich hätte gedacht man könnte dies mit gotoxy(x,y) hinbekommen. Jedoch funktioniert das nicht so gut.
Mit freundlichen Grüßen
Manu aka Explode
-
Hey,
stell dir mal kurz vor, du hättest diesen Beitrag nicht geschrieben, und willst nur helfen.
Jetzt lies mal deinen Beitrag. Mach das einfach mal.
Und dann sag, was dir so auffällt, was uns daran hindern könnte, dir zu helfen.
-
Ich weiß nicht was du meinst aber könntest du mir bitte helfen?
-
Kann mir bitte einer helfen. Es ist wichtig!
-
Explode schrieb:
Ich weiß nicht was du meinst aber könntest du mir bitte helfen?
380 Zeilen grausamer Code, den ich nicht mal testen kann, weil es nicht portabel ist..?
-
Dann benutz' diese Windows-Magie
#include <windows.h> #include <iostream> void gotoxy(int x, int y) { HANDLE hCon = GetStdHandle(STD_OUTPUT_HANDLE); COORD pos; pos.Y = y - 1; pos.X = x - 1; SetConsoleCursorPosition(hCon, pos); } int main() { gotoxy(40, 12); std::cout << "Hallo"; }Spiel damit rum, hast schnell den Dreh raus. Damit geht's bestimmt. Aber nur unter Windows.
EDIT: Hey, mir fällt ja gerade auf, dass du das Ding schon so da stehn hast.
Dann bist du einfach nur doof, oder ein Troll. Schönen Tag noch.
-
Hää wie meinst du das?
-
Ist es mit gotoxy möglich? und wenn ja kann mir bitte einer sagen wie?
-
Bevor du deinen unlesbaren Beitrag noch einmal pusht, lies bitte mal die als wichtig markierten Threads im Forum oder die Links aus meiner Signatur.