26 Nisan 2014 Cumartesi

c++ ile konsol adam asmaca oyunu

Merhaba arkadaşlar bu yazımızda sizlerle c++ da herhangi bir özel veri tipi kullanmadan adam asmaca oyunu yapacağız.
veri tipinden kastımız vector,liste vb. özel veri tipleridir.
Tabi veri tipi kullanılarak daha basitçe yapılabilir ama okuduğum bölümde verdikleri ödev bu tarz olduğu için sizlerle bende blogumda paylaşmak istedim.
evet kodlarımıza geçebiliriz artık

 /******  
 *  @outhor: Vehbi Akdoğan  
 *     @contact: mf.leqelyy@gmail.com  
 ******/  
 #include <iostream>  
 #include <iomanip>  
 #include <ctime>  
 #include <cstdlib>  
 #include <string>  
 using namespace std;  
 void kafaCiz();  
 void kolCiz();  
 void govdeCiz();  
 void ayakCiz();  
 void adamiGoster(int);  
 int kelimeGoster(string, char[], int);  
 int main(){  
      setlocale(LC_ALL, "turkish");  
      srand(time(0));  
      string secilenKelime; // seçilen kelimemiz   
      char girilenHarfler[5]; // girilen harfleri tutan dizimiz   
      int yanlisSayisi, // yanlış sayımız adamın gösterilmesi açısından   
           girilenSayisi, // girilen harflerin sayısı   
           islem = 1; // program başlangıcı   
      bool girilmisMi; // tam tahmin yapılmışmı kontrolü ?   
      string kelimeler[10] = {  
           "Ataturk", "Universitesi", "Bilgisayar", "Muhendisligi", "Bolumu", "Erzurum", "Nesne", "Yonelimli", "Programlama", "Dersi"  
      };  
      while (islem){  
           yanlisSayisi = 0;  
           girilenSayisi = 0;  
           girilmisMi = 0;  
           /* Sistem Yapılandırma yapıldı */  
           secilenKelime = kelimeler[rand() % 9]; // kelimemizi seçtik  
           cout << "//--------------------- Adam Asmaca(" << secilenKelime << ") --------------------- // \nHoşgeldiniz...! \nOyunun Herhangi Bir aşamasında tahminde bulunmak için 1 e basınız. \n";  
           for (int i = 1; i <= 5; i++){ // toplam 5 bilme hakkı verdik  
                cout << "Harf Tahmin/isteği Giriniz: ";  
                cin >> girilenHarfler[girilenSayisi];  
                girilenSayisi++; // girilen harf sayısını artırdık   
                if (girilenHarfler[girilenSayisi - 1] == '1' || (i == 5 && girilmisMi == 0)){ // kelime tahmin etmek istiyorum ( Yada zorunlu tahmin)  
                     string tahminKelime;  
                     cout << "Tahmin Ettiğiniz Kelime?: ";  
                     cin >> tahminKelime;  
                     if (tahminKelime == secilenKelime){  
                          cout << "Tebrikler Kelimeyi bildinizz :) \nYeniden oynamak için 2 ye basınız.\n ";  
                          adamiGoster(yanlisSayisi);  
                          cin >> islem;  
                          break;  
                     }  
                     else{  
                          if (i == 5){ // son tahmindeysek bitişe gidiyoruz   
                               cout << "Üzgünüm Bilemediniz :( \nYeniden oynamak için 2 ye basınız.\n ";  
                               adamiGoster(yanlisSayisi);  
                               cin >> islem;  
                               break;  
                          }  
                          else{  
                               cout << "Üzgünüm Bilemediniz :( \n";  
                               adamiGoster(yanlisSayisi);  
                          }  
                     }  
                     girilmisMi = 1;  
                }  
                else{ // harf varmı diye bak   
                     int cevap = kelimeGoster(secilenKelime, girilenHarfler, girilenSayisi);  
                     if (cevap == 0) yanlisSayisi++; // harf yanlışsa yanlış sayımız artsın  
                     adamiGoster(yanlisSayisi);  
                     if (cevap == 2){  
                          cout << "Tebrikler Kelimeyi bildinizz :) \n";  
                          break;  
                     }  
                }  
                if (i == 5){  
                     cout << "Üzgünüm Bilemediniz :( \nYeniden oynamak için 2 ye basınız.\n ";  
                     adamiGoster(yanlisSayisi);  
                     cin >> islem;  
                }  
           }  
           if (islem != 2 || islem != 1){  
                cout << "Girmiş olduğunuz işlem numarası oyunumuzda bulunmadığından dolayı sizi kovuyorum :D :D \n";  
                break;  
           }  
      }  
      return 0;  
 }  
 int kelimeGoster(string secilenKelime, char girilenHarfler[13], int girilenSayisi){  
      int yolla = 0, bilinenHarfSayisi = 0;  
      cout << "Kelime: ";  
      for (int i = 0; i < secilenKelime.length(); i++){  
           int esSayaci = 0; // eşleşen harfleri say  
           for (int j = 0; j < girilenSayisi; j++){  
                if (secilenKelime[i] == girilenHarfler[j]) {  
                     if (j == girilenSayisi - 1)     yolla = 1; // son girilen harf kelimemizde varsa geriye bir döndür main:65. satıra bak  
                     esSayaci++; // eşleşme yoksa sfır olur aşağıda çizgi çizilir satır:99  
                     bilinenHarfSayisi++;  
                     cout << girilenHarfler[j];  
                     break; // içteki döngüyü bitir   
                }  
           }  
           if (esSayaci == 0)          cout << " _ "; // bilinmeyen harfler yerine çizgi çiz.  
      }  
      cout << "\nGirilen Harfler: ";  
      for (int i = 0; i < girilenSayisi; i++)  
           cout << girilenHarfler[i] << ",";  
      if (bilinenHarfSayisi == secilenKelime.length()) yolla == 2; // kelime harf harf bilindi :) imkansız ama olurmu olur :D   
      cout << "\n//--------------------------------------------------------------- // \n";  
      return yolla;  
 }  
 /* adam çizme fonksiyonları */  
 void kafaCiz(){  
      cout << "|" << setw(14) << "( )" << endl;  
 }  
 void govdeCiz(){  
      cout << "|" << right << setw(13) << "|" << endl << "|" << right << setw(13) << "|" << endl << "|" << right << setw(13) << "|" << endl;  
 }  
 void kolCiz(){  
      cout << "|" << right << setw(14) << "/|\\" << endl << "|" << right << setw(15) << "/ | \\" << endl << "|" << right << setw(13) << "|" << endl;  
 }  
 void ayakCiz(){  
      cout << "|" << right << setw(14) << "/ \\" << endl;  
 }  
 void adamiGoster(int yanlisSayisi) {  
      cout << "Adamın Son Durumu : \n__________________\n";  
      if (yanlisSayisi == 0)          cout << "|" << endl;  
      else if (yanlisSayisi == 1)          kafaCiz();  
      else if (yanlisSayisi == 2){  
           kafaCiz();  
           govdeCiz();  
      }  
      else if (yanlisSayisi == 3){  
           kafaCiz();  
           kolCiz();  
      }  
      else if (yanlisSayisi == 4){  
           kafaCiz();  
           kolCiz();  
           ayakCiz();  
      }  
      else     cout << endl;  
      cout << endl;  
 }  

Kodlarımız bu kadar arkadaşlar anlamayanlar takıldıkları yerleri sorabilirler.
programımızın çalışan .exe uzantılı dosyasını Buradan
Çalışma dosyalarını ise Buradan İndirebilirsiniz.

Yayınlayan: Unknown

c++ ile konsol adam asmaca oyunu

vehbi akdogan - kişisel blog sitesi
Share:

Yorum Yaz ..

Facebook
Blogger

Hiç yorum yok:

Yorum Gönder

Sosyal Aglarda Ben :)
facebook
twitter
google
youtube
rss

About Us

İstatistik

Iletisim

Ad

E-posta *

Mesaj *

© 2025 Vehbi Akdogan - Kişisel Blog Sitesi | Tüm Hakları Saklıdır.