Komme bei diesem Programm einfach nicht weiter! Hilfe!
-
Hallo!
Hier der Quelltext zu dem Programm.
ICh habe es soweit am laufen, nur ich tüfftel jetzt schon seit 2 Wochen dara, wie ich am Ende ausgewertet bekomme welcher Spieler gewonnen hat! Gewinnen soll der Spieler, der das letzte Hölzchen weg nimmt.
Hoffe könnt mir helfen.. ich bin am verzweifeln!
Hier der Quellcode!
#include <stdio.h>
#include <conio.h>
#include <vcl.h>
#pragma hdrstop//---------------------------------------------------------------------------
#pragma argsused
int AnzahlHoelzer, Betriebsart, ErsterSpieler, Spielart, Zahl1;
char Spieler1[50], Spieler2[50], Wiederholen;
void Vorbereiten();
void Spiel();
void Betriebsart1();
void Betriebsart2();
int main(void)
{
do
{
Vorbereiten ();
Spiel ();
clrscr();
printf("Noch mal? (J/N): ");
Wiederholen = getch();
}
while (Wiederholen=='j'||Wiederholen=='J');
clrscr();
}void Vorbereiten()
{
do
{
clrscr();
printf("Gib die Anzahl der Hoelzer (>9) ein:");
scanf("%x",&AnzahlHoelzer);
printf("%x Hoelzer",AnzahlHoelzer);
getch();
if (AnzahlHoelzer<9)
{
printf("Mindestens 9 eintippen\n");
}
}
while (AnzahlHoelzer<9);
clrscr();
do
{
printf("1 - Spieler gegen Spieler\n");
printf("2 - Spieler gegen Computer\n");
printf("Geben Sie gewuenschte Spielart (1 oder 2) ein: ");
scanf("%d",&Spielart);
}
while (Spielart<1 || Spielart>2);
if (Spielart==1)
{
Betriebsart1();
}
else Betriebsart2();
}void Betriebsart1()
{
printf("Spieler1:");
scanf("%50s",Spieler1);
printf("Spieler2:");
scanf("%50s",Spieler2);
do
{
printf("\nWer soll anfangen (1 oder 2):");
scanf("%d",&ErsterSpieler);
}
while (ErsterSpieler<1 || ErsterSpieler>2);
}void Betriebsart2()
{
printf("Spieler1:");
scanf("%50s",Spieler1);
printf("Spieler2:Computer");
do
{
printf("\nWer soll anfangen (1 oder 2):");
scanf("%d",&ErsterSpieler);
}
while (ErsterSpieler<1 || ErsterSpieler>2);
}
void Spiel()
{
clrscr();
printf("Spiel");
getch();
if (ErsterSpieler==1)
{
printf("\n1.Spieler faengt an!");
do
{
printf("\nEs sind %d Hoelzer vorhanden",AnzahlHoelzer);
printf("\n%s-Wieviele Hoelzer sollen entnommen werden?(min.1, max.3)",Spieler1);
scanf("%d",&Zahl1);
AnzahlHoelzer=AnzahlHoelzer-Zahl1;
printf("\nEs sind %d Hoelzer vorhanden",AnzahlHoelzer);
printf("\n%s-Wieviele Hoelzer sollen entnommen werden?(min.1, max.3)",Spieler2);
scanf("%d",&Zahl1);
AnzahlHoelzer=AnzahlHoelzer-Zahl1;}
while (AnzahlHoelzer>0);if (AnzahlHoelzer==0)
{
getch;
}
}
-
- Ist das C#.NET?
- Bitte [ cpp] Tags benutzen
- Dann klappt Einrückung automatisch
- Code wenn's geht nächstes mal auf ein funktionierendes Minimum reduzieren vorm Posten.Hier mal ein Ansatz (ohne Deine Variablen zu verändern):
int aktSpieler = 0; do { aktSpieler = (aktSpieler + 1) % 2; printf("\nEs sind %d Hoelzer vorhanden",AnzahlHoelzer); printf("\n%s-Wieviele Hoelzer sollen entnommen werden?(min.1, max.3)", (aktSpieler == 0 ? Spieler1 : Spieler2) ); // das ist neu scanf("%d",&Zahl1); AnzahlHoelzer=AnzahlHoelzer-Zahl1; } while (AnzahlHoelzer > 0); printf("\nGewonnen hat %s\n", (aktSpieler == 0 ? Spieler1 : Spieler2) );
Vereinfachung wäre z.B. Spielernamen in nem Array zu halten, dann entfallen die Abfragen, usw...
-
LordJaxom schrieb:
- Ist das C#.NET?
Sieht eher wie C aus.
-
also dass das nicht C# ist, sieht man doch gleich an den include-datein. sowas gibt es meines erachtens bei CSharp gar nicht!
-
1. war die Frage rhetorisch und
2. scheint es den OP sowieso nicht zu interessieren
-
LordJaxom schrieb:
- Bitte [ cpp] Tags benutzen
- Dann klappt Einrückung automatisch#include <stdio.h> #include <conio.h> #include <vcl.h> #pragma hdrstop //--------------------------------------------------------------------------- #pragma argsused int AnzahlHoelzer, Betriebsart, ErsterSpieler, Spielart, Zahl1; char Spieler1[50], Spieler2[50], Wiederholen; void Vorbereiten(); void Spiel(); void Betriebsart1(); void Betriebsart2(); int main(void) { do { Vorbereiten (); Spiel (); clrscr(); printf("Noch mal? (J/N): "); Wiederholen = getch(); } while (Wiederholen=='j'||Wiederholen=='J'); clrscr(); } void Vorbereiten() { do { clrscr(); printf("Gib die Anzahl der Hoelzer (>9) ein:"); scanf("%x",&AnzahlHoelzer); printf("%x Hoelzer",AnzahlHoelzer); getch(); if (AnzahlHoelzer<9) { printf("Mindestens 9 eintippen\n"); } } while (AnzahlHoelzer<9); clrscr(); do { printf("1 - Spieler gegen Spieler\n"); printf("2 - Spieler gegen Computer\n"); printf("Geben Sie gewuenschte Spielart (1 oder 2) ein: "); scanf("%d",&Spielart); } while (Spielart<1 || Spielart>2); if (Spielart==1) { Betriebsart1(); } else Betriebsart2(); } void Betriebsart1() { printf("Spieler1:"); scanf("%50s",Spieler1); printf("Spieler2:"); scanf("%50s",Spieler2); do { printf("\nWer soll anfangen (1 oder 2):"); scanf("%d",&ErsterSpieler); } while (ErsterSpieler<1 || ErsterSpieler>2); } void Betriebsart2() { printf("Spieler1:"); scanf("%50s",Spieler1); printf("Spieler2:Computer"); do { printf("\nWer soll anfangen (1 oder 2):"); scanf("%d",&ErsterSpieler); } while (ErsterSpieler<1 || ErsterSpieler>2); } void Spiel() { clrscr(); printf("Spiel"); getch(); if (ErsterSpieler==1) { printf("\n1.Spieler faengt an!"); do { printf("\nEs sind %d Hoelzer vorhanden",AnzahlHoelzer); printf("\n%s-Wieviele Hoelzer sollen entnommen werden?(min.1, max.3)",Spieler1); scanf("%d",&Zahl1); AnzahlHoelzer=AnzahlHoelzer-Zahl1; printf("\nEs sind %d Hoelzer vorhanden",AnzahlHoelzer); printf("\n%s-Wieviele Hoelzer sollen entnommen werden?(min.1, max.3)",Spieler2); scanf("%d",&Zahl1); AnzahlHoelzer=AnzahlHoelzer-Zahl1; } while (AnzahlHoelzer>0); if (AnzahlHoelzer==0) { getch; } }
Nicht wirklich automatisch, sondern nur so wie es schon war.
-
ist scheiße
-
eine frage bist du dumm??^^