2016-04-13 28 views
3

Şu anda bir bowling programı üzerinde çalışıyorum ve çoğu çalışıyorum. BowlingGameTest adında bir oyun sınavına sahibim. Oyunun en skoruyla ilgilenen bir oyun ve bir oyunun kendisi ile ilgilenen Play adında bir sınıf. Bildiğim kadarıyla eklenen tek şey, 10. çerçeve özellikleridir. Şu anda, eğer "bir grev" yaparsam, o zaman 10. çerçeve sadece 1-9 çerçevelerine benziyor. Ancak, bana başka bir kase vermeli ve bir sonraki atışta "başka bir kase" ye de kapılmam gerekecek. Bunu 10. çerçeve için uygulamanın en iyi yolu ne olurdu? İşteJava Bowling Programı - 10. Çerçeve Ekleme

benim Çal sınıfında şimdiye kadar ne var:

import java.util.Random; 

public class Play { 


    public static void main(String[] args) { 
     Game g = new Game(); 
     int i; 
     int PinsDown1; 
     int PinsDown2; 
     int PinsDown3; 

     for (i=1; i<11; i++) 
     { 
      PinsDown1 = ThrowBall(0); //1st try 
      System.out.println("Frame " + i + " Throw 1" + " knocked down is " + PinsDown1); 
      if(PinsDown1 == 10) 
      { 
       g.roll(10); 
       System.out.println("Congratulations, you bowled a strike!"); 
       System.out.println(); 
      } 
      else 
      { 
       PinsDown2 = ThrowBall(PinsDown1); //2nd try 
       System.out.println("Frame " + i + " Throw 2" + " knocked down is " + PinsDown2); 
       g.roll(PinsDown1); 
       g.roll(PinsDown2); 
       if (PinsDown1+PinsDown2 == 10) 
        System.out.println("Congratulations, you bowled a spare!"); 
        System.out.println(); 
      } 
     } 

     System.out.println("Final score is " + g.score()); 

    } //*** end main *** 

    public static int ThrowBall(int PinsDown) 
    { 
     int standing = 10-PinsDown; 
     Random rand = new Random(); 
     int down = rand.nextInt(standing+1); 
     return down; 
    } 

} //*** End class *** 
+0

Belki de kendi ['Yineleyici '' (http://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html) uygulamanızı kendiniz yapın. Bir onuncu uygunsa, sağlayın, aksi takdirde sadece dokuzuncuyu sağlayın. Özel bir yineleyici ile ilgili olarak [Bu Dave Dave Quartz adlı kişiye yanıt verin] (http://stackoverflow.com/a/22110692/642706) konusuna bakın. –

cevap

2

while döngüsüne bir döngü için değiştirmeyi düşünün. I değişkeninizi frame sayacı olarak kullanın ve> = 10 değilse ve bir grev yoksa döngüden çıkmak için bir koşul ekleyin.

+1

bu düşük kaliteli bir cevaptır. Lütfen sorunun nasıl çözüleceğine ilişkin örnekler verin. Cevabınız şu anda belirtildiği gibi, sadece bir yorum olmalıdır. – pczeus

+0

Bence bu oldukça iyi bir cevap. – Zizouz212

+0

@ Zizouz212 Bence bir yorum olmalı –