Tutorials/Horses

Because of the way new horses are created, it becomes increasingly harder to breed better horses as the horses get better.

Health
Can be determined by looking at the HUD.

Jump Strength
The internal value for jump strength for horses ranges from 0.4 to 1.0, which turns out to be approximately 1.25 to 5.88 blocks (contrary to the popular belief 1.0 to 5.5 blocks). A device to measure this can be quite simple: build walls of increasing heights parallel to each other, 3 blocks apart. To test horse jump strength, simply jump over the shortest wall to arrive at the next wall, and continue jumping until you can no longer jump. The last wall you were able to jump over indicates your horses maximum jump strength. You can use slabs and snow layers can be used to create non-full block increments.

Speed
Speed proves to be the most difficult attribute to measure. The internal value for horses ranges from .1125 to .3375. A device to measure this can be constructed with the delay on repeaters, using repeater locking. Create a very long chain of repeaters.

Use a piston to hold back the horse. Connect redstone such that the piston releases the horse at the same time as a pulse starts down the repeater chain. At the end of a certain amount of blocks (~45 or so), add pressure plates, which are usually more consistent than tripwire. When these pressure plates are activated, use a long string of redstone to lock every repeater in the chain. This will "freeze" the chain and the pulse that started at the beginning will be frozen in place. You can mark the repeater where the pulse is frozen with a block.

Keep in mind that you may need repeaters to lengthen the signal enough to lock the entire repeater chain, which will introduce a delay. You can account for this delay by adjusting the delay of the repeaters used for locking. As long as all the repeaters lock at the exact same time, the device will work.

Also keep in mind that for the results to be consistent, you must be going perfectly straight every time. You can do this by opening F3 mode and looking at the "facing" label, which shows a numerical value for your camera angle. You can temporarily decrease your mouse sensitivity through the controls to align yourself perfectly.

This device cannot measure the horse's exact speed in blocks/second, but can accurately measure its speed relative to other horses. Aside from server lag, it is incredibly consistent and can be used for accurate comparisons.

Breeding difficulty
Breeding two horses creates a new horse by averaging the two parent horses with a randomly generated horse. An average/arithmetic mean will always be less than the highest number being averaged, unless all numbers are identical.

By this logic, a perfect horse can be bred if the randomly generated horse is perfect, and both parent horses are perfect, in which case the average of the three perfect horses will be a perfect horse. By extension, without two perfect horses, a perfect horse cannot be bred.

After 3.13 blocks jump, 11 hearts, or 9.7 blocks/second speed, any future breeding will have a higher chance of producing a worse child than a better one. Because the range of horses that are better than a given horse gets narrower as the horse gets better, the likelihood of breeding a horse in that range of better horses also gets linearly narrower as the horse gets better, and as a result, the actual number of breed attempts necessary to likely get a better horse increases exponentially, until a fully perfect horse is unattainable, as shown in the table.

This graph shows what jump strength a player should expect their best horse to have after repeatedly breeding their two best horses together up to 1,000 times. The blue line shows the average jump strength of the best horse and the chances of the horse's jump strength being within the red lines is 95%.



Optimal Breeding Scheme
The optimal breeding scheme is that you start with two parent horses and breed them, and if the child is stronger than the weakest horse, replace the weakest horse with the child. Each time a child is produced counts as "1" breeding attempt, regardless of whether it replaces a parent or is discarded.

This breeding scheme proves difficult to model mathematically because probabilities cascade with every attempt, so the following tables show consistent experimental data over 420,000 trials per table. If both parents have the attribute listed in the "Both parents", the following lists the number of children produced before the target is reached).

Note that since the maximum value is impossible to achieve via breeding, it is omitted.