Bedinung
-
Hallo
Ich hab ein Spiel erstellt mit einer Karte.Jetzt wie kann ich schauen wieviel Felder ein Spieler besetzt hat?
im C
gruss schlubl
-
Wie bitte? Kannst Du deine Frage etwas genauer Stelle?! Oder beziehst Du dich auf etwas, das ich nicht sehe? :xmas2:
-
Indem Du in der entsprechenden Datenstruktur nachguckst.
-
#include <stdio.h>
#define LEER ' '
#define CLEAR system("cls");
char Muhle[7][7] = { {' ',' ',' ',' ',' ',' ',' '},
{' ',' ',' ',' ',' ',' ',' '},
{' ',' ',' ',' ',' ',' ',' '},
{' ',' ',' ',' ',' ',' ',' '},
{' ',' ',' ',' ',' ',' ',' '},
{' ',' ',' ',' ',' ',' ',' '},
{' ',' ',' ',' ',' ',' ',' '} };char Spieler1 = '\x01';
char Spieler2 = '\x02';unsigned int felder = 24 ;
void print_spielfeld(void);void spielfeld(char *spieler1,char *spieler2) {
int i,i_wahl;printf("\n %c------------------------%c------------------------%c",Muhle[0][0],Muhle[0][3],Muhle[0][6]);
printf("\n | | |");
printf("\n | | |");
printf("\n | %c------------------%c------------------%c |",Muhle[1][1],Muhle[1][3],Muhle[1][5]);
printf("\n | | | | |");
printf("\n | | | | |");
printf("\n | | | | |");
printf("\n | | | | |");
printf("\n | | %c-----------%c-----------%c | |",Muhle[2][2],Muhle[2][3],Muhle[2][4]);
printf("\n | | | | | |");
printf("\n | | | | | |");
printf("\n | | | | | |");
printf("\n | | | | | |");
printf("\n | | | | | |",spieler1);
printf("\n %c-----%c------%c %c------%c-----%c",Muhle[3][0],Muhle[3][1],Muhle[3][2],Muhle[3][4],Muhle[3][5],Muhle[3][6]);
printf("\n | | | | | |",spieler2);
printf("\n | | | | | |");
printf("\n | | | | | |");
printf("\n | | | | | |");
printf("\n | | | | | |");
printf("\n | | %c-----------%c-----------%c | |",Muhle[4][2],Muhle[4][3],Muhle[4][4]);
printf("\n | | | | |");
printf("\n | | | | |");
printf("\n | | | | |");
printf("\n | | | | |");
printf("\n | %c------------------%c------------------%c |",Muhle[5][1],Muhle[5][3],Muhle[5][5]);
printf("\n | | |");
printf("\n | | |");
printf("\n %c------------------------%c------------------------%c",Muhle[6][0],Muhle[6][3],Muhle[6][6]);}
int muhle1(char *spieler1,char *spieler2) {
int zeil,spalt;
/* Zuerst Spieler1 'X' */
if(Muhle[0][0] == Spieler1 &&
Muhle[0][3] == Spieler1 &&
Muhle[0][6] == Spieler1 ||
Muhle[1][2] == Spieler1 &&
Muhle[1][3] == Spieler1 &&
Muhle[1][5] == Spieler1 ||
Muhle[2][2] == Spieler1 &&
Muhle[2][3] == Spieler1 &&
Muhle[2][4] == Spieler1 ||
Muhle[3][0] == Spieler1 &&
Muhle[3][1] == Spieler1 &&
Muhle[3][2] == Spieler1 ||
Muhle[3][4] == Spieler1 &&
Muhle[3][5] == Spieler1 &&
Muhle[3][6] == Spieler1 ||
Muhle[4][2] == Spieler1 &&
Muhle[4][3] == Spieler1 &&
Muhle[4][4] == Spieler1 ||
Muhle[5][1] == Spieler1 &&
Muhle[5][3] == Spieler1 &&
Muhle[5][5] == Spieler1 ||
Muhle[6][0] == Spieler1 &&
Muhle[6][3] == Spieler1 &&
Muhle[6][6] == Spieler1 ||
Muhle[0][0] == Spieler1 &&
Muhle[3][0] == Spieler1 &&
Muhle[6][0] == Spieler1 ||
Muhle[1][1] == Spieler1 &&
Muhle[3][1] == Spieler1 &&
Muhle[5][1] == Spieler1 ||
Muhle[2][3] == Spieler1 &&
Muhle[3][3] == Spieler1 &&
Muhle[4][3] == Spieler1 ||
Muhle[0][3] == Spieler1 &&
Muhle[1][3] == Spieler1 &&
Muhle[2][3] == Spieler1 ||
Muhle[4][3] == Spieler1 &&
Muhle[5][3] == Spieler1 &&
Muhle[6][3] == Spieler1 ||
Muhle[2][4] == Spieler1 &&
Muhle[3][4] == Spieler1 &&
Muhle[4][4] == Spieler1 ||
Muhle[1][5] == Spieler1 &&
Muhle[3][5] == Spieler1 &&
Muhle[5][5] == Spieler1 ||
Muhle[0][6] == Spieler1 &&
Muhle[3][6] == Spieler1 &&
Muhle[6][6] == Spieler1 ){
printf("%s hat Mühle\n",spieler1);
back:
CLEAR;
spielfeld(spieler1,spieler2);
printf("\n%s,welchen Stein von %s m\x94\x63htest du aus dem Spiel nehmen?",spieler1,spieler2);
printf("\nZeile (1 bis 7): ");
scanf("%d",&zeil);
printf("\nSpalte (1 bis 7): ");
scanf("%d",&spalt);
if(Muhle[zeil-1][spalt-1] == LEER){
printf("\n\tFalsche Angabe!");
sleep(5000);
CLEAR;
spielfeld(spieler1,spieler2);
goto back;
}
if(Muhle[zeil-1][spalt-1] == '\x01'){
printf("\n\tFalsche Angabe!");
sleep(5000);
CLEAR;
spielfeld(spieler1,spieler2);
goto back;
}
if(Muhle[zeil-1][spalt-1]=='\x02'){
Muhle[zeil-1][spalt-1] = ' ';CLEAR;
spielfeld(spieler1,spieler2);
sleep(5000);
}
}
}
/* Jetzt Spieler2 'O' */
int muhle2(char *spieler1,char *spieler2) {
int zeil,spalt;
if(Muhle[0][0] == Spieler2 &&
Muhle[0][3] == Spieler2 &&
Muhle[0][6] == Spieler2 ||
Muhle[1][2] == Spieler2 &&
Muhle[1][3] == Spieler2 &&
Muhle[1][5] == Spieler2 ||
Muhle[2][2] == Spieler2 &&
Muhle[2][3] == Spieler2 &&
Muhle[2][4] == Spieler2 ||
Muhle[3][0] == Spieler2 &&
Muhle[3][1] == Spieler2 &&
Muhle[3][2] == Spieler2 ||
Muhle[3][4] == Spieler2 &&
Muhle[3][5] == Spieler2 &&
Muhle[3][6] == Spieler2 ||
Muhle[4][2] == Spieler2 &&
Muhle[4][3] == Spieler2 &&
Muhle[4][4] == Spieler2 ||
Muhle[5][1] == Spieler2 &&
Muhle[5][3] == Spieler2 &&
Muhle[5][5] == Spieler2 ||
Muhle[6][0] == Spieler2 &&
Muhle[6][3] == Spieler2 &&
Muhle[6][6] == Spieler2 ||
Muhle[0][0] == Spieler2 &&
Muhle[3][0] == Spieler2 &&
Muhle[6][0] == Spieler2 ||
Muhle[1][1] == Spieler2 &&
Muhle[3][1] == Spieler2 &&
Muhle[5][1] == Spieler2 ||
Muhle[2][3] == Spieler2 &&
Muhle[3][3] == Spieler2 &&
Muhle[4][3] == Spieler2 ||
Muhle[0][3] == Spieler2 &&
Muhle[1][3] == Spieler2 &&
Muhle[2][3] == Spieler2 ||
Muhle[4][3] == Spieler2 &&
Muhle[5][3] == Spieler2 &&
Muhle[6][3] == Spieler2 ||
Muhle[2][4] == Spieler2 &&
Muhle[3][4] == Spieler2 &&
Muhle[4][4] == Spieler2 ||
Muhle[1][5] == Spieler2 &&
Muhle[3][5] == Spieler2 &&
Muhle[5][5] == Spieler2 ||
Muhle[0][6] == Spieler2 &&
Muhle[3][6] == Spieler2 &&
Muhle[6][6] == Spieler2 ){
printf("%s hat Mühle\n",spieler2);
back:
CLEAR;
spielfeld(spieler1,spieler2);
printf("\n%s,welchen Stein von %s m\x94\x63htest sie aus dem Spiel nehmen?",spieler2,spieler1);
printf("\nZeile (1 bis 7): ");
scanf("%d",&zeil);
printf("\nSpalte (1 bis 7): ");
scanf("%d",&spalt);
if(Muhle[zeil-1][spalt-1] == LEER){
printf("\n\tFalsche Angabe!");
sleep(5000);
CLEAR;
spielfeld(spieler1,spieler2);
goto back;
}
if(Muhle[zeil-1][spalt-1] == '\x02'){
printf("\n\tFalsche Angabe!");
sleep(5000);
CLEAR;
spielfeld(spieler1,spieler2);
goto back;
}
if(Muhle[zeil-1][spalt-1]=='\x01'){
Muhle[zeil-1][spalt-1] = ' ';CLEAR;
spielfeld(spieler1,spieler2);
sleep(5000);
}}
}
char spielstein(char *spieler1,char *spieler2){
int x;
unsigned int zeile,spalte;
for(x=1; x<=3; x=x+1){
zurck:printf("\n%s,wo m\x94\x63hten du den %i.Spielstein setzen?",spieler1,x);
printf("\nZeile (1 bis 7): ");
scanf("%d",&zeile);
printf("\nSpalte (1 bis 7): ");
scanf("%d",&spalte);if(Muhle[zeile-1][spalte-1] == LEER && zeile <= 7 && spalte <=7){
Muhle[zeile-1][spalte-1] = '\x01';
CLEAR;
spielfeld(spieler1,spieler2);}
else {
printf("\n!!! Feld ist bereits besetzt !!!\n");
sleep(5000);
CLEAR;
spielfeld(spieler1,spieler2);
goto zurck;}
zuruck:
printf("\n%s,wo m\x94\x63htest du den %i.Spielstein setzen?",spieler2,x);printf("\nZeile (1 bis 7): ");
scanf("%d",&zeile);
printf("\nSpalte (1 bis 7): ");
scanf("%d",&spalte);
if(Muhle[zeile-1][spalte-1] == LEER && zeile <= 7 && spalte <=7){
Muhle[zeile-1][spalte-1] = '\x02';
CLEAR;
spielfeld(spieler1,spieler2);}
else {printf("\n!!! Feld ist bereits besetzt !!!\n");
sleep(5000);
CLEAR;
spielfeld(spieler1,spieler2);
goto zuruck;
}
}
}
int spielzug(char *spieler1,char *spieler2){
int zeile,spalte,zeil,spalt;
blub:
zuck:
CLEAR;
spielfeld(spieler1,spieler2);
printf("\n%s,welchen Stein m\x94\x63htest du verschieben?",spieler1);
printf("\nZeile (1 bis 7): ");
scanf("%d",&zeile);
printf("\nSpalte (1 bis 7): ");
scanf("%d",&spalte);
if(Muhle[zeile-1][spalte-1] == '\x01'){
Muhle[zeile-1][spalte-1] = ' ';}
else{
printf("\n\tFalsche Angabe!");
sleep(5000);
goto zuck;
}back:
CLEAR;
spielfeld(spieler1,spieler2);
printf("\nWohin m\x94\x63htest du den Stein verschieben?");
printf("\nZeile (1 bis 7): ");
scanf("%d",&zeil);
printf("\nSpalte (1 bis 7): ");
scanf("%d",&spalt);
if(Muhle[zeil-1][spalt-1] == ' ' &&
zeil != zeile ||
Muhle[zeil-1][spalt-1] == ' ' &&
spalt != spalte ){
Muhle[zeil-1][spalt-1] = '\x01';
muhle1(spieler1,spieler2);
}
else{
printf("\n\tFalsche Angabe!");
sleep(5000);
goto back;
}zucke:
CLEAR
spielfeld(spieler1,spieler2);
printf("\n%s,welchen Stein m\x94\x63htest du verschieben?",spieler2);
printf("\nZeile (1 bis 7): ");
scanf("%d",&zeile);
printf("\nSpalte (1 bis 7): ");
scanf("%d",&spalte);
if(Muhle[zeile-1][spalte-1] == '\x02'){
Muhle[zeile-1][spalte-1] = ' ';
}
else{
printf("\n\tFalsche Angabe!");
sleep(5000);
goto zucke;
}
backk:
CLEAR;
spielfeld(spieler1,spieler2);
printf("\n\nWohin m\x94\x63htest du den Stein verschieben?");
printf("\nZeile (1 bis 7): ");
scanf("%d",&zeil);
printf("\nSpalte (1 bis 7): ");
scanf("%d",&spalt);
if(Muhle[zeil-1][spalt-1] == ' ' &&
zeil != zeile ||
Muhle[zeil-1][spalt-1] == ' ' &&
spalt != spalte ){
Muhle[zeil-1][spalt-1] = '\x02';
muhle2(spieler1,spieler2);
}
else{
printf("\n\tFalsche Angabe!");
sleep(5000);
goto backk;}
if(
goto blub;
}
int main(void)
{
char spieler1[21],spieler2[21];
char spielen;CLEAR;
start:
printf("M\x94\x63htet Ihr M\x81\x68le spielen?");
scanf("%s",&spielen);
CLEAR;
if(spielen == 'j')
{
printf("Der Name des 1. Spieler lautet:");
scanf("%s",&spieler1);
printf("Der Name des 2. Spieler lautet:");
scanf("%s",&spieler2);CLEAR;
spielfeld(spieler1,spieler2);
sleep(5000);
spielstein(spieler1,spieler2);
sleep(5000);
spielzug(spieler1,spieler2);}
if(spielen == 'n')
{
printf("\nWarum haben Sie das Programm \x81\x62\x65rhaupt gestartet?");
sleep(30000);
}else{
printf("Sie m\x81\x73sen j oder n antworten!");sleep(5000);
CLEAR;
goto start;}
}
-
Thema geschlossen.
Primärer Grund: Willkür
Sekundärer Grund: Schwachsinn