Ev Kişisel Finans Java Programlama Mücadelesi: Basit Bir Tic-Tac-Toe Oyunu - mankenler

Java Programlama Mücadelesi: Basit Bir Tic-Tac-Toe Oyunu - mankenler

Video: Coding Challenge #147: Chrome Dinosaur Game (with Speech Commands machine learning model!) 2025

Video: Coding Challenge #147: Chrome Dinosaur Game (with Speech Commands machine learning model!) 2025
Anonim

Göreviniz, kabul etmeye karar vermeniz durumunda, kullanıcıya Tic-Tac-Toe oyununu oynatabilen bir Java programı yaratmaktır.

Muhtemelen bildiğiniz gibi, Tic-Tac-Toe basit bir oyun, genellikle kağıt ve kurşunkalem ile oynanır. Öncelikle, kağıda basit bir 3 x 3 ızgara yaparsınız. Ardından, iki oyuncu ızgaradaki boş alanlarda X ve O işaretleyerek dönüşleri değiştirir. Üç veya daha fazla işaretini yatay, dikey veya köşegen şeklinde yapan ilk oyuncu kazanır. Izgaradaki tüm alanlar, herhangi bir oyuncu üst üste üç kez işaretlemeden önce doldurulursa, oyun berabere kalır.

İşte bu zorluk için kurallar ve talimatlar:

  1. Bilgisayar insanoğluna karşı oynuyor. İnsan önce hareket eder ve X'dir. Bilgisayar o'dır.

  2. Program, kısa bir karşılama mesajı görüntüleyerek başlamalı ve daha sonra oyuncuya ilk hareketini sormalıdır. Örneğin:

    Tic-Tac-Toe'ye hoş geldiniz. Lütfen ilk hareketinizi girin:
    
  3. ızgaranın karelerini belirlemek için, sütunlar için A, B ve C harflerini ve satırlar için 1, 2 ve 3 rakamlarını kullanın:

    A1 B1 C1 A2 B2 C2 A3 B3 C3
    

    Böylece, sol üstteki kareye bir X yerleştirmek için, insan oyuncu, oyuncuyu bir hareket.

    İnsan hareket ettikten sonra, program panonun geçerli durumunu konsolda göstermelidir.

  4. X'in insanın oyunlarını işaretlemek için, X işaretini bilgisayarın oyunlarını işaretlemek için kullanın. Tahtayı basit bir ızgaraya çekmek için dikey çubuk karakterleri (klavye üzerinde eğik çizgiyle Enter tuşunun hemen üstünde bulunur) ve tireler kullanın.

    Örneğin, kullanıcı ilk hareketi olarak A1 girdiyse, program aşağıdakileri görüntüler:

    X | | --- | --- | --- | | --- | --- | --- | |
    
  5. İnsan hareketinden sonra program hareketini belirler, kullanıcıya bildirir, güncelleştirilmiş bir tahta görüntüler ve ardından kullanıcının hareketini ister.

    Örneğin, şunu görebilirsiniz:

    A2: X | O | --- | --- | --- | | --- | --- | --- | | Lütfen bir sonraki hamlemini girin:
    
  6. Oyun, bir oyuncu üst üste üç sayı atana kadar veya tüm kareler kazanan olmadan dolduruluncaya kadar devam eder. Programınız, her iki oyuncunun da üst üste üç sayı atıp kazanmadığını belirleyebilmelidir. (Bu, bu programlama zorluğunun en zor kısmıdır.)

  7. Oyun sona erdiğinde, program oyunun sonucunu gösteren bir mesaj görüntüler: "Sen yendin beni! "Eğer insan oyuncu kazanırsa," Seni yendim! "Eğer bilgisayar oyuncusu kazanırsa veya" Bir beraberlik! "Eğer oyun berabere bitiyorsa.

  8. İnsanlar ve bilgisayar oyuncuları her iki oyuncu tarafından da kullanılmayan sadece karelerde oynayabilir.

  9. Oyun, oyun her iki oyuncu tarafından kazanıldığında veya oyun berabere kalırsa sona erer. Tekrar oynamak isterseniz, programı tekrar çalıştırmanız gerekir.

