Commit 2cf3760f authored by ferhat tamer's avatar ferhat tamer 💬
Browse files

tombala oyunu

parents
#include <stdio.h>
#include <time.h>
#include <string.h>
#include <stdlib.h>
#define tassayisi 90
#define oyuncusayisi 5
#define satirsayisi 3
#define sutunsayisi 5
#define kagittakisayilar 15
char isim[5][20];
int tombala[oyuncusayisi][satirsayisi][sutunsayisi];
int torba[tassayisi];
int karsilastir[15];
int kontroldizisi[kagittakisayilar];
int x,y,z,toplam,kazanan,seed,sayi,oyunbitti,sira,temp,operasyon,islem,b,rastgele,oyuncu,cik,a,istem;
kartDagit()
{
for(x=0;x<oyuncusayisi;x++){
for(y=0;y<satirsayisi;y++){
for(z=0;z<sutunsayisi;z++){
tombala[x][y][z]=-1;
}
}
}
}
void kartUret(int x){
printf("lutfen oyuncu adi giriniz : ");
scanf("%s",&isim[x]);
for(b=0;b<15;b++){
karsilastir[b]=0;
}
sira=0;
for(y=0;y<3;y++){
for(z=0;z<5;z++){
sayi=rand()%tassayisi+1;
tombala[x][y][z]=sayi;
karsilastir[sira]=sayi;
for(a=0;a<sira;a++){
if(karsilastir[sira]==karsilastir[a]){
sayi=rand()%tassayisi+1;
tombala[x][y][z]=sayi;
karsilastir[sira]=sayi;
a=-1;
}
}
sira=sira+1;
}
}
}
torbaOlustur()
{
for(x=0;x<tassayisi;x++){
torba[x]=x+1;
}
}
torbaYazdir()
{
for(x=0;x<tassayisi;x++){if(torba[x]!=0){
printf("|%d|",torba[x]);}
}
}
void sayiUret(int x)
{
cik=0;
do{
rastgele=rand()%tassayisi;
if(torba[rastgele]!=0){
printf("torbadan cekilentas : %d \n",torba[rastgele]);
for(x=0;x<oyuncusayisi;x++){
for(y=0;y<satirsayisi;y++){
for(z=0;z<sutunsayisi;z++){
if(tombala[x][y][z]==torba[rastgele])
{
tombala[x][y][z]=0;
printf("cekilen tas kartinizdan silindi",torba[rastgele]);
kartYazdir(x);
}
}
}
}
torba[rastgele]=0;
cik=cik+1;
}
}while(cik<1);
}
void kartYazdir(int x)
{
printf("\n");
printf("%d numarali oyuncu : ",x+1);
for(y=0;y<20;y++){
printf("%c",isim[x][y]);
}printf("\n");
for(y=0;y<satirsayisi;y++){
for(z=0;z<sutunsayisi;z++){
printf("|%d|",tombala[x][y][z]);
}
printf("\n");
}printf("\n");
}
void tombalaBul(int x )
{
for(y=0;y<satirsayisi;y++){
for(z=0;z<sutunsayisi;z++){
toplam=toplam+tombala[x][y][z];
}
}
if(toplam==0)
{
kazanan=x+1;
printf("\n\n oyun bitti %d numarali oyuncu kazandi : ",kazanan);
for(y=0;y<20;y++){
printf("%c",isim[x][y]);
}printf("\n");
operasyon=5;
}
toplam=0;
}
void karttaAra(int sayi){
for(y=0;y<satirsayisi;y++){
for(z=0;z<sutunsayisi;z++){
if(tombala[sayi][y][z]==rastgele)
{
tombala[sayi][y][z]=0;
}
}
}
}
nasilOynanir()
{
printf("\n\nTOMBALA NASIL OYNANIR\n");
printf("---------------------");
printf("\nSize Rastgele kart verilir.");
printf("\nTorbadan hilesiz rastgele tas cekilir. \n");
printf("\nCikan tas kartinizda var ise o sayi kartinizdan silinir .\n");
printf("\nKartinizdaki tum sayilar silindiğinde oyunu kazanmis olursunuz.\n ");
printf("\nIyi Sanslar :)) ");
}
void oyunMenu(int *op){
do{
while(1){
printf("\n OYUN MENUSU");
printf("\n ------------");
printf("\n 1 - Oyuncu ekle");
printf("\n 2 - Torbadan tas cek");
printf("\n 3 - Kartlari yazdir");
printf("\n 4 - Nasil oynanir?");
printf("\n 5 - Oynamak istemiyorum - Cikis");
printf("\n 6 - Torba yazdir");
printf("\n 7 - Yeniden Baslat");
printf("\nYapmak istediginiz islem : ");
scanf("%d", op);
if(operasyon>0 && operasyon<8)
{
break;
}
else
{printf("lütfen 1-8 arasinda bir rakam tuslayin\n");
continue;
}
}
}while( *op<1 || *op>7 );
}
main()
{
torbaOlustur();
seed=(time(NULL));
srand(seed);
do{
oyunMenu(&operasyon);
switch(operasyon){
case 1://oyuncu ekle en fazla 5
if(islem<5){
if(istem==0){
kartUret(islem);
kartYazdir(islem);
oyuncu=islem;
islem=islem+1;
}
else printf("sayi uretttiniz yeni oyuncu ekleyemezsiniz.lutfen oyunu yeniden baslatin.\n");
  • RASTGELE SAYİ ÜRETİLDİKTEN SONRA OYUNCU EKLENEMEZ ÇÜNKÜ RASTGELE ÇEKİLEN SAYİ YENİ EKLENEN OYUNCUNUN KARTINDA BULUNABİLİR. BU DURUMDA YENİ OYUNCUNUN KAZANMA İHTİMALİ OLAMAYACKTIR.

Please register or sign in to reply
}
else printf("en fazla 5 oyuncu ile oynayabilirsiniz lutfen oyuna baslayiniz");
  • OYUNA İSTENİLDİĞİ KADAR OYUNCU EKLENEBİLİR DEFİNE OYUNCUSAYİSİ EN FAZLA 5 OLARAK AYARLANMIŞTIR BU SAYI DEĞİŞTİREBİLİR.

Please register or sign in to reply
  • OYUNA İSTENİLDİĞİ KADAR OYUNCU EKLENEBİLİR DEFİNE OYUNCUSAYİSİ EN FAZLA 5 OLARAK AYARLANMIŞTIR BU SAYI DEĞİŞTİREBİLİR

Please register or sign in to reply
break;
case 2:
if(islem>0){
sayiUret(oyuncu);
for(x=oyuncu;x>=0;x--){
tombalaBul(x);
  • EKLENEN HER OYUNCU İÇİN TOMBALA KONTROLÜ SAĞLAYAN FONKSİYONU ÇAĞIRDIM.

Please register or sign in to reply
istem=istem+1;
}
}
else printf("oyuncu eklemeden rastgele sayi secemezsiniz.");
break;
case 3:if(islem>0){
for(x=oyuncu;x>=0;x--){
kartYazdir(x);
}
}
else printf("oyuncu eklemeden kart yazdiramazsin.\n");
Please register or sign in to reply
break;
case 4:
nasilOynanir();
break;
case 5:
printf("oyunkapatiliyor...");
break;
case 6:
torbaYazdir();
break;
case 7:
islem=0;
istem=0;
torbaOlustur();
break;
}
}while(operasyon!=5);
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment