Video: Coding Challenge #147: Chrome Dinosaur Game (with Speech Commands machine learning model!) 2024
Java Programlama Sorunu: Basit Bir Tic-Tac-Toe Oyunu, Tic-Tac-Toe'nin basit oyununu oynayan bir konsol tabanlı program yazmak zorunda kaldınız. Burada Java programlama zorluğu, programa bir Grafik Kullanıcı Arayüzü (GUI) eklemek için Swing'i kullanmaktır. GUI burada gösterilen çizgiyi andırmalıdır.
Oyun basittir. İnsan oyuncusu ilk önce karelerden birine tıklayarak oynuyor. İnsan tarafından tıklanan kare, büyük bir X gösterir. İnsan oyundan sonra program, insanoğlunun kazanıp kazanıp kazanmadığını belirler. Eğer öyleyse, bir mesaj görüntülenir, tahta sıfırlanır ve yeni bir oyun başlar. Değilse, bilgisayar bir hareket seçer ve meydanı büyük bir O ile işaretler.
Program, daha sonra bilgisayarın oyunu kazanıp kazanmadığını belirler. Eğer öyleyse, program bir mesaj görüntüler, kurulu sıfırlar ve yeni bir oyun başlatır. Değilse, insan oyuncu tekrar oynar. Bu, bir oyuncu kazanana kadar veya tüm kareler dolana kadar devam eder.
Programınız, Java Programming Challenge için oluşturduğunuz TicTacToeBoard sınıfını kullanmalıdır: Basit Tic-Tac-Toe Programına Sınıf Ekleme. Başka bir deyişle, aynı yöntemleri uygulamalıdır. Size kolaylık olması açısından, bu yöntemler aşağıdaki tabloda tekrarlanmıştır.
Oluşturucu | Açıklama |
---|---|
TicTacToeBoard | Tüm kareler boşaltılmış yeni bir TicTacToeBoard oluşturur. |
Yöntem | Açıklama |
void reset () | Her karenin durumunu boşa döndürür. |
void playAt (String square, int player) | Belirtilen oyuncunun belirtilen karesini (A1, A2, A3, B1, B2, B3, C1, C2 veya C3) işaretler (X için 1, O). Square, izin verilen değerlerden biri değilse, oyuncu 1 veya 2 değilse veya belirtilen kare boş değilse IllegalArgumentException atar. |
int isGameOver () | Oyunun bitip bitmediğini belirler. Oyun bitmediyse 0, oyun sırasında X, bir oyun kazandığında 2, oyun berabere kalırsa 3 döndürür. Oyun sonlandırma koşulları aşağıdaki gibidir:
1: Herhangi bir satır, sütun veya köşegen tüm X'leri içeriyorsa. 2: Herhangi bir satır, sütun veya köşegen tüm O'ları içeriyorsa. 3: Boş kareler yoksa ne X ne de O kazandı. |
int getNextMove () | Bilgisayar rakibinin bir sonraki hamlenini temsil eden bir tam sayı döndürür. Bu yöntem, aşağıdaki stratejiye uygun olarak iyi bir hamle seçmek için temel bir çaba göstermelidir:
* Merkez (B2 karesi) boşalırsa, merkez kareyi oynatın. * Merkez boş değilse, dört köşeden herhangi biri (kareler A1, A3, C1 veya C3) boşsa, köşelerden birini kullanın (hangisi önemsizdir). * Merkez boş değilse ve köşeler boş değilse kenarlardan birini oynatın (kareler A2, B1, B3 veya C2). |
String toString () | Tahtanın geçerli durumunu gösteren bir dize döndürür. Dize, bu örnekte olduğu gibi satırları ve ayrı çizgilerini ayrı konsol satırlarında görüntülemek için yeni satır karakterleri içerir:
O | | O - | - | - | X | - | - | - | X | |
Bu zorluğun çözümünü, Java All-in-One İpuçları, 4. Baskı ürün sayfasındaki İndirilenler sekmesinde bulabilirsiniz.
İyi şanslar!