okuldan c proglamlama dilinde en fazla 15x15 lik bir matriste mayın tarlası yapmamız istendi fonksiyon kullanmamız yasak program şöyle çalışacak ilk açıldığında bizden kaça kaçlık matris istediğimizi soracak kullanıcı girecek (matris daima kare olaca 1x1, 2x2.. gibi) sonra kaç mayın olması istendiği sorulacak kullanıcı girdiğinde o ölçülerde o kadar mayınlı bir tarla oluşacak ben büyük bi kısmını yaptım fakat en başta kaça kaçlık matris istersiniz diye sorup kullanıcının seçimine göre oluşturamıyorum kodlarımı atsam yardımcı olabilir misiniz?
Ödev Yardımı
Cevaplar
kodlarını paylaşırsan burada yardımcı olacak bir çok arkadaş bulunur. kodlarını dropbox ya da bir yere koy ve oradan inceleyelim.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main ()
{
srand((unsigned)time(NULL));
int number;
int mine;
int x,r,y,c;
int minefield[15][15];
{
do
{
mine=-1;
printf ("How many mines do you want in the minefield? <max:125 min:0>: "),
scanf ("%d", &mine);
fflush(stdin);
if (mine<0 || mine>125)printf("\n\nWrong Choice!\n\n");
}
while(mine<0 || mine>125);
for(x=0; x<15; x++)
for(y=0; y<15; y++)
minefield[x][y]=0;
for (number=0; number<mine; number++)
{
do
{
x=rand()%15;
y=rand()%15;
}
while (minefield[x][y]=='m');
minefield[x][y]='m';
}
for (x=0;x<15;x++)
{
for(y=0;y<15;y++)
if (minefield[x][y]=='m' )
{
for(r=x-1; r<=x+1; r++)
if (x!=-1)
if (x!=15)
{
for (c=y-1; c<=y+1; c++)
if (y!=-1)
if (y!=15)
{
if(minefield[r][c]!='m')
++minefield[r][c];
}
}
}
}
for (x=0; x<15; x++)
{
for (y=0; y<15; y++)
if (minefield[x][y]=='m') printf ("m");
else printf ("%d",minefield[x][y]);
printf("\n");
}
fflush(stdin);
}
return (0);
}
kodlarım bunlar
#include <stdlib.h>
#include <time.h>
int main ()
{
srand((unsigned)time(NULL));
int number;
int mine;
int x,r,y,c;
int minefield[15][15];
{
do
{
mine=-1;
printf ("How many mines do you want in the minefield? <max:125 min:0>: "),
scanf ("%d", &mine);
fflush(stdin);
if (mine<0 || mine>125)printf("\n\nWrong Choice!\n\n");
}
while(mine<0 || mine>125);
for(x=0; x<15; x++)
for(y=0; y<15; y++)
minefield[x][y]=0;
for (number=0; number<mine; number++)
{
do
{
x=rand()%15;
y=rand()%15;
}
while (minefield[x][y]=='m');
minefield[x][y]='m';
}
for (x=0;x<15;x++)
{
for(y=0;y<15;y++)
if (minefield[x][y]=='m' )
{
for(r=x-1; r<=x+1; r++)
if (x!=-1)
if (x!=15)
{
for (c=y-1; c<=y+1; c++)
if (y!=-1)
if (y!=15)
{
if(minefield[r][c]!='m')
++minefield[r][c];
}
}
}
}
for (x=0; x<15; x++)
{
for (y=0; y<15; y++)
if (minefield[x][y]=='m') printf ("m");
else printf ("%d",minefield[x][y]);
printf("\n");
}
fflush(stdin);
}
return (0);
}
kodlarım bunlar
yokmu yardım edecek biri:(
Mayın sayısından önce bir tane daha scanf ile matris boyutunu al bir değişkene ata. Daha sonra int minefield[degiskenismi][degiskenismi]; diye arrayını tanımlarsın. İlla programın başında tanımlaman söz konusu değil. İstediğin her an her zaman variable tanımlayabilirsin. 15 diye kullandığın yeride degiskenismi'yle değiştirsin. bu kadar.
👍 1
2012 konusuna ne mesaj yazıyorsunuz ya.beerkyeloglu dedi: ↑C++ ve Java ödevleri cüzzi miktarda ücret ile yapılır
👍 1
hocam halen lazımmıdır bilemem :Dbeerkyeloglu dedi: ↑C++ ve Java ödevleri cüzzi miktarda ücret ile yapılır