Bilgisayar Dersinin Günlük Soruları (Yazar: Admin)

## 1/8/2016 - 7/8/2016 (Ali'nin Oyunu)

Ali Emre dövüş oyunlarına pek merak sarmıştır. Bu yüzden platformer tarzı bir oyun yapmaktan vazgeçer ve onun yerine kendi dövüş oynunu yapmaya karar verir.

### 1/8/2016

Ali Emre karakterleri tasarlamaya başlar. Ayrıca her bir karakter çiftine mahsus en az birer diyalog yazacaktır. Mesela *OBUA* (orası burası uzayan amca) ile Canavar Başlıklı Kız birbirlerinin akrabası olduklarından ötürü, idmân yapıyormuş gibi konuşurlar. Ayrıca aynı karakter kendi kendine de dövüşebilir. Buna göre Ali oyunda K karakter yer alırsa, kaç farklı diyalog yazması gerektiğini hesaplamak istiyor.

Örnek Girdi: 1 (A karakteri diyelim)

Örnek Çıktı: 1 (A karakteri kendi kendine karşılaşıyor)

Örnek Girdi: 3 (A, B ve C karakteri olsun)

Örnek Çıktı: 6 (A-A, A-B, A-C, B-B, B-C, C-C)

### 2/8/2016

Ali Emre toplamda kaç karakter olursa olsun, ilk olarak OBUA'yı kodlamaya karar verir. OBUA'nın taktiği (adından anlaşılacağı üzere) kollarını ve bacaklarını uzatarak vurmaya dayanır. Bu şekilde rakibinin içine parmaklarını saplayabilir. Ali kodda şöyle iki şart koyuyor: Eğer ki parmakları rakibinin içine girerse, rakip hasar alıyor ve geriye doğru fırlıyor. Eğer ki parmakları rakibini tam anlamıyla deler ve diğer yanından çıkarsa OBUA artık onu etrafa savurup işini bitirebilir.

Sizden istenen parmakların uzanmaya başladığı ve hareketinin sonlandığı koordinatlara ve rakibin hasar alabileceği bölgeye (ki bunun karşı köşeleri belli bir dikdörtgen olduğunun garantisi veriliyor) bakarak; ıska mı, fırlayış mı yoksa saplanış mı diye tespit etmeniz.

Örnek Girdi:

0 0 5 5

1 1 4 4

Örnek Çıktı:

saplanir

Örnek Girdi:

9 9 6 6

7 6 0 1

Örnek Çıktı:

firlatir

Örnek Girdi:

0 0 100 0

1 1 1 1

Örnek Çıktı:

iskalar

### 3/8/2016

Ali Emre bir kaç karakter daha kodlamıştır. Şimdi ama başkalarıyla oynamak istiyor. Bunun üzerine arkadaşı Yusuf'u davet eder. Ancak fark eder ki karakterlerin bir kısmının hamleleri zincirleme biçimde tekrarlanabilmektedir. Yani A hamlesinden hemen sonra rakip kaçamadan B hamlesini de atabilmektedir. Yusuf'u iki üç defa üst üste yendikten sonra, Yusuf kızmıştır ve keşfettiği bir zincirleme sayesinde Ali Emre'yi hiç hasar almadan yenmiştir. Üstelik Ali bu zincirlemeden bir an dâhi kaçamamıştır. Bunun üzerine az bir araştırma yapmaya karar verir. Karakterlerin hamlelerini inceler ve bir hamlenin ardından yapılabilecek diğer hamleleri yazar. Sizden istenen verilen karakterin hamlelerine göre en uzun zincirlemenin kaç hamle olduğunu bulmanızdır. Eğer ki sonsuz bir zincirleme mevcutsa (A->B->A->B->A->B->A->B->A->B->...) o zaman -1 hamle olduğunu kabul ediniz.

Örnek Girdi:

3 (Zincirleme biçimlerinin sayısı)

1 2

2 3

4 5

Örnek Çıktı:

3 (1->2->3)

Örnek Girdi:

5

1 2

2 3

3 4

4 89

89 1

Örnek Çıktı:

-1 (1->2->3->4->89->1->...)

### 4/8/2016

Ali bugün de bilgisayarcı arkadaşlarını çağırır. Artık kendi oynunda usta hâle gelmiştir. Ancak buna rağmen arkadaşlarıyla oynarken fark ediyor ki bazı karakter çiftleri birbirine karşı çok dengesiz. Mesela Omikron Cem Yılmaz, Jazzcı Üstad'ı rahatlıkla repliklerini kullanarak yenebilmektedir. Bunun üzerine karakterlerin maçlarını izler ve birbirine karşı üstünlüğü olanları yazar. Ali karakterleri isimlerine göre sıralamak yerine en sevdiğinden en az sevdiğine, 1'den başlayarak numaralandırmıştır. Buna göre verilen seçeneklere göre kendisine üstün olan rakiplerin sayısı en az olanlar arsından Ali'nin en sevdiğini bulunuz.

Örnek Girdi:

5 (karakter sayısı)

4 (derece sayısı)

5 1

5 2

5 3

5 4

Örnek Çıktı:

5

Örnek Girdi:

3 (karakter sayısı)

3 (derece sayısı)

1 2

2 3

3 1

Örnek Çıktı:

1 (numarası en küçük olan)