|
@ -5,13 +5,14 @@ int ASCII_Art(){ |
|
|
|
|
|
|
|
|
int weitermachen = 0; |
|
|
int weitermachen = 0; |
|
|
do { |
|
|
do { |
|
|
printWelcomeMessage(); |
|
|
|
|
|
|
|
|
Willkommensnachricht(); |
|
|
|
|
|
|
|
|
int auswahl; |
|
|
int auswahl; |
|
|
scanf("%d", &auswahl); |
|
|
scanf("%d", &auswahl); |
|
|
auswahlDerArt(auswahl); |
|
|
auswahlDerArt(auswahl); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
printf("Vielen Dank, dass sie sich ASCII-Art angesehen haben\n" |
|
|
|
|
|
|
|
|
printf("\nVielen Dank, dass sie sich ASCII-Art angesehen haben\n" |
|
|
"Wollen Sie weitere ASCII-Art sehen?\n" |
|
|
"Wollen Sie weitere ASCII-Art sehen?\n" |
|
|
"(1) Ja\n" |
|
|
"(1) Ja\n" |
|
|
"(2) Nein\n" |
|
|
"(2) Nein\n" |
|
@ -25,39 +26,39 @@ int ASCII_Art(){ |
|
|
void quadrat(){ |
|
|
void quadrat(){ |
|
|
|
|
|
|
|
|
frageNachGroesse(); |
|
|
frageNachGroesse(); |
|
|
int groesse; |
|
|
|
|
|
scanf("%d", &groesse); |
|
|
|
|
|
int arraySize = berechnungDerLaengeDesQuadratArrays(groesse); |
|
|
|
|
|
|
|
|
int LaengeDerZeilen; |
|
|
|
|
|
scanf("%d", &LaengeDerZeilen); |
|
|
|
|
|
int arraySize = berechnungDerLaengeDesQuadratArrays(LaengeDerZeilen); |
|
|
char Quadrat[arraySize]; |
|
|
char Quadrat[arraySize]; |
|
|
befuellenDesArraysMitX(Quadrat, arraySize); |
|
|
befuellenDesArraysMitX(Quadrat, arraySize); |
|
|
befuelleArrayMitLeerzeichen(Quadrat, arraySize); |
|
|
|
|
|
befuelleArrayMitZeilenumbruechen(Quadrat,groesse); |
|
|
|
|
|
|
|
|
befuelleDasArrayMitLeerzeichen(Quadrat, arraySize); |
|
|
|
|
|
befuelleDasArrayMitZeilenumbruechen(Quadrat,LaengeDerZeilen); |
|
|
|
|
|
|
|
|
printf("\n%s", Quadrat); |
|
|
printf("\n%s", Quadrat); |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
void weihnachtsbaum(){ |
|
|
|
|
|
|
|
|
void Weihnachtsbaum(){ |
|
|
|
|
|
|
|
|
abfrageDerHoehe(); |
|
|
abfrageDerHoehe(); |
|
|
int hoehe; |
|
|
|
|
|
|
|
|
int hoeheVomBaumInklusiveStamm; |
|
|
do{ |
|
|
do{ |
|
|
// Diese Schleifen erfragen user input solange bis korrekte Werte eingegeben werden |
|
|
// Diese Schleifen erfragen user input solange bis korrekte Werte eingegeben werden |
|
|
|
|
|
|
|
|
scanf("%d", &hoehe); |
|
|
|
|
|
if (hoehe < 3){ |
|
|
|
|
|
|
|
|
scanf("%d", &hoeheVomBaumInklusiveStamm); |
|
|
|
|
|
if (hoeheVomBaumInklusiveStamm < 3){ |
|
|
printf("\nDer Weihnachtsbaum muss mindestens 3 Zeilen groß sein!\n"); |
|
|
printf("\nDer Weihnachtsbaum muss mindestens 3 Zeilen groß sein!\n"); |
|
|
printf("Bitte geben Sie erneut einen Wert ein der mindestens 3 lautet:"); |
|
|
printf("Bitte geben Sie erneut einen Wert ein der mindestens 3 lautet:"); |
|
|
} |
|
|
} |
|
|
}while(hoehe < 3); |
|
|
|
|
|
|
|
|
}while(hoeheVomBaumInklusiveStamm < 3); |
|
|
|
|
|
|
|
|
int maxBreiteDesWeihnachtsbaums = max_breite(hoehe); |
|
|
|
|
|
|
|
|
int maxBreiteDesWeihnachtsbaums = max_breiteDesBaums(hoeheVomBaumInklusiveStamm); |
|
|
int mitte_baum = mitteDesBaums(maxBreiteDesWeihnachtsbaums); |
|
|
int mitte_baum = mitteDesBaums(maxBreiteDesWeihnachtsbaums); |
|
|
int groesseDesArrays = (hoehe -1) * maxBreiteDesWeihnachtsbaums; |
|
|
|
|
|
|
|
|
int groesseDesArrays = (hoeheVomBaumInklusiveStamm -1) * maxBreiteDesWeihnachtsbaums; |
|
|
char weihnachtsbaum[groesseDesArrays]; |
|
|
char weihnachtsbaum[groesseDesArrays]; |
|
|
befuellenDesWeihnachtsbaumsMitLeerzeichen(weihnachtsbaum, groesseDesArrays); |
|
|
befuellenDesWeihnachtsbaumsMitLeerzeichen(weihnachtsbaum, groesseDesArrays); |
|
|
befuellenDesWeihnachtsbaumsMitPlus(weihnachtsbaum, maxBreiteDesWeihnachtsbaums, (hoehe-1)); |
|
|
|
|
|
befuellenDesWeihnachtsbaumsMitZeilenumbruechen(weihnachtsbaum, hoehe, maxBreiteDesWeihnachtsbaums); |
|
|
|
|
|
|
|
|
befuellenDesWeihnachtsbaumsMitPlus(weihnachtsbaum, maxBreiteDesWeihnachtsbaums, (hoeheVomBaumInklusiveStamm-1)); |
|
|
|
|
|
befuellenDesWeihnachtsbaumsMitZeilenumbruechen(weihnachtsbaum, hoeheVomBaumInklusiveStamm, maxBreiteDesWeihnachtsbaums); |
|
|
char stamm[maxBreiteDesWeihnachtsbaums]; |
|
|
char stamm[maxBreiteDesWeihnachtsbaums]; |
|
|
befuellenDesStammarraysMitLeerzeichen(stamm, maxBreiteDesWeihnachtsbaums); |
|
|
befuellenDesStammarraysMitLeerzeichen(stamm, maxBreiteDesWeihnachtsbaums); |
|
|
stammAnRichtigerStelleEinsetzen(stamm, maxBreiteDesWeihnachtsbaums); |
|
|
stammAnRichtigerStelleEinsetzen(stamm, maxBreiteDesWeihnachtsbaums); |
|
@ -70,37 +71,41 @@ void weihnachtsbaum(){ |
|
|
|
|
|
|
|
|
void dreieck(){ |
|
|
void dreieck(){ |
|
|
dreieckWillkommensnachricht(); |
|
|
dreieckWillkommensnachricht(); |
|
|
int hoehe; |
|
|
|
|
|
|
|
|
int hoeheDreieck; |
|
|
|
|
|
|
|
|
|
|
|
// Eingabe Auf Definitions |
|
|
do{ |
|
|
do{ |
|
|
scanf("%d", &hoehe); |
|
|
|
|
|
if(hoehe < 2){ |
|
|
|
|
|
|
|
|
scanf("%d", &hoeheDreieck); |
|
|
|
|
|
if(hoeheDreieck < 2){ |
|
|
printf("Es wurde ein Wert eingegeben, der kleiner ist als 2. Bitte geben Sie erneut eine Zahl ein!\n" |
|
|
printf("Es wurde ein Wert eingegeben, der kleiner ist als 2. Bitte geben Sie erneut eine Zahl ein!\n" |
|
|
"Eingbe:"); |
|
|
"Eingbe:"); |
|
|
} |
|
|
} |
|
|
} while(hoehe < 2); |
|
|
|
|
|
|
|
|
} while(hoeheDreieck < 2); |
|
|
|
|
|
|
|
|
int arraygroesse = berechnungDerDreieckArraygroesse(hoehe); |
|
|
|
|
|
|
|
|
int arraygroesse = berechnungDerDreieckArraygroesse(hoeheDreieck); |
|
|
char dreieck[arraygroesse]; |
|
|
char dreieck[arraygroesse]; |
|
|
befuellenDesDreiecksMitX(dreieck, arraygroesse); |
|
|
befuellenDesDreiecksMitX(dreieck, arraygroesse); |
|
|
befuellenDesDreiecksMitZeilenumbruechen(dreieck, hoehe, arraygroesse); |
|
|
|
|
|
|
|
|
befuellenDesDreiecksMitZeilenumbruechen(dreieck, hoeheDreieck, arraygroesse); |
|
|
printf("%s", dreieck); |
|
|
printf("%s", dreieck); |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
void rakete(){ |
|
|
void rakete(){ |
|
|
raketeBegruessung(); |
|
|
raketeBegruessung(); |
|
|
int hoehe; |
|
|
|
|
|
|
|
|
int hoeheRakete; |
|
|
do{ |
|
|
do{ |
|
|
scanf("%d", &hoehe); |
|
|
|
|
|
if(hoehe < 3){ |
|
|
|
|
|
|
|
|
scanf("%d", &hoeheRakete); |
|
|
|
|
|
if(hoeheRakete < 3){ |
|
|
printf("Es wurde ein Wert eingegeben, der kleiner ist als 3. Bitte geben Sie erneut eine Zahl ein!\n" |
|
|
printf("Es wurde ein Wert eingegeben, der kleiner ist als 3. Bitte geben Sie erneut eine Zahl ein!\n" |
|
|
"Eingbe:"); |
|
|
"Eingbe:"); |
|
|
} |
|
|
} |
|
|
} while(hoehe < 3); |
|
|
|
|
|
|
|
|
} while(hoeheRakete < 3); |
|
|
|
|
|
|
|
|
|
|
|
printf("\nComing soon ;)\n"); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int printWelcomeMessage(){ |
|
|
|
|
|
|
|
|
int Willkommensnachricht(){ |
|
|
printf("Willkommen bei ASCII-Art!\n"); |
|
|
printf("Willkommen bei ASCII-Art!\n"); |
|
|
printf("Wählen Sie aus welche ASCII-Art Sie sehen wollen!\n"); |
|
|
printf("Wählen Sie aus welche ASCII-Art Sie sehen wollen!\n"); |
|
|
printf("(1) Quadrat\n"); |
|
|
printf("(1) Quadrat\n"); |
|
@ -117,7 +122,7 @@ void auswahlDerArt(int pick){ |
|
|
quadrat(); |
|
|
quadrat(); |
|
|
break; |
|
|
break; |
|
|
case (2): |
|
|
case (2): |
|
|
weihnachtsbaum(); |
|
|
|
|
|
|
|
|
Weihnachtsbaum(); |
|
|
break; |
|
|
break; |
|
|
|
|
|
|
|
|
case (3): |
|
|
case (3): |
|
@ -156,7 +161,7 @@ void befuellenDesArraysMitX(char quadraT[], int laenge){ |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
void befuelleArrayMitLeerzeichen(char quadraT[], int laenge){ |
|
|
|
|
|
|
|
|
void befuelleDasArrayMitLeerzeichen(char quadraT[], int laenge){ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (int i = 0; i < laenge; i++){ |
|
|
for (int i = 0; i < laenge; i++){ |
|
@ -164,10 +169,12 @@ void befuelleArrayMitLeerzeichen(char quadraT[], int laenge){ |
|
|
quadraT[i] = ' '; |
|
|
quadraT[i] = ' '; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// Das \0 muss Extra platziert werden um einen korrekten Ablauf sicherzustellen |
|
|
quadraT[laenge-1] = '\0'; |
|
|
quadraT[laenge-1] = '\0'; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
void befuelleArrayMitZeilenumbruechen(char quadraT[], int laenge){ |
|
|
|
|
|
|
|
|
void befuelleDasArrayMitZeilenumbruechen(char quadraT[], int laenge){ |
|
|
|
|
|
|
|
|
int zeile = 2 * laenge; |
|
|
int zeile = 2 * laenge; |
|
|
int laengeGesamt = zeile * laenge; |
|
|
int laengeGesamt = zeile * laenge; |
|
@ -186,7 +193,7 @@ int abfrageDerHoehe(){ |
|
|
return 0; |
|
|
return 0; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
int max_breite(int zeilen){ |
|
|
|
|
|
|
|
|
int max_breiteDesBaums(int zeilen){ |
|
|
|
|
|
|
|
|
int maximaleBreiteEinerZeile; |
|
|
int maximaleBreiteEinerZeile; |
|
|
maximaleBreiteEinerZeile = zeilen + (zeilen - 2); |
|
|
maximaleBreiteEinerZeile = zeilen + (zeilen - 2); |
|
@ -211,18 +218,18 @@ void befuellenDesWeihnachtsbaumsMitPlus(char arr[], int maxBreite, int zeilen){ |
|
|
|
|
|
|
|
|
int arrayGroesse = maxBreite * zeilen; |
|
|
int arrayGroesse = maxBreite * zeilen; |
|
|
int mitteDesBaums = maxBreite / 2; |
|
|
int mitteDesBaums = maxBreite / 2; |
|
|
int mengeX = 1; |
|
|
|
|
|
|
|
|
int mengeDerXInDerZeile = 1; |
|
|
|
|
|
|
|
|
for(int i = zeilen; i > 0; i--){ |
|
|
for(int i = zeilen; i > 0; i--){ |
|
|
|
|
|
|
|
|
int position = mitteDesBaums -1; |
|
|
int position = mitteDesBaums -1; |
|
|
|
|
|
|
|
|
while(position < mitteDesBaums-1 + mengeX){ |
|
|
|
|
|
|
|
|
while(position < mitteDesBaums-1 + mengeDerXInDerZeile){ |
|
|
arr[position++] = '+'; |
|
|
arr[position++] = '+'; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
mitteDesBaums += (maxBreite -1); |
|
|
mitteDesBaums += (maxBreite -1); |
|
|
mengeX += 2; |
|
|
|
|
|
|
|
|
mengeDerXInDerZeile += 2; |
|
|
} |
|
|
} |
|
|
arr[arrayGroesse] = '\0'; |
|
|
arr[arrayGroesse] = '\0'; |
|
|
} |
|
|
} |
|
@ -305,7 +312,7 @@ void befuellenDesDreiecksMitZeilenumbruechen(char arr[], int gesamtzeilen, int a |
|
|
stelleFuerZeilenumbruch += (zeile+2); |
|
|
stelleFuerZeilenumbruch += (zeile+2); |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
arr[arraygroesse] = '\0'; |
|
|
|
|
|
|
|
|
arr[arraygroesse -1] = '\0'; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
void raketeBegruessung(){ |
|
|
void raketeBegruessung(){ |
|
|