C de yazimis memory oyunu.oldukca eglenceli - Papatyam Forum

Papatyam Forum

Go Back   Papatyam Forum > ..::.BİLGİSAYAR & TEKNOLOJİ.::. > Programlama > C++

Yeni Konu aç  Cevapla
 
Seçenekler
Alt 29 March 2008, 18:32   Mesaj No:1

tamerr89

Papatyam Paylaşımcı Üyesi
Avatar Otomotik
Durumu:tamerr89 isimli Üye şimdilik offline konumundadır
Papatyam No : 1196
Üyelik T.: 09 December 2007
Arkadaşları:0
Cinsiyet:
Yaş:34
Mesaj: 212
Konular:
Beğenildi:
Beğendi:
Takdirleri:10
Takdir Et:
Konu Bu  Üyemize Aittir!
Standart C de yazimis memory oyunu.oldukca eglenceli

C de yazimis memory oyunu.oldukca eglenceli

#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;

}

Alıntı ile Cevapla
Cevapla

Bookmarks

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

Benzer Konular
Konu Başlıkları Konuyu Başlatan

Papatyam Forum Ana Kategori Başlıkları

Cevaplar Son Mesajlar
telefon oyunu rainman Forum Oyunları 26 10 October 2010 15:27
kim gelecek oyunu gozdem Gülmece 65 15 January 2009 17:38
Sayi bulma oyunu tamerr89 visual basic.net 0 29 March 2008 18:07
Hikaye Oyunu mavera Öyküler & Hikayeler 17 17 May 2007 15:13
GÖLGE OYUNU cerenimo Öyküler & Hikayeler 0 24 May 2006 13:16

Yeni Sayfa 1

www.papatyam.org Ana Sayfa

Tefekküre Davet Köşesi

Papatyam Sosyal Medya Guruplarımıza Katılın

                       Instagram         

Papatyam alemdarhost.com sunucularında barındırılmaktadır.