C# Proje ödevime yardım !!

Kayıt
5 Mayıs 2016
Mesajlar
14
Tepkiler
3
Yaş
28
Meslek
Elektrik Elektronik Mühendisliği
Üniv
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..
 

Dosyalar

Deduska

MB Üyesi
Kayıt
29 Temmuz 2016
Mesajlar
187
Tepkiler
124
Meslek
Developer
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.

 
Yukarı Alt