Connect 4 oyununu oynamak için bir program yazın . Tahta durumunu girdi olarak alırsınız ve ya arka arkaya 4 (yatay, dikey veya çapraz) almak veya rakibinizin aynı şeyi yapmasını engellemek için hangi sütunu yerleştireceğinize karar vermelisiniz.
Tahta, her hücrenin boş ('') olabileceği, parçanızı ('X') veya rakibinizin parçasını ('O') içerebileceği 6x7 dizisidir. Bir örnek tahta:
O
XX X
XOX OO
XOO OXO
OXXOXXO
XOXOXOX
Çapraz kazanç için 3. sütunda (sütunlar soldan numaralandırılmış 0-6) oynamak istersiniz. Böylece çıktı:
3
Kodunuzun bir sütun numarası vermesi ve aşağıdaki ölçütleri karşılaması gerekir:
- İçinde zaten 6 adet olan bir sütunda oynayamazsınız.
- En az bir kazanan hamle varsa, bunlardan birini oynamalısınız.
- Rakibinizin bir sonraki hamlesinde kazanmasını engelleyebiliyorsanız, bunu yapmanız gerekir.
Optimal oyunun gerekli olmadığını, sadece anında kazanmanızı veya rakibinizin anında kazanmasını önlemenizi unutmayın. Rakibinizin birden fazla kazanma yolu varsa, hiçbirini engellemenize gerek yoktur.
Standart girişte kart verilir ve standart çıkışta oynamak istediğiniz bir sütun numarası yazdırmanız gerekir. Kartın iyi biçimlendirilmesi (delik yok, en az bir hamle) ve her iki oyuncu için zaten bir galibiyetin olmaması garanti edilir.
En kısa kod kazanır.
örnek 1
X
O
X
O
OOO X
XXX O
Kazanmak için 0 veya 4 numaralı sütunlardan birini oynamalısınız.
ÖRNEK 2
X
X X
O O
XOX XO
XXO XOX
XXO XXO
Rakibinizin hemen kazanmasını engellemek için 3. sütunu oynamalısınız.
ÖRNEK 3
X
XO
OX O
XO XX
XXO OOO
OOO XXO
Rakibinizi kazanamaz veya kazanmasını durduramazsınız, bu nedenle 1-6. Sütunları (0 dolu) oynayabilirsiniz.
Örnek 4
X
O
X
OOO
XOX
OXOX
3. sütunda oynayamazsınız, çünkü rakibinizin hemen kazanmasına izin verir. 1-2 veya 4-6. Sütunlarda oynayabilirsiniz.