Bir Kelime

Sonunda JavaScript öğrenme programım altında bir zamanlar televizyon ekranı başında oynadığımız “Bir Kelime Bir İşlem” yarışmasının “Bir Kelime” kısmını da bitirdim. Aşağıdaki linkten oyunu oynayabilirsiniz.

Sayfa ilk yüklendiğinde bütün imla kılavuzu da beraber yükleniyor. Bu şimdilik yaklaşık 1.5 MB yer tutuyor. Bundan sonra sayfa kapatılana kadar bir daha böyle bir yüklemeye gerek yok, yani oyun çevrimdışı da oynanabilir.

Oyun için önce rastgele yedi harf seçmek gerekiyor. Bu seçimi oyuncu ünlü ya da ünsüz olacak şekilde yapıyor. Bu tuşlar solda. Yedi harf de seçildiğinde oyun başlıyor. Oyuncu harflerin üzerine basarak kelimesini renkli alanda oluşturabiliyor. Bu sırada bir tane de joker harf kullanma hakkına sahip. Bu harfi joker tuşuna (ortadaki) bastıktan sonra aşağıda çıkan klavyeden seçerek yapıyor. Oyuncu en iyi kelimeyi bulduğunu düşündüğünde kabul tuşuna basarak çözümünü kontrol ettiriyor. Eğer kelime imla kılavuzunda mevcutsa puan alıyor, değilse alamıyor. Oyunun her anında programa o harflerle yazılabilecek en uzun kelimeler sorulabiliyor. Çözüm tuşuna basıldığında program bulunabilecek en uzun kelimeleri alttaki alanda gösteriyor.

Kullandığım çözüm bulma algoritması da basit bir şey. Önce her harf için bir map oluşturuyorum. Bu map içinde o harfin bulunma adedine göre kelimeleri grupluyorum. Yani bir grup içinde bir adet a harfi bulunan kelimelerden oluşuyor, bir başka grup içinde iki adet a harfi bulunduran kelimelerden. Bu şekilde bütün imla kılavuzunu hazırlıyorum. Oyunda çözüm istendiğinde seçilmiş harflerin N’li (N maksimum harf sayısı olan 7’den 2’ye kadar) kombinasyonlarını oluşturuyorum ve içinde bu harfleri seçildikleri adet kadar barındıran kelime gruplarının kesişimlerini buluyorum. Sonra bu kesişim kümesindeki kelimelerin uzunluklarına bakıyorum. Eğer kelimenin uzunluğu kombinasyondaki harf adedi kadarsa jokersiz, harf adedinden bir fazlaysa bir jokerli çözüm bulunmuş oluyor. Bu çözümlerin hepsini de çözüm kümesine ekliyorum.

 Bir Kelime

Yazılımcı bozuklukları

Yazılımcılarda görülen davranış bozukluklarından bir tanesi yazılımcı olduklarını unutmalarıdır. İş hayatında sık kaşılaştığım senaryolardan biri şöyledir: Yazılımcı bir sorunu çözemek için bir programa ihtiyaç duyar. Gruptaki diğer elemanlara böyle bir programları olup olmadığını sorar ve hayır cevabını alır. Sonra internette arar ama istediği programı orada da bulamaz. Bu sorun artık onun için çözümsüzdür, çünkü çözüm için aradığı program yoktur.

Bu noktada biraz eğlenmek istiyorsanız bu elemana şu soruyu yöneltin: “O zaman o programı sen yaz, yazılımcı değil misin?”. Elemanın yüzünde, o ana kadar bunun yasadışı bir etkinlik olduğuna inandığını gösteren bir ifade belirecektir. Yani sadece doğrudan çalıştığı proje için program yazabileceğine inanıyordur, o projeye dolaylı yoldan katkısı olabilecek bir program yazabileceği aklına bile gelmemiştir. Bu durumu açıklayacak daha mantıklı başka olasılıklar da vardır. Örneğin gereken programı yazabilecek bilgiye ve beceriye sahip olmayabilir ama bunun gerçek neden olduğu bir sahneyi henüz yaşamadım.

Neyse ki çevremde bu soruna sahip olmayan yeterince yazılımcı var da bu meslekten hala zevk alabiliyorum.

Ilımlı tepki

Serkan ve Ümit dün okullarından izin alıp EuroPark’a gittiler. Akşam eve geldiklerinde bindikleri, gördükleri şeyleri anlatmaya başladılar. Tabii ki bu mutluluk fazla uzun sürmedi. Okulda dersler normal şeklinde yapılmış ve ertesi gün için ödevler verilmişti. Ümit bu haberi hiç de hoş karşılamadı. O bu ödevleri yaptıkça whatsapp’tan da yeni ödev haberleri gelmeye devam ediyordu. Sonunda dayanamadı ve patladı:

Ü: EuroPark’tan nefret ediyorum. Zaten gitmek istemiyordum. Bu kadar ödev olamaz. Öğretmenlerden de nefret ediyorum. On milyar insan öldüreceğim.

B: O kadar insan yok ki dünyada.

Ü: (Bir an durakladıktan ve sakinleştikten sonra) Beklerim o zaman.

Eğer insan türü bugün de varlığını devam ettirebiliyorsa bunun tek nedeni dünyada henüz on milyar insan olmamasıdır. Uyarmadı demeyin!