C# Proje ödevime yardım !!

Konu, 'Elektronik Mühendisliği' kısmında Mustafa Yaşar Keçeci tarafından paylaşıldı.

  1. Mustafa Yaşar Keçeci

    Mustafa Yaşar Keçeci MB Üyesi

    Kayıt:
    5 Mayıs 2016
    Mesajlar:
    14
    Beğeniler:
    3
    Meslek:
    Elektrik Elektronik Mühendisliği
    En İyi Cevap:
    2
    Değerlendiriler:
    +6 / 0 / -0
    Üniversite:
    Adıyaman Üniversitesi
    Böyle bi proğramım var proje ödevim. Eksik kısımları doldurmamda yardımcı olurmusunuz.
    C# Dili ve ben fazla anlamıyorum tek algoritma dersim var alttan, kendi dönem derslerimde ağır biraz yardımcı olursanız sevinirim..


    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    #include <conio.h>
    #define SATIR 10
    #define SUTUN 10

    int kutular[SATIR][SUTUN] = { 0 }; // Tarlanın kutularının asıl içerikleri burada saklanıyor -1 mayınlı kutu
    int acilan_kutular[SATIR][SUTUN] = { 0 }; // kullanıcının açtığı kutuların hangileri olduğu burada saklanıyor 0 açılmamaış 1 açılmış
    int secilen_satir=0, secilen_sutun=0; // kullanıcı tarlada gezdikçe aktif olan kutu koordinatları (+ nın gösterileceği koordinatlar)
    //tarla çiziminde tablonun üst çizgisini oluşturan fonksiyon
    void duz_ust_cizgi(){

    printf("%c", 201);
    int i;
    for (i = 0; i < SUTUN-1; i++)
    {
    printf("%c%c%c%c",205, 205, 205, 203);
    }
    printf("%c%c%c%c", 205, 205, 205, 187);
    printf("\n");
    }
    //tarla çiziminde tablonun alt çizgisini oluşturan fonksiyon
    void duz_alt_cizgi(){

    printf("%c", 200);
    int i;
    for (i = 0; i < SUTUN - 1; i++)
    {
    printf("%c%c%c%c",205, 205, 205, 202);
    }
    printf("%c%c%c%c",205, 205, 205, 188);
    printf("\n");

    }
    //tarla çiziminde tabloda bir orta çizgi oluşturan fonksiyon
    void duz_orta_cizgi(){

    printf("%c", 204);
    int i;
    for (i = 0; i < SUTUN - 1; i++)
    {
    printf("%c%c%c%c",205, 205, 205, 206);
    }
    printf("%c%c%c%c",205, 205, 205, 185);
    printf("\n");

    }
    // secilen kutunun gecerli olup olmadığını kontrol eden fonksiyon
    // acilan_kutular[secilen_satir][secilen_sutun] == 1 ifadesi doğru ise demekki bu kutu daha önce açılmış
    // dolaysıyla atlanıp sonraki kutunun seçilmesi gereklidir
    int secilen_kontrol()
    {
    if (acilan_kutular[secilen_satir][secilen_sutun] == 1)
    {
    return -1;
    }
    else
    return 1;
    }
    //tarla çizme fonksiyonu her seçimden sonra çağrılıp tarlanın en son halini ekrana çiziyor
    void tarla_ciz(){
    int i, j;
    system("cls");
    duz_ust_cizgi(); //üst çizgiyi koy

    for (i = 0; i < SATIR; i++)
    {
    for (j = 0; j < SUTUN; j++) // içerideki bu dongü satırları çiziyor
    {
    if (i==secilen_satir && j==secilen_sutun) // eğer seçilen kutucuk çiziliyorsa oraya + koy
    printf("%c + ", 186);
    else
    if (acilan_kutular[j] == 1) // eğer kutu açılmışsa o kutunun değerini göster
    {
    if (kutular[j]==-1) // eğer mayınlı kutu açılmışsa kutuya siyah yüz ifadesi koy (2 sayısı yüz ifadesinin ascii kodudur)
    printf("%c %c ", 186,2);
    else
    printf("%c %d ", 186, kutular[j]);// eğer mayınlı kutu değilse kutunun değerini göster
    }
    else
    {
    printf("%c ", 186);
    }

    }
    printf("%c\n", 186);
    if (i < SATIR - 1) //orta çizgiyi koy ve alt satıra geç
    {

    duz_orta_cizgi();
    }
    }

    duz_alt_cizgi(); // en alt çizgiyi koy

    }
    //kullanıcı u harfine basınca çağırılan fonksiyon
    //Burada aktif kutunun üstündeki ilk boş kutunun satir numarasini secilen_satir'a atayarak seçimi yukarı taşımalısınız
    void satir_yukari()
    {


    }
    //kullanıcı d harfine basınca çağırılan fonksiyon
    //Burada aktif kutunun altındaki ilk boş kutunun satir numarasini secilen_satir'a atayarak seçimi aşağı taşımalısınız
    void satir_asagi()
    {

    }
    //kullanıcı r harfine basınca çağırılan fonksiyon
    //Burada aktif kutunun sağındaki ilk boş kutunun sütun numarasini secilen_sutun'a atayarak seçimi sağa taşımalısınız
    void sutun_yukari()
    {


    }
    //kullanıcı l harfine basınca çağırılan fonksiyon
    //Burada aktif kutunun solundaki ilk boş kutunun sütun numarasini secilen_sutun'a atayarak seçimi sola taşımalısınız
    void sutun_asagi()
    {

    }
    //kullanıcı s harfine basınca çağırılan fonksiyon
    //Burada seçim sıralı gidecek
    void sirali_git()
    {
    int i,j;
    for (i = secilen_satir; i <SATIR ; i++)
    {

    for ( j = secilen_sutun+1; j < SUTUN; j++)
    {
    if (acilan_kutular[j] == 0)
    {
    secilen_satir = i;
    secilen_sutun = j;
    return;
    }
    }
    secilen_sutun = -1;

    }
    for (i = 0; i <SATIR; i++)
    {
    for (j = 0; j < SUTUN; j++)
    {
    if (acilan_kutular[j] == 0)
    {
    secilen_satir = i;
    secilen_sutun = j;
    return;
    }
    }

    }

    }
    //seçimi değiştirmek için kullanıyor
    void secileni_degistir()
    {
    int temp;
    temp = secilen_satir;
    satir_yukari();
    if (temp != secilen_satir)
    {
    return;
    }
    temp = secilen_satir;
    satir_asagi();
    if (temp != secilen_satir)
    {
    return;
    }
    temp = secilen_sutun;
    sutun_yukari();
    if (temp != secilen_sutun)
    {
    return;
    }
    temp = secilen_sutun;
    sutun_asagi();
    if (temp != secilen_sutun)
    {
    return;
    }

    }
    //bu fonksiyonda acilan_kutular'ın hepsini kontrol edip açılmamış olan kutuların hepsi mayınlı ise geriye 1 değilse -1 döndürecek
    int kazandi_mi()
    {

    return -1;
    }
    //her hamleden sonra çaılşacak fonksiyon
    int hamle()
    {
    //kazanma kayıp etc
    acilan_kutular[secilen_satir][secilen_sutun] = 1;

    if (kutular[secilen_satir][secilen_sutun] == -1)
    {
    secileni_degistir();
    tarla_ciz();
    return -1; //kaybettiniz
    }
    if (kazandi_mi() == 1)
    {
    secileni_degistir();
    tarla_ciz();
    return 1; //kazandınız
    }
    secileni_degistir();
    tarla_ciz();
    return 0; //oyun devam ediyor
    }
    // bu fonksiyon kutular'ın sa. satırı ve su. sütununa -1 koyacak ve çevresindeki kutuları ise bir artıracak.
    // bu fonksiyon rastgele mayın yerleştirmek için kullanılıyor
    void ekle(int sa, int su)
    {

    }
    //tarlaya oyun başlarken mayın yerleştirmek için kullanılıyor.
    void mayin_sec(int z){
    int i,sa,su;
    srand(time(NULL));
    if (z == 1)
    {
    //10 tane mayın seç
    for (i = 0; i < 10; i++)
    {
    sa = rand() % SATIR;
    su = rand() % SUTUN;
    ekle(sa, su);
    }
    }
    else
    {
    //40 tane mayın seç
    for (i = 0; i < 40; i++)
    {
    sa = rand() % SATIR;
    su = rand() % SUTUN;
    ekle(sa, su);
    }
    }
    }

    int main()
    {

    int devam = 1;
    int h;


    // Burada kullanıcıya kolay yada zor diye iki seçenek sunup
    //kullanıcının seçimine göre oyunu kolay yada zor yapın
    // kullanıcı 1 girerse kolay iki girerse zorolacak
    //bu hali ile mayin_sec(1); kolay seçilmiş durumda





    mayin_sec(1); //Kolay oyun seçilmiş
    tarla_ciz();
    while (devam==1)
    {
    char c = _getch();
    int temp ;
    switch (c) { //
    case 'u':
    temp = secilen_satir;
    satir_yukari();
    if (temp!=secilen_satir)
    {
    tarla_ciz();
    }
    break;
    case 'd':
    temp = secilen_satir;
    satir_asagi();
    if (temp != secilen_satir)
    {
    tarla_ciz();
    }
    break;
    case 'r':

    temp = secilen_sutun;
    sutun_yukari();
    if (temp != secilen_sutun)
    {
    tarla_ciz();
    }
    break;
    case 'l':
    temp = secilen_sutun;
    sutun_asagi();
    if (temp != secilen_sutun)
    {
    tarla_ciz();
    }
    break;
    case 's':
    sirali_git();
    tarla_ciz();
    break;
    default:
    h = hamle();
    if (h == -1)
    {
    printf("BOOOOOOOOM.........OYUNU KAYBETTINIZ\n\nBYE\n");
    devam = -1;
    }
    else if (h == 1)
    {
    printf("TEBRIKLER.........OYUNU KAZANDINIZ\n\nBYE\n");
    devam = -1;
    }
    break;
    }
    }
    return 0;


    }


    Projenin konusu yapılış biçimi buradadır ilgilenirseniz sevinirim..
     

    Ekli Dosyalar:

  2. Deduska

    Deduska MB Üyesi

    Kayıt:
    29 Temmuz 2016
    Mesajlar:
    190
    Beğeniler:
    125
    Meslek:
    Developer
    En İyi Cevap:
    9
    Değerlendiriler:
    +153 / 1 / -0
    Merhaba, @Mustafa Yaşar Keçeci kardeşim öncelikle yukarıda ki kod C# ile değil C programlama ile yapılmış. Kodunuz maalesef çok eksik nokta var. Size şöyle yardımcı olmak isterim. Aşağıda ki video yardımcı olacaktır. Diğer bir seçenek ise google da "Mayın tarlası uygulaması" diye aramanız.
    Kolay gelsin.