//=================================================================================================
public class PingPong {
//-------------------------------------------------------------------------------------------------
    private static final double PING_MISS_RATE = 0.20;
    private static final double PONG_MISS_RATE = 0.18;
//-------------------------------------------------------------------------------------------------
    public static void main(String[] args) {

        ping(0);
    }
//-------------------------------------------------------------------------------------------------
    private static void ping(int hits) {

        if (Math.random() <= PING_MISS_RATE) {
            System.out.println("Ping misses after " + hits + " hits");
        } else {
            System.out.print(" ping ");
            pong(hits+1);
        }
    }
//-------------------------------------------------------------------------------------------------
    private static void pong(int hits) {

        if (Math.random() <= PONG_MISS_RATE) {
            System.out.println("Pong misses after " + hits + " hits");
        } else {
            System.out.print(" pong ");
            ping(hits+1);
        }
    }
//-------------------------------------------------------------------------------------------------
}
//=================================================================================================
