Mustafa Yaşar Keçeci
MB Üyesi
- Kayıt
- 5 Mayıs 2016
- Mesajlar
- 14
- Tepkiler
- 3
- Yaş
- 29
- 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..
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
-
352,9 KB Okunma: 834