Add balanced algorithm
-From KevinCathcart, adds a "balanced" algorithm that, in theory, fixes the dungeon bias of the v26/v27 algorithm while maintaining the desirable amount of randomness it provides.
This commit is contained in:
parent
fe3bcd52a2
commit
9af7052e5f
|
@ -90,14 +90,15 @@ if __name__ == '__main__':
|
||||||
category, be randomly progressive or not.
|
category, be randomly progressive or not.
|
||||||
Link will die in one hit.
|
Link will die in one hit.
|
||||||
''')
|
''')
|
||||||
parser.add_argument('--algorithm', default='vt26', const='vt26', nargs='?', choices=['freshness', 'flood', 'vt21', 'vt22', 'vt25', 'vt26'],
|
parser.add_argument('--algorithm', default='balanced', const='balanced', nargs='?', choices=['freshness', 'flood', 'vt21', 'vt22', 'vt25', 'vt26', 'balanced'],
|
||||||
help='''\
|
help='''\
|
||||||
Select item filling algorithm. (default: %(default)s
|
Select item filling algorithm. (default: %(default)s
|
||||||
|
balanced: vt26 derivitive that aims to strike a balance between
|
||||||
|
the overworld heavy vt25 and the dungeon heavy vt26
|
||||||
|
algorithm.
|
||||||
vt26: Shuffle items and place them in a random location
|
vt26: Shuffle items and place them in a random location
|
||||||
that it is not impossible to be in. This includes
|
that it is not impossible to be in. This includes
|
||||||
dungeon keys and items. Includes slight deliberate
|
dungeon keys and items.
|
||||||
bias against having too many desireable items in
|
|
||||||
Ganon's Tower.
|
|
||||||
vt25: Shuffle items and place them in a random location
|
vt25: Shuffle items and place them in a random location
|
||||||
that it is not impossible to be in.
|
that it is not impossible to be in.
|
||||||
vt21: Unbiased in its selection, but has tendency to put
|
vt21: Unbiased in its selection, but has tendency to put
|
||||||
|
|
4
Gui.py
4
Gui.py
|
@ -128,8 +128,8 @@ def guiMain(args=None):
|
||||||
|
|
||||||
algorithmFrame = Frame(drowDownFrame)
|
algorithmFrame = Frame(drowDownFrame)
|
||||||
algorithmVar = StringVar()
|
algorithmVar = StringVar()
|
||||||
algorithmVar.set('vt26')
|
algorithmVar.set('balanced')
|
||||||
algorithmOptionMenu = OptionMenu(algorithmFrame, algorithmVar, 'freshness', 'flood', 'vt21', 'vt22', 'vt25', 'vt26')
|
algorithmOptionMenu = OptionMenu(algorithmFrame, algorithmVar, 'freshness', 'flood', 'vt21', 'vt22', 'vt25', 'vt26', 'balanced')
|
||||||
algorithmOptionMenu.pack(side=RIGHT)
|
algorithmOptionMenu.pack(side=RIGHT)
|
||||||
algorithmLabel = Label(algorithmFrame, text='Item distribution algorithm')
|
algorithmLabel = Label(algorithmFrame, text='Item distribution algorithm')
|
||||||
algorithmLabel.pack(side=LEFT)
|
algorithmLabel.pack(side=LEFT)
|
||||||
|
|
14
README.md
14
README.md
|
@ -108,15 +108,19 @@ This is only noticeably different if the --shuffleganon option is enabled.
|
||||||
Select game difficulty. Affects available itempool. (default: normal)
|
Select game difficulty. Affects available itempool. (default: normal)
|
||||||
|
|
||||||
```
|
```
|
||||||
--algorithm [{freshness,flood,vt21,vt22,vt25}]
|
--algorithm [{freshness,flood,vt21,vt22,vt25,vt26,balanced}]
|
||||||
```
|
```
|
||||||
|
|
||||||
Select item filling algorithm.
|
Select item filling algorithm.
|
||||||
|
|
||||||
|
### Balanced (Default)
|
||||||
|
This is a variation of vt26 that aims to strike a balance between the overworld heavy vt25 and the dungeon heavy vt26 algorithm.
|
||||||
|
It does this by reshuffling the remaining locations after placing dungeon items.
|
||||||
|
|
||||||
### VT26 (Default)
|
### VT26 (Default)
|
||||||
Items and locations are shuffled like in VT25, and dungeon items are now placed using the same algorithm. It includes
|
Items and locations are shuffled like in VT25, and dungeon items are now placed using the same algorithm. When gannon is not
|
||||||
a slight deliberate bias against having too many desireable items in Ganon's Tower to help counterbalance the sheer number
|
shuffled it includes a slight deliberate bias against having too many desireable items in Ganon's Tower to help counterbalance
|
||||||
of chests in that single location.
|
the sheer number of chests in that single location.
|
||||||
|
|
||||||
### VT25
|
### VT25
|
||||||
Items and locations are shuffled and placed from the top of the lists. The only thing preventing an item from being placed into a spot
|
Items and locations are shuffled and placed from the top of the lists. The only thing preventing an item from being placed into a spot
|
||||||
|
@ -231,7 +235,7 @@ Use to select a different sprite sheet to use for Link. Path to a binary file of
|
||||||
--beatableonly
|
--beatableonly
|
||||||
```
|
```
|
||||||
|
|
||||||
If set, will only ensure the goal can be achieved, but not necessarily that all locations are reachable. Currently only affects VT25 algorithm.
|
If set, will only ensure the goal can be achieved, but not necessarily that all locations are reachable. Currently only affects VT25, VT26 and balanced algorithms.
|
||||||
|
|
||||||
```
|
```
|
||||||
--shuffleganon
|
--shuffleganon
|
||||||
|
|
Loading…
Reference in New Issue