Sha256: b5e9d7e3fc810552661e7d2e2d4c433c3d4d65a5ae6f430e265da59266e81c05

Contents?: true

Size: 1.02 KB

Versions: 9

Compression:

Stored size: 1.02 KB

Contents

package wordcram;

import java.util.Random;

import processing.core.PVector;

/**
 * A RandomWordNudger, where each attempt's PVector has X & Y coords
 * distributed randomly around the desired point, multiplied by a standard deviation,
 * and multiplied by the attempt number (so it gets farther, as it gets more
 * desperate).
 *
 * @author Dan Bernier
 */
public class RandomWordNudger implements WordNudger {

    private final Random r = new Random();
    private float stdDev;

    /**
     * Create a RandomWordNudger with a standard deviation of 0.6.
     */
    public RandomWordNudger() {
        this(0.6f);
    }

    /**
     * Create a RandomWordNudger with your own standard deviation.
     * @param stdDev
     */
    public RandomWordNudger(float stdDev) {
        this.stdDev = stdDev;
    }

    @Override
    public PVector nudgeFor(Word w, int attempt) {
        return new PVector(next(attempt), next(attempt));
    }

    private float next(int attempt) {
        return (float)r.nextGaussian() * attempt * stdDev;
    }

}

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
ruby_wordcram-2.1.1 src/wordcram/RandomWordNudger.java
ruby_wordcram-2.1.0 src/wordcram/RandomWordNudger.java
ruby_wordcram-2.0.6 src/wordcram/RandomWordNudger.java
ruby_wordcram-2.0.5 src/wordcram/RandomWordNudger.java
ruby_wordcram-2.0.4 src/wordcram/RandomWordNudger.java
ruby_wordcram-2.0.3 src/wordcram/RandomWordNudger.java
ruby_wordcram-2.0.2 src/wordcram/RandomWordNudger.java
ruby_wordcram-2.0.1 src/wordcram/RandomWordNudger.java
ruby_wordcram-2.0.0 src/wordcram/RandomWordNudger.java