Bulmaca Algoritması
-
Evet biraz fikir üretelim arkadaşlar. böyle şu bu olmaz. Bir elin nesi var 2 elin sesi var.
Benim fikrim;
Programa bir sürü kelime entegre et;
ikiharfli = array[0..XX] of string = {"ok","at","az","ay","it","is","su","ra","do","re","me","fa","la","si"};
ucharfli = array[0..XX] of string = {"çok","tay","sol","sağ","ölü","bat","çip","CPU","pcu","pci"}
dortharfli = ..... .....
tabi bu kelimeler baya bi çok olmalı. o yüzden array değilde db de tutabilirsin.
Soldan Sağa için X, Yukardan aşağı için Y olarak düşün.
X[1] da Boşluk sayısına göre kaç harfli ise Random olarak o bir kelime alırsın;
X[1] da kalan boş kısımları doldurursun kelimelerle random olacak şekilde.
Not : X[1] X'in 1. Satıra eşittir.
X[1][1] = (X'in 1 Satırının ilk karekteri)
Daha sonra Y düzeyi için (Y[1][1] = X[1][1]) şartı olan kelimelerden birini getirin.
Y[1]'in sonraki kutu topluluğuna istediğinizi yazın.
Asıl zor yere geldik :) Ortadakiler Nasıl olacak.
onlarda
Gelen cümlelerden X[2][2] ve Y[2][2] için anlamlı bir değer dönüyorsa yani X'in 2. satırının 2. Kutusunda ve Y nin 2. satırının 2.kutusunda farklı 2 cümlede ortak olabilecek bir cümle geçiyorsa kelime o seçilir. X[3] ve y[3] için şart sağlanıyorsa devam edilir Sağlanmıyorsa yeni bir kelime seçilir. gibi. devam eder.
Algoritma işler fakat kelime dağarcığının epey bir yüksek olması lazım inşallah fikir verir.
-
obaaa ödeve bakın millet okulu birakırım ben :D
-
Şu yukardaki her bir kareyi bir nesne olarak tanımlamak lazım. Sonra da her kare kendi hesabını yapması lazım. Ama C diyoruz orda nasıl yapılacak :D
Önce C ile bir programlama dili yazmak lazım, sonra o dili kullanarak bu soruyu çözmek lazım (Bu da arkadaşın yorumu) :)
-
kelime dağarcığı arkadaşın dediği gibi çok olması lazım. ilk önce kaç kelime olacağına karar verip ona göre atıyorum 10*10'da 7 tane siyah kere oluşturursun random olarak (yan yana oluşturmazsın). sonra sol üstten başlayarak kelimeleri doldurursun. yapabiliyorsan sql'den fonksiyon oluştur, yoksa c ile filan da yapabilirsin; atıyorum 7 harfli kelimelerden charindex ile 4 üncü harfi a olan ve 7. harfi b olan gibi seçtirebilirsin. ortalara gelindiğinde de birşey değişmez gene andlerle yapabilirsin. oldu da kelime bulamadı istediği gibi, o stringi tekrar oluşturursun tekrar bakarsın. o kadar da zor değil yani kelime db'n varsa.
-
sadece 1 kelime referans alınarak, o kelime üzerinden tüm bulmacayı oluşturman lazım. Yani ortalarda olan bir kelime için atıyorum 4 harfli bir kelime olsun, başı kıçı hangi kelime üzerine geliyor tespit edilmesi gerekiyor sonra, 1.harf şu 2.harf şu 3. harf şu 4.harf şu koşuluna uyan kelimeyi pat oraya koyacak.
-
150bin kelime var zaten güzel kardeşlerim :D
-
çok merak ettim algoritmasını :) inşallah birileri yardımcı olur
-
150k kelimeyi dosyada mı tutuyorsun?
150k kelime için bir o kadar da soru metni olacak..
Bunu C ile yapacaksın..
Pardon ama hangi okulun ne hocası bu?
-
istanbul üniversitesi 2.sınıf dersi programming languages 2
-
bulmaca dediğin şeyi açıklarsan. binbir çeşit bulmaca var şimdi
kare bulmaca,çengel bulmaca. petek bulmaca tarzı. algoritmamızı da ona göre kurmamız lazım.
bir de elindeki text dosyasından bir kaç örnek satır verebilirsen iyi olur.
mesela kare bulmaca diyelim. önce bulmaca şablonunu oluştururuz.(önceki mesajların birinde arkadaşın verdiği gibi bişey)
bu şablona uygun(boşluklar saydırılır-o boşluklara uygun) rastgele cevaplar seçilir text dosyasından. (text dosyasındaki satırda (cevap soru) ilk olarak cevap sonrada soru geliyorsa iş çok kolaylaşır )
sonrada sırayla ya da seçilerek sorular sorulur- cevaplar karşılaştırılır.
tam açıklayamadım şimdi. ödevin içeriğini biraz açabilirsen gerek yöntem gerek de örnek kod olarak yardım edebilirim.