|
Author
|
Topic: C de random yerleştirme (Read 1902 times)
|
blizzard
Yeni Kullanıcılar
Offline
Posts: 3
|
arkadaşlar öncelikle herkese merhaba.Daha henüz 5 dakika önce üye oldum, ve işe koyuldum hemen ben 16x16 bir matris çizdim.Bu matrise 1 sayısını yazarsak eğer sayınnı kendisi kadar yani 1 tane; 2 yazarsak sayının kendisi kadar yani 2 tane .... yazdırılacak.Ama bu işlem random olacak ve hiç bir şekilde çakışma olmayacak.Sayılar yatay veya düşey olabilir sadece(çapraz yok).Yardımcı olur musunuz lütfen.... 
|
|
|
|
|
Logged
|
|
|
|
|
engin
|
merhaba, tam olarak sorun nedir? matrisi oluşturmakta mı sorun yaşıyorsunuz yoksa random veri üretmekte mi?
|
|
|
|
|
Logged
|
Engin Dumlu engin ~ turk-php.com achilles ~ member.turk-php.com
|
|
|
blizzard
Yeni Kullanıcılar
Offline
Posts: 3
|
sorun verileri(sayıları) dağıtmada,matrisi çizdim ancak sayıları üretemedim,çünkü bir çok şart vermiş,ilginiz için de teşekkür ederim...(sayılar 4 sayısı 4 tane,5 sayısıs 5 tane vs. bu sayılar da grup olarak yan yana ya da altalta random olarak dizilecek ve bu gruplar çakışmayacak)
|
|
|
|
|
Logged
|
|
|
|
|
Quadim
|
ben anlamadım. ufak bi ornek gostersene.. 1 2 2 3 3 3 4 4 4 4 bu sekılde mı olacak ?
|
|
|
|
|
Logged
|
|
|
|
andelek
PHP Öğrencisi
Offline
Posts: 80
|
Problemin asil amacini biraz anlasaydim.Bu sorun cozulecekti. Ornekler ile aciklasan iyi olur arkadas!
|
|
|
|
|
Logged
|
|
|
|
blizzard
Yeni Kullanıcılar
Offline
Posts: 3
|
örneğin: _________________________________ | 2 2 | | 3 | | 3 | | 3 | | | | | | 4 4 4 4 5 5 5 5 5 | _________________________________|
üsttekini bir matris düşünün, böyle yatay ya da düşey olacak, rastgele yerleşecek...
|
|
|
|
|
Logged
|
|
|
|
zombie
Global Moderatör
Offline
Posts: 940
|
tam olarak ne yapmaya çalışıyorsun pek anlamadım ama 0-9 aralığındaki rakamlarla 16x16 bir matris yapmak istersen aşağıdaki gibi birşey işine yarayabilir, ne yapmaya çalıştığını daha net yazarsan yardımcı olmaya çalışırız. #include <stdlib.h> #include <stdio.h>
int main(void) { int i,l; for(i=0; i<16; i++) { for(l=0; l<16; l++) { printf("%d", rand()%9); } printf("\n"); } return 0; }
|
|
|
|
|
Logged
|
|
|
|
andelek
PHP Öğrencisi
Offline
Posts: 80
|
Arkadas Ornek gostermissin ama rastgele sayilari yerlestirebiliriz. Ama senin matrisine hepsin rastgele sayilari yerlestirerek dolduramazsin! Dikey olsun yatay olsun fark etmez, imkansiz diye dusunuyorum!
Bos kalan yerleri olsun diye kabul ediyorsan kolay bir sekilde cozule bilir!
|
|
|
|
|
Logged
|
|
|
|
|
Quadim
|
yukardaki kodun tamamen doldurması gerek 16*16 bir matrisi.. ayrıca neden imkansız oldugunu dusundun ki ?
|
|
|
|
|
Logged
|
|
|
|
mky2mky
PHP Öğrencisi
Offline
Posts: 97
|
 anlasam bi 
|
|
|
|
|
Logged
|
Eğer web siten varsa ve sitene SAYAÇ, ZİYARETÇİ DEFTERİ, ANKET veya "ÖZLÜ SÖZLER" eklemek istiyorsan; www.SiteAraclari.com
|
|
|
merakli
Yeni Kullanıcılar
Offline
Posts: 49
|
umarım dediğini doğru anlamısımdır. aşağıda dediğini yapmaya calıstım çalışıyor gibi bir dene. #include<stdio.h> #include<stdlib.h> #include<conio.h>
int dizi[16][16];
int main() {
int x;
sifirla(); goster();
tekrar:
x=arayuz(); if(x==0) { return 0; } olustur(x); goster(); getch();
goto tekrar;
return 0; }
int sifirla() { int i,j;
for(i=0;i<=15;i++) { for(j=0;j<=15;j++) { dizi[i][j]=0; } }
return 0; } //>> int goster() { int i,j;
printf("\n");
for(i=0;i<=15;i++) { for(j=0;j<=15;j++) { printf("%d",dizi[i][j]); } printf("\n"); }
printf("\n\n\n");
return 0; } //>> int arayuz() { int sayi;
yeniden:
printf("lutfen sayi 1 ile 15 arasinda sayi giriniz [cikis 0]: ");scanf("%d",&sayi); printf("\nnot: tek basamakli sayi girmeniz gorsel acidan faydali olacaktir");
if((sayi<0)||(sayi>15)) { printf("\nlutfen girdiginiz sayi 16 dan kucuk 0 dan buyuk bir tam sayi olsun"); goto yeniden; }
return sayi; } //>> int olustur(int n) { int konum_x,konum_y,i,yon,sayac=0;
srand(time(NULL)); bidaha: sayac++; if(sayac>20000) { printf("\n\n\nbuyuk ihtimalle %d sayisi icin gerekli yer yok daha kucuk bir sayi denemelisiniz!\n\n\n",n); return 0; }
konum_x=rand()%16; konum_y=rand()%16;
yon=rand()%2; if(yon==0) { for(i=0;i<n;i++) { if((dizi[konum_x+i][konum_y]!=0)||(dizi[konum_x+i][konum_y-1]==n)||(dizi[konum_x+i][konum_y+1]==n)||(dizi[konum_x-1][konum_y]==n)||(dizi[konum_x+n][konum_y]==n)) { goto bidaha; } } if((konum_x+(n-1))<16) { for(i=0;i<n;i++) { dizi[konum_x+i][konum_y]=n; } }else { goto bidaha; } }else { for(i=0;i<n;i++) { if((dizi[konum_x][konum_y+i]!=0)||(dizi[konum_x+1][konum_y+i]==n)||(dizi[konum_x-1][konum_y+i]==n)||(dizi[konum_x][konum_y-1]==n)||(dizi[konum_x][konum_y+n]==n)) { goto bidaha; } } if((konum_y+(n-1))<16) { for(i=0;i<n;i++) { dizi[konum_x][konum_y+i]=n; } }else { goto bidaha; } } printf("\n%d. denemede",sayac);
return 0; }
|
|
|
|
|
Logged
|
en sevdiğim js kodu: setTimeout
|
|
|
theone_msa
Yeni Kullanıcılar
Offline
Posts: 4
|
yigidim. biraz geç kalmışsın ama emegine saglık.. daha az tugla ile örülemezdi herhalde bu duvar..
|
|
|
|
|
Logged
|
|
|
|
|
 |