Oyun
 
Kod:

#include #include #include #define FALSE 0 #define TRUE 1 #define REMOVED 10 void swap(char *a, char *b) { char t = *a; *a = *b; *b = t; } void init(char field[], int *pairsLeft, int *player) { int i, random; srand((unsigned int) time(NULL)); for (i = 0; i < 10; ++i) { field[2*i] = field[2*i+1] = i; } for (i = 0; i < 20; ++i) { random = (int) ((20.0 - i) * (rand() / (RAND_MAX + 1.0))); swap(field + i, field + i + random); } *pairsLeft = 10; *player = 0; } void displayField(char field[], int turned, int turnedIndex[]) { int turnThis = FALSE; int i, j, k; for (i = 0; i < 6; ++i) { printf("nnnnnnnnnn"); } printf(" 0 1 2 3 4n"); printf(" +---+---+---+---+---+n"); for (i = 0; i < 4; ++i) { printf(" %d |", i); for (j = 0; j < 5; ++j) { if (*field != REMOVED) { turnThis = FALSE; for (k = 0; k < turned; ++k) { if ((i == turnedIndex[2*k]) && (j == turnedIndex[2*k+1])) { turnThis = TRUE; break; } } if (turnThis == TRUE) { printf(" %d |", *field); } else { printf(" # |"); } } else { } ++field; } printf("n"); printf(" +---+---+---+---+---+n"); } printf("n"); } int isMoveOk(int row, int col, int read, char field[], int turned, int turnedIndex[]) { int i; if (read != 2) { scanf("%*s"); printf("Bitte Geben Sie zwei Zahlen wie "1,2"n"); return FALSE; } if ((row < 0) || (row > 3)) { printf("Zeile ist falsch eingegebenn"); return FALSE; } if ((col < 0) || (col > 4)) { printf("Spalte ist falsch eingegebenn"); return FALSE; } if (field[row * 5 + col] == REMOVED) { printf("Card is already removedn"); return FALSE; } for (i = 0; i < turned; ++i) { if ((row == turnedIndex[2*i]) && (col == turnedIndex[2*i+1])) { printf("Card is already turnedn"); return FALSE; } } return TRUE; } int isPair(char field[], int *turned, int *pairsLeft) { if (field[turned[0]*5 + turned[1]] == field[turned[2]*5 + turned[3]]) { field[turned[0]*5 + turned[1]] = field[turned[2]*5 + turned[3]] = REMOVED; (*pairsLeft)--; return TRUE; } else { return FALSE; } } int main(void) { int pairsLeft; int player; int read; int turned[4]; int playerPairs[2] = {0, 0}; char field[20]; init(field, &pairsLeft, &player); while (pairsLeft != 0) { displayField(field, 0, NULL); printf("Spieler "); if (player == 0) { printf("1 (%d:%d)n", playerPairs[0], playerPairs[1]); } else { printf("2 (%d:%d)n", playerPairs[1], playerPairs[0]); } do { printf("1.Karte (Zeile,Spalte): "); read = scanf("%d , %d", turned, turned + 1); getchar(); } while (!isMoveOk(turned[0], turned[1], read, field, 0, NULL)); displayField(field, 1, turned); printf("Spieler "); if (player == 0) { printf("1 (%d:%d)n", playerPairs[0], playerPairs[1]); } else { printf("2 (%d:%d)n", playerPairs[1], playerPairs[0]); } do { printf("2.Karte (Zeile,Spalte): "); read = scanf("%d , %d", turned + 2, turned + 3); getchar(); } while (!isMoveOk(turned[2], turned[3], read, field, 1, turned)); displayField(field, 2, turned); if (isPair(field, turned, &pairsLeft)) { printf("GEWONNEN!n"); getchar(); playerPairs[player]++; } else { printf("nicht gewonnen =(n"); getchar(); if (player == 0) { player = 1; } else { player = 0; } } } if (playerPairs[0] > playerPairs[1]) { printf("Spieler 1 hat gewonnen %d : %d.n" "Congratulations!!!n", playerPairs[0], playerPairs[1]); } else if (playerPairs[1] > playerPairs[0]) { printf("Spieler 2 hat gewonnen %d : %d.n" "Well done!!!n", playerPairs[1], playerPairs[0]); } else { printf("Unendschieden.n"); } return 0; }




Bu sayfa hakkında yorum ekle:
İsminiz:
E-mail adresiniz:
Siteniz:
Mesajın:

 
  Bugün 1 ziyaretçi (6 klik) kişi burdaydı! Copyright©ozcanoguz.tr.gg 2008 Google Pagerank Checker
 
 
=> Sen de ücretsiz bir internet sitesi kurmak ister misin? O zaman burayı tıkla! <=
Bluetooth.jar
http://widget.bigoo.ws/generators/For-Dummies/index.asp tr.gg siteleri arşivi üyesir.