Bilgisayarın hareketlerini nasıl şekillendireceğini belirlemek istediğiniz herhangi bir yöntemi kullanmakta özgür olduğunuzu unutmayın. Bilgisayarınızı her zaman ilk boş oyunda oynamaya davet etmenizi öneririm. Bu açıkçası Tic-Tac-Toe oynamak için en iyi yol değildir ve oynamak istediğinizde bilgisayarınızı dövmek hiç zorlanmaz. Ancak bu basit oyun stratejisini seçmek, ızgaranın dahili olarak nasıl temsil edildiği ve bir oyuncunun oyunu ne zaman kazandığını veya oyun berabere bitişini nasıl belirleyeceğiniz gibi programlamanın diğer yönlerine odaklanmanıza olanak tanır.

("Java Programlama Zorluğu: Basit Tic-Tac-Toe Programına Diziler Ekleme" bölümünde, programın oyunlarını belirlemek için daha iyi bir strateji belirlemeniz istenecektir.)

İşte bir örnek: Komple oyun için konsol ekranı:

Tic-Tac-Toe'ye hoş geldiniz. Lütfen ilk hamlemini girin: A1 X | | --- | --- | --- | | --- | --- | --- | | A2'de oynayacağım: X | O | --- | --- | --- | | --- | --- | --- | | Lütfen bir sonraki hamlemini girin: B1 X | O | --- | --- | --- X | | --- | --- | --- | | A3'te oynayacağım: X | O | O --- | --- | --- X | | --- | --- | --- | | Lütfen bir sonraki hamlemini girin: C 1 X | O | O --- | --- | --- X | | --- | --- | --- X | | Beni yendin!

İşte size başlamak için birkaç ipucu:

  • Izgara temsil etmenin en iyi yolu bir dizi ile. Şimdilik, A1, A2, A3, B1, B2, B3, C1, C2 ve C3 adlarında dokuz değişken kullanın.

  • Izgara değişkenleri için int türünü kullanırsanız, 1 ile bir kare bir X ve 2 içeren bir kare içerdiğini belirtmek için 1 değerini kullanabilirsiniz.

  • Sekiz olası satır kazanç sağlayabilir. Aşağıdaki kareler kombinasyonlarından herhangi biri bir (X için) veya 2 (O için) ise, bir oyuncu kazanır:

    A1 - A2 - A3 A1 - B1 - C1 A1 - B2 - C3 B1 - B2 - B3 A2 - B2 - C2 A3 - B2 - C1 C1 - C2 - C3 A3 - B3 - C3
    
  • Oyunun beraberlik olup olmadığını belirlemenin iki yolu vardır. İlk dokuz karenin hepsini kontrol etmektir: Eğer karelerden hiçbiri boş değilse ve iki oyuncu da kazanamazsa, oyun berabere kalır. İkinci hamle saymaktır: Eğer dokuz hamle yapılmış ve herhangi bir oyuncu kazansaydı, oyun berabere olduğunu.

Bu programlama sorununa bir çözüm bulmak için Java All-in-One İpuçları, 4. Edition ürün sayfasındaki Yükleme sekmesinde bulunabilir.

İyi şanslar!

Java Programlama Mücadelesi: Basit Bir Tic-Tac-Toe Oyunu - mankenler

Editörün Seçimi

Genişletme Bağlantılar ve Bina Robotları için Pinouts - mankenler

Genişletme Bağlantılar ve Bina Robotları için Pinouts - mankenler

Eğer bir robot inşa ediyorsanız, çok sayıda elektrik bağlantısı, bu yüzden çok sayıda iğne ile uğraşıyorsunuz. Aşağıdaki tabloda, genişleme konektörleri ve pim numaraları için sinyal gösterilmektedir. İstenmeyen çapraz bağlantıları önlemeye yardımcı olabilir. Genişletme Konnektörü Pin Numarası Sinyal Genleşmesi Konnektör Pin Numarası Sinyal 1, 2 Toprak 16 P11 Yeşil LED 3, 4 + 5 ...

Dizinler içeren Kablosuz Erişim Noktalarını bulma - mankenler

Dizinler içeren Kablosuz Erişim Noktalarını bulma - mankenler

