Improve combinations algorithm speed
This commit is contained in:
@@ -1,40 +1,43 @@
|
||||
{-# LANGUAGE TupleSections #-}
|
||||
module Dodge.Combine.Combinations where
|
||||
import Dodge.Data
|
||||
import Dodge.Item.Weapon.BulletGuns
|
||||
import Dodge.Item.Weapon.Launcher
|
||||
itemCombinations :: [([CombineType],Item)]
|
||||
itemCombinations :: [([(Int,CombineType)],Item)]
|
||||
itemCombinations =
|
||||
[ p [PIPE,HARDWARE] (bangStick 1)
|
||||
, p [BANGSTICK 1,TIN] pistol
|
||||
, p [PISTOL, SPRING, HARDWARE] autoPistol
|
||||
, p [AUTOPISTOL, PLANK, HARDWARE] smg
|
||||
, p [AUTOPISTOL, HARDWARE] machinePistol
|
||||
, p [BANGSTICK 1,CAN] revolver
|
||||
, p [REVOLVER, SPRING, HARDWARE] $ revolverX 1
|
||||
[ po [PIPE, HARDWARE] (bangStick 1)
|
||||
, po [BANGSTICK 1, TIN] pistol
|
||||
, po [PISTOL, SPRING, HARDWARE] autoPistol
|
||||
, po [AUTOPISTOL, PLANK, HARDWARE] smg
|
||||
, po [AUTOPISTOL, HARDWARE] machinePistol
|
||||
, po [BANGSTICK 1,CAN] revolver
|
||||
, po [REVOLVER, SPRING, HARDWARE] $ revolverX 1
|
||||
|
||||
, p [PIPE,TUBE,HARDWARE] bangCone
|
||||
, p [BANGCONE,PLANK] blunderbuss
|
||||
, p [BLUNDERBUSS,TUBE] grapeShotCannon
|
||||
, p [BANGCONE,PUMP,HARDWARE] $ grenadeLauncher 1
|
||||
, p [GRENADELAUNCHER 1,MOTOR,DRUM] $ grenadeLauncher 2
|
||||
, po [PIPE,TUBE,HARDWARE] bangCone
|
||||
, po [BANGCONE,PLANK] blunderbuss
|
||||
, po [BLUNDERBUSS,TUBE] grapeShotCannon
|
||||
, po [BANGCONE,PUMP,HARDWARE] $ grenadeLauncher 1
|
||||
, po [GRENADELAUNCHER 1,MOTOR,DRUM] $ grenadeLauncher 2
|
||||
|
||||
, p [PIPE,PIPE,HARDWARE] bangCane
|
||||
, p [BANGCANE,PIPE,PIPE] (bangCaneX 2)
|
||||
, p [BANGCANE,TIN] rifle
|
||||
, p [RIFLE,SPRING,HARDWARE] autoRifle
|
||||
, p [RIFLE,SPRING,CAN] assaultRifle
|
||||
, p [BANGCANE,BANGCANE] miniGun
|
||||
, p [p 2 PIPE,o HARDWARE] bangCane
|
||||
, p [p 2 PIPE,o BANGCANE] (bangCaneX 2)
|
||||
, po [BANGCANE,TIN] rifle
|
||||
, po [RIFLE,SPRING,HARDWARE] autoRifle
|
||||
, po [RIFLE,SPRING,CAN] assaultRifle
|
||||
, po [BANGCANE,BANGCANE] miniGun
|
||||
|
||||
, p [PIPE,PIPE,PIPE,HARDWARE] bangRod
|
||||
, p [BANGROD,PLANK,HARDWARE] elephantGun
|
||||
, p [ELEPHANTGUN,HARDWARE,TIN] amr
|
||||
, p [ELEPHANTGUN,HARDWARE,CAN] sniperRifle
|
||||
, p [BANGROD,PLATE,DRUM,MOTOR] machineGun
|
||||
, p [p 3 PIPE,o HARDWARE] bangRod
|
||||
, po [BANGROD,PLANK,HARDWARE] elephantGun
|
||||
, po [ELEPHANTGUN,HARDWARE,TIN] amr
|
||||
, po [ELEPHANTGUN,HARDWARE,CAN] sniperRifle
|
||||
, po [BANGROD,PLATE,DRUM,MOTOR] machineGun
|
||||
|
||||
, p [TUBE,TUBE,TUBE,HARDWARE] launcher
|
||||
, p [p 3 TUBE,o HARDWARE] launcher
|
||||
]
|
||||
++ map (\i -> ([PIPE,BANGSTICK i],bangStick (i+1))) [1..8]
|
||||
++ map (\i -> ([REVOLVERX i,CAN] ,revolverX (i+1))) [1..5]
|
||||
++ map (\i -> ([BANGCANEX i,PIPE,PIPE] ,bangCaneX (i+1))) [1..5]
|
||||
++ map (\i -> po [PIPE,BANGSTICK i] $ bangStick (i+1)) [1..8]
|
||||
++ map (\i -> po [REVOLVERX i,CAN] $ revolverX (i+1)) [1..5]
|
||||
++ map (\i -> p [o (BANGCANEX i),p 2 PIPE] $ bangCaneX (i+1)) [1..5]
|
||||
where
|
||||
p = (,)
|
||||
po xs it = (map o xs,it)
|
||||
o = (1,)
|
||||
|
||||
Reference in New Issue
Block a user