Не могу понять, как определить, сколько последовательных глав в Flipper Coin - PullRequest
0 голосов
/ 10 марта 2019

У меня есть проект, над которым я работаю в своем классе Java, и не могу понять, что за несколько строк кода.

Проект состоит из подбрасывания монеты и использования различных методов, чтобы определить, сколько голов или хвостов, а также сколько переворотов произошло до сих пор.

import java.util.*;

public class GVcoin{

// true for heads, false for tails
private boolean isHeads;
private int flips, heads;
private Random r;


//Create the coin 
public GVcoin(){
    r = new Random();
    heads = 0;
    flips = 0;
    isHeads = true;     
}

//Flip the coin by random choosing true / false
public void flip(){
    isHeads = r.nextBoolean();
    flips++;
    if(isHeads){
        heads++;
    }
}

//return true if coin is currently heads
public boolean isHeads(){
    return isHeads;
}    

//return String representation of important values
public String toString(){
    String str;
    str = "Flips: " + flips + " Heads: " + heads + " isHeads: " + isHeads;
    return str;
}    

//return number of total flips
public int numFlips(){
    return flips;
}

//return number of total heads  
public int numHeads(){
    return heads;
}

//return number of total tails
public int numTails(){
    return flips - heads;
}

//Set the coin to heads (or tails) to start
public void setToHeads(boolean h){
    isHeads = h;
}

//Create the coin with a random seed
public GVcoin(int seed){
    this();
    r = new Random(seed);
}    

}

Проблема, которую я не могу понять, заключается в другом классе, называемом TossingCoins, и заключается в методе public int consecutiveHeads(GVcoin c, int goal)

public class TossingCoins {

public int countHeads(GVcoin c, int goal){
    while(c.numHeads() != goal) {
        c.flip(); 
    } 
    return c.numFlips();
}

public int flipForTails(GVcoin c, int goal){
    while(c.numTails() != goal) {
        c.flip(); 
    } 
    return c.numFlips();
}

public int consecutiveHeads(GVcoin c, int goal){
    while(c.numHeads() != goal){
        c.flip();
    }
}
// This method creates a TossingCoins object and calls the method for testing
public static void main(String[] args) {
    TossingCoins game = new TossingCoins();
    GVcoin c = new GVcoin();
    int numHeads = game.countHeads(c, 100);
}
}

.numHeads не равен цели голов.Тогда, если оно не равно количеству голов (цели), я бы установил флип, чтобы добавить одну.Который имеет значение 1, 2, 3, 4, 5 и т. Д., Пока не достигнет количества бросков, необходимого для поражения количества голов (гол).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...