Sıcak noktaları bulma konusunda çevrimiçi dizinler, gezinmek için mükemmel bir araçtır. ABD, Kanada ve dünyadaki artan sayıda sıcak nokta. Size kolaylık sağlamak için, bu dizinlerden bazıları. Dizin Notları JiWire WiFi Bulucu 144 ülkede ücretsiz ve ücretli Wi-Fi yerleri dizini sağlar. AT & T ...

Ham Radyoda genel Sınıf Frekans Ayrıcalıkları - mankenler

Ham Radyoda genel Sınıf Frekans Ayrıcalıkları - mankenler

Yakında yapmadıysanız, siz Yükseltmeyi düşünüyorum. Aşağıdaki tabloda gösterildiği gibi, yüksek frekanslı (HF) bantlarda kullanmak için daha fazla frekansa sahipsiniz. Tüm lisans sınıfları için ABD frekansı ve mod ayrıcalıklarının eksiksiz bir listesi, Amerikan Radyo Röle Ligi'nden (ARRL) edinilebilir. Bant Frekansları ...

Editörün Seçimi

Adobe Flash CS6'da Maske Katmanlarını Kullanma - mankenler

Adobe Flash CS6'da Maske Katmanlarını Kullanma - mankenler

Adobe Flash CS6'da maskeleme kavramı Bir parçanın bölümlerini gizlemek ya da ortaya çıkarmak için bir şekli (ya da şekilleri) kullanır - tıpkı evinizdeki küçük bir pencere aracılığıyla dışarıdan bakmak gibi. Pencere boyutu, içerideyken görebileceğiniz şeyi sınırlar. Flash, özel bir katman özelliklerine sahiptir ...

Flash CS5 3D Rotasyon Aletinin Kullanımı - mankenler

Flash CS5 3D Rotasyon Aletinin Kullanımı - mankenler

Adobe'nin kapsamlı çizim ve animasyon yetenekleri Flash Creative Suite 5, Flash'ın 3D Döndürme aracıyla büyük ölçüde geliştirilebilir. 3B Döndürme aracı, sembolü x, y ve z eksenleri etrafında döndürmek ve dönüştürmek için herhangi bir film klibi örneğinde kullanılabilir. Bir film klibi örneğini 3D olarak oluşturmak için bunları izleyin ...

Flash CS5 3D Çeviri Aletini Kullanma - aumlalar

Flash CS5 3D Çeviri Aletini Kullanma - aumlalar

In 3D Döndürme aracının aksine Flash CS5 film kliplerini bir eksen etrafında döndüren Adobe Flash Creative Suite 5, 3D Çeviri aracı, bir film klibini algılanan mesafeyi ve sahnedeki diğer nesnelere göre derinliğini değiştirmek için belirli bir eksende kaydırır. Bu kavramı üçlü düşünün ...

Editörün Seçimi

Pratik İlköğretim Sınavı-Grafik Çözümleri - mankenler

Pratik İlköğretim Sınavı-Grafik Çözümleri - mankenler

Praxis İlköğretim sınavının Matematik bölümü bir dizi çizgide bir eşitsizliğe çözüm bulmanızı gerektiren bir soru. Başlamak için, çözümdeki sayıya bir nokta koyarsınız. Sembolü> veya

Pratik İlk Öğretim Sınavı-Ölüm Şekilleri - mankenler

Pratik İlk Öğretim Sınavı-Ölüm Şekilleri - mankenler

Praxis İlköğretim Matematik ve Bilim bölümleri Eğitim sınavı, farklı ölçme şekillerine aşina olmanız gereken sorular içerir. Ölçümler, çeşitli tiplerde tanımlanabilir. Mesafe için İngilizce sistem birimleri inç, feet, metre ve mil içerir. Bunlar birbirine dayanır. Bir ayak 12 ...

Pratik İlk Öğretim Sınavı-Akıcılık - mankenler

Pratik İlk Öğretim Sınavı-Akıcılık - mankenler

Praxis İlköğretim sınavı, yardımcı stratejilerinizi test eden sorular içerir öğrenciler akıcılıklarını İngilizce olarak geliştirirler. Bu stratejiler, grafik düzenleyicileri kullanarak ve çıkarımlar yapmayı içerebilir. Akıcı bir okuyucu, sınıf düzeyinde bir metni doğruluk, çabukluk ve ifade ile okuyabilir.