I composed a JSFiddle to generate Boot Hill 1975 edition characters. You can then pick a weapon, specify any combat bonuses and penalties (like movement, wounds, surprise, range or experience), and it computes First Shot and To Hit. Successful gunfight experience improves Accuracy, Bravery and Speed, as per the rules. It also computes Exact Hit Locations, including any modifiers from using shotguns and scatter guns at short or long range.
Only the basic rules are implemented. And Brawls (punching/grappling tables) aren't implemented yet.
New: Attack button rolls to see if an attack on an opponent succeeds and calculates hit location and wound severity
New: Defend button rolls to see if an attack on this character succeeds and calculates hit location and wound severity. It deducts damage from the Strength ability. It also tracks wounds to the left and right arm, switching hands if the "wrong hand penalty" is less than the penalty for wounds to the dominant hand. It pops up an alert box if your character dies, falls unconscious, or can't fight anymore because both arms were blown off. There's also a button to reset wounds.
New: You can now supply custom ability and experience scores in the query string of the URL, rather than randomly generate abilities and start experience at 0.
New: Documentation on how to use it (see below).
Reposted it on my Pastebin to make it easier to download.
Updated: The screenshot in the OP to reflect the changes
With these changes, you could make two characters in separate browser tabs/windows and have them duel. You'd just need to copy and paste the calculated "To Hit" percentage (after choosing a weapon) from each to the "Opponent's chance to hit you" input box of the other. Then use the "Defend" button on the target (rather than the "Attack" button on the firer) since that tracks damage.
Here is the documentation, which is also embedded as a Markdown-formatted comment at the top of the HTML in the Pastebin version:
BootHill.html - Boot Hill 1E character generator
The simplest use is to load the page into a web browser without a QueryString. If you are loading it from your local filesystem, you will likely be using a URL like so:
Hit the Generate Character button to randomly create a new character.
If desired, increase the experience with the + Won / + Lost buttons.
Choose a weapon from the drop down list. a. This makes a stat block for the weapon with its range, rate, speed, etc. b. It also computes First Shot and To Hit c. You can add modifiers like movement, surprise, range, etc.
To attack an opponent, click the Attack button. This randomly determines if you hit. If you hit, then it rolls randomly for a. Hit Location b. Wound Severity
To defend against an attack, input your opponent's chance to hit and damage modifiers, then click the Defend button. It randomly determines if you're hit. If you are, then it determines a. Hit Location: If you are hit in your right arm, then the program automatically switches to the left arm and applies the wrong hand penalty, unless your left arm is equally or more severely wounded then the right. Damage to arms affects your chances to hit. If both arms are severely damaged, then you cannot attack anymore. b. Wound Severity subtracts from your Strength. If Strength falls to 0 or less, you're unconscious and can't attack any more. A mortal wound kills your character and he can't attack anymore either.
Click the Reset Wounds button to erase any wounds (including a mortal wound) and reset your Strength to its original value.
Instead of randomly generating a character, you may specify his abilities in the QueryString like so: