Webmaster Forumu - Webmaster Zone

Geri git   Webmaster Forumu - Webmaster Zone > Webmaster Zone > Programlama Dilleri
Şifrenizimi Unuttunuz? Bize Katılın!

Cevapla
Görüntüleme: 809 - Cevaplar: 0  
LinkBack Seçenekler Stil
  #1 (permalink)  
Alt 24-02-2007, 09:25:08
Alone - ait Kullanıcı Resmi (Avatar)
Alone Alone isimli üyemiz çevrimdışıdır. (Offline)
Zonekolik
No Status
 
Üyelik tarihi: 31/1/2007
Nerden: İstanbul
Mesajlar: 1.306
iTrader: (11)
Tecrübe Puanı: 75
Puanları: 953
Alone is just really niceAlone is just really niceAlone is just really niceAlone is just really niceAlone is just really nice
Standart C++ Memory Oyunu

Kod:
#include <stdio.h>

#include <stdlib.h>

#include <time.h>



#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("\n\n\n\n\n\n\n\n\n\n");

  }





  printf("     0   1   2   3   4\n");

  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 eingegeben\n");

    return FALSE;

  }

  if ((col < 0) || (col > 4)) {

    

    printf("Spalte ist falsch eingegeben\n");

    return FALSE;

  }

  if (field[row * 5 + col] == REMOVED) {

  

    printf("Card is already removed\n");

    return FALSE;

  }

  for (i = 0; i < turned; ++i) {

    if ((row == turnedIndex[2*i]) && (col == turnedIndex[2*i+1])) {

      

      printf("Card is already turned\n");

      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;

}
__________________
Kişiselite - Gitarist
Alıntı ile Cevapla
Cevapla



Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 
Seçenekler
Stil

Yetkileriniz
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-KodlarıKapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık

Benzer Konular
Konu Konuyu Başlatan Forum Cevaplar Son Mesaj
Server Load 124.60 Memory Used 90.5 % Yardım Edin mbrain WHM / Cpanel 3 01-12-2007 22:24:25
php adam asmaca oyunu lcn Script / Veritabanı ( Database ) 1 28-05-2007 21:01:55
C# ta Sayı Oyunu Ekstra Asp & Asp.net 0 24-02-2007 03:11:26
Ttnet in Oyunu !!! randycate Güncel 14 22-01-2007 04:17:31


oyun , kontör , türkçe dizin

Bütün Zaman Ayarları WEZ olarak düzenlenmiştir. Şu Anki Saat: 04:04:44 .


Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO 3.1.0
Zone Org | 2006-2008

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122