Because of the way new horses are created, it becomes increasingly harder to breed better horses as the horses get better.
The health can be determined by looking at the heads-up display (HUD.) The hearts with a different texture that’s unlike the player’s heart texture is the horse’s health. One heart equals two health points. When you ride a horse that has an odd number of health points, the last health point isn’t shown on the HUD. Sometimes, horses have an odd number of health; one method you can check if the horse has an even or odd number of health points/hitpoints is by hitting the horse and mounting the horse to check the hitpoints. If the HUD shows one less health point lost in health than the attack damage of the player, after the player attacks it, either with or without tools, the horse has 1 more health point than shown in the HUD and thus has an odd number of health. If the HUD shows the exact amount lost in health than the total attack damage of the player after the player attacks it, the horse has an even number of health and it has exactly the number of health points/hitpoints as shown in the HUD. The horse might regenerate one health point right after you attack it, so you might want to try again. Heal the horse to full health and attack it again to check again if you’re correct in checking if the horse has an odd or even number of hitpoints. For example, if a horse appears to have 22 hitpoints and you attack it, if the horse has lost one fewer health points than the damage you inflicted to the horse and if the horse didn’t regenerate, then it means that the horse actually has 23 hitpoints.
The internal value for jump strength for horses ranges from 0.4 to 1.0, which turns out to be approximately 1.08 to 5.29 blocks (contrary to the popular belief 1.0 to 5.0 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. Slabs and snow layers can be used to create non-full block increments.
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.
To convert a horse's internal speed to blocks/second, multiply the internal value by 42.157787584. Such an amount of precision is not usually necessary, but will result in a more accurate speed. The following table will use a rounded figure of 42.16.
|Internal units||0.1125 (min)||0.1688||0.2250||0.2813||0.3375 (max)||1.0000 (reference)|
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 only be bred if the randomly selected 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 foal is stronger than the weakest parent horse, replace the weakest parent horse with the foal. Each time a foal 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 foals produced before the target is reached).
Note that since the maximum value is impossible to achieve via breeding, it is omitted.