forx:=0;x<oyuncusayisi;x++{//oyuncu sayısı kadar dönen döngü.
funckartUret(xint)int{
forb:=0;b<15;b++{//karşılaştırma yaptığımız dizinin içini sıfırlıyoruz
fmt.Print("lutfen oyuncu adi giriniz : ");
karsilastir[b]=0;
fmt.Scan(&isim[x])
}
forb=0;b<15;b++{
sira:=0//her oyuncu için karşılaştır dizisi doldurulacak bu yüzden her döngü başladığında sıfırlanması gerekecek.
karsilastir[b]=0;
fory:=0;y<satirsayisi;y++{//satir sayisi kadar dönen döngü.
}
forz:=0;z<sutunsayisi;z++{//sutunsayisi kadar dönen döngü.
sira=0;
sayi=(r1.Intn(15)+1)
fory=0;y<3;y++{
tombala[x][y][z]=sayi
forz=0;z<5;z++{
karsilastir[sira]=sayi
sayi=(r1.Intn(tassayisi)+1)
fora:=0;a<sira;a++{
tombala[x][y][z]=sayi
ifkarsilastir[sira]==karsilastir[a]{
karsilastir[sira]=sayi
sayi=(r1.Intn(15)+1)
fora=0;a<sira;a++{
karsilastir[sira]=sayi
if(karsilastir[sira]==karsilastir[a]){
tombala[x][y][z]=sayi
sayi=(r1.Intn(tassayisi)+1)
a=-1;
tombala[x][y][z]=sayi;
}
karsilastir[sira]=sayi;
a=-1;
}
}
sira=sira+1
//tombala[x][y][z]=(r1.Intn(15)+1)//1 ile 100 arasında random sayı üretip bu sayıyı matrisimizin içine dolduruyoruz.
//fmt.Print("satır degeri :",y)
//fmt.Print("sutun degeri :",z)
//fmt.Print(" |",tombala[x][y][z]," |") //x,y,z değerlerine karşılık gelen matris içerisindeki değeri ekrana yazdırır.
}
}
sira=sira+1;
//fmt.Println("\n")//oyuncu sırasını ekrana bastıktan sonra alt satıra geçiyoruz.
}
}
//fmt.Println("\n")//satırları ekrana bastıktan sonra alt satıra geçiyoruz.
}
}
//kart yazdir
return0
fori:=0;i<oyuncusayisi;i++{
}
fmt.Println(i+1,"numarali oyuncu")//fmt.Println(x+1,"numarali oyuncu")//döngüden gelen oyuncu sayisina 1 ekliyoruz ekrana basıyoruz. sayma sayıları 1'den başladığı için 0. oyuncu olamaz.
functorbaOlustur(){
forx=0;x<tassayisi;x++{
forj:=0;j<satirsayisi;j++{
torba[x]=x+1;
fork:=0;k<sutunsayisi;k++{
}
fmt.Print("| ",tombala[i][j][k]," |")
}
functorbaYazdir(){
forx=0;x<tassayisi;x++{
if(torba[x]!=0){
fmt.Print("|%d|",torba[x]);
}
}
}
funckartYazdir(xint)int{
kalantas:=0
fmt.Print("\n");
fmt.Print("%d numarali oyuncu : ",x+1);
fory=0;y<20;y++{
fmt.Print("%c",isim[x][y]);
}
fmt.Print("\n");
fory=0;y<satirsayisi;y++{
forz=0;z<sutunsayisi;z++{
fmt.Print(tombala[x][y][z]);
if(tombala[x][y][z]!=0){
kalantas=kalantas+1;
}
}
fmt.Print("\n");
}
if(uretim!=0){
fmt.Print("tombala yapmasina %d tas kaldi",kalantas);
fmt.Print("\n");
}
returnx
}
funcsayiUret(xint)int{
cik=0;
loop:=true
forloop{
rastgele=(r1.Intn(tassayisi)+1)
if(torba[rastgele]!=0){
fmt.Print("torbadan cekilen tas : %d \n",torba[rastgele]);
forx=0;x<oyuncusayisi;x++{
fory=0;y<satirsayisi;y++{
forz=0;z<sutunsayisi;z++{
if(tombala[x][y][z]==torba[rastgele]){
tombala[x][y][z]=0
fmt.Print("cekilen tas kartinizdan silindi",torba[rastgele]);
kartYazdir(x);
}
}
}
}
fmt.Println("\n")
}
torba[rastgele]=0
cik=cik+1;
}
}
if(cik>=1){
loop=false;
}
returnx
}
functombalaBul(xint)int{
person:=x+1;
fmt.Print("%d numarali oyuncu icin tombala araniyor",person);
fory=0;y<satirsayisi;y++{
forz=0;z<sutunsayisi;z++{
toplam=toplam+tombala[x][y][z]
}
}
fmt.Println("\n")
}
}
//torba olustur
if(toplam==0){
forx:=0;x<tassayisi;x++{
kazanan=x+1
torba[x]=x+1;
fmt.Print("\n\n oyun bitti %d numarali oyuncu kazandi : ",kazanan);
fory=0;y<20;y++{
fmt.Print("%c",isim[x][y]);
}
fmt.Print("\n");
operasyon=5;
}
}
//torba yazdir
fmt.Print("%d numarali oyuncuda tombala yok .\n",person);
forx:=0;x<tassayisi;x++{
toplam=0;
fmt.Println(torba[x]);
returnx
}
funcnasilOynanir(){
fmt.Print("\n\nTOMBALA NASIL OYNANIR\n");
fmt.Print("---------------------");
fmt.Print("\nSize Rastgele kart verilir.");
fmt.Print("\nTorbadan hilesiz rastgele tas cekilir. \n");
fmt.Print("\nCikan tas kartinizda var ise o sayi kartinizdan silinir .\n");
fmt.Print("\nKartinizdaki tum sayilar silindiğinde oyunu kazanmis olursunuz.\n ");
fmt.Print("\nIyi Sanslar :)) ");
}
funcmain(){
torbaOlustur();
loop1:=true
forloop1{
fmt.Print("\n Oyun Menusu");
fmt.Print("\n ----------------");
fmt.Print("\n 1 - Oyuncu ekle");
fmt.Print("\n 2 - Torbadan tas cek");
fmt.Print("\n 3 - Kartlari yazdir");
fmt.Print("\n 4 - Nasil oynanir?");
fmt.Print("\n 5 - Oynamak istemiyorum - Cikis");
fmt.Print("\n 6 - Torba yazdir");
fmt.Print("\n 7 - Yeniden Baslat");
fmt.Print("\n 8 - Ekrani Temizle");
fmt.Print("\nYapmak istediginiz islem ");
for{
fmt.Scan(&girdi)
operasyon=girdi
if((operasyon<1)||(operasyon>8)){
fmt.Println("1-8 arasinda bir sayi girin : ")
continue;
}
}
if((operasyon<1)||(operasyon>8)){
switch(operasyon){
case1://oyuncu ekle en fazla 5 adet
if(islem<5){
if(istem==0){
kartUret(islem);
kartYazdir(islem);
oyuncu=islem;
islem=islem+1;
}else{
fmt.Print("sayi urettiniz oyuncu ekleyemezsiniz. oyuncu eklemek icin oyunu yeniden baslatin \n");
}
}else{
fmt.Print("en fazla 5 oyuncu ile oynayabilirsiniz lutfen oyuna baslayin \n");
}
break;
case2:
if(islem>0){
uretim=uretim+1;
fmt.Print("torba karistiliyor. ");
sayiUret(oyuncu);
forx:=oyuncu;x>=0;x--{
tombalaBul(x);
istem=istem+1;
}
fmt.Print(" oyunun %d eli geride kaldi",uretim);
}else{
fmt.Println("oyuncu eklemeden torbadan tas cekemezsin");
}
}
break;
case3:
forx=oyuncu;x>=0;x--{
kartYazdir(x);
}
break;
case4:
nasilOynanir();
break;
case5:
fmt.Print("Oyun kapatiliyor");
break;
case6:
torbaYazdir();
break;
case7:
islem=0;
istem=0;
torbaOlustur();
fmt.Println("oyun yeniden baslatiliyor.");
break;
case8:
break;
default:
fmt.Print("lutfen 1-7 arasinda bir sayi giriniz \n");