|
Yazan
|
Konu: C de random yerleştirme (Okunma Sayısı 1860 defa)
|
blizzard
Yeni Kullanıcılar
Offline
Mesaj Sayısı: 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
Admin
Offline
Mesaj Sayısı: 495
|
merhaba, tam olarak sorun nedir? matrisi oluşturmakta mı sorun yaşıyorsunuz yoksa random veri üretmekte mi?
|
|
|
|
|
Logged
|
[color=3399CC]Engin Dumlu[/color][/i] [color=3399CC]engin ~ turk-php.com[/color][color=3399CC]achilles ~ member.turk-php.com[/color]PHP5 Hosting
|
|
|
blizzard
Yeni Kullanıcılar
Offline
Mesaj Sayısı: 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
Mesaj Sayısı: 80
|
Problemin asil amacini biraz anlasaydim.Bu sorun cozulecekti. Ornekler ile aciklasan iyi olur arkadas!
|
|
|
|
|
Logged
|
|
|
|
blizzard
Yeni Kullanıcılar
Offline
Mesaj Sayısı: 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
Mesaj Sayısı: 939
|
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
Mesaj Sayısı: 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
Mesaj Sayısı: 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
Mesaj Sayısı: 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
Mesaj Sayısı: 4
|
yigidim. biraz geç kalmışsın ama emegine saglık.. daha az tugla ile örülemezdi herhalde bu duvar..
|
|
|
|
|
Logged
|
|
|
|
|
 |