User Tools

Site Tools


boards:diatoms:diatoms

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
boards:diatoms:diatoms [2016/01/10 23:25]
Ozyman
boards:diatoms:diatoms [2016/04/21 12:37] (current)
Ozyman
Line 1: Line 1:
  
  
-====== Diatoms ======+
  
 {{ :boards:diatoms:diatoms-game.png?direct&800 | {{ :boards:diatoms:diatoms-game.png?direct&800 |
 boards:diatoms:diatoms-game.png}} boards:diatoms:diatoms-game.png}}
 +====== Diatoms ======
 http://www.wargear.net/boards/view/Diatoms http://www.wargear.net/boards/view/Diatoms
  
Line 17: Line 18:
  
  
 +To win - eliminate all your opponents, or get the required number of territories.  Number of territories required, depends on scenario, and matches the scenario name.  (e.g. scenario '50' only needs 50 territories to win, etc.)
  
 ===== Bonuses ===== ===== Bonuses =====
Line 29: Line 31:
  
 Locked to medium fog.  All territories have view borders to up to 3 territories away.  Vision is blocked by non-triangle diatoms. Locked to medium fog.  All territories have view borders to up to 3 territories away.  Vision is blocked by non-triangle diatoms.
 +
 +===== Cards =====
 +Start with a wild card - hold up to six.  If you hang on to your wild card, you'll always be able to turn in twice with six cards.
  
  
Line 66: Line 71:
  
 The main goal of diatom analysis in forensics is to differentiate a death by submersion from a post-mortem immersion of a body in water. Laboratory tests may reveal the presence of diatoms in the body. Since the silica-based skeletons of diatoms do not readily decay, they can sometimes be detected even in heavily decomposed bodies. As they do not occur naturally in the body, if laboratory tests show diatoms in the corpse that are of the same species found in the water where the body was recovered, then it may be good evidence of drowning as the cause of death. Further matching of diatoms from bone marrow and drowning site can strengthen this supportive evidence and a positive conclusion can be drawn whether a person was living or not when submerged. The main goal of diatom analysis in forensics is to differentiate a death by submersion from a post-mortem immersion of a body in water. Laboratory tests may reveal the presence of diatoms in the body. Since the silica-based skeletons of diatoms do not readily decay, they can sometimes be detected even in heavily decomposed bodies. As they do not occur naturally in the body, if laboratory tests show diatoms in the corpse that are of the same species found in the water where the body was recovered, then it may be good evidence of drowning as the cause of death. Further matching of diatoms from bone marrow and drowning site can strengthen this supportive evidence and a positive conclusion can be drawn whether a person was living or not when submerged.
 +
 +====== Development ======
 +
 +I've often had difficulty making boards with abandon that I was happy with.  It usually seemed to encourage very aggressive behavior, and lots of empty territories.  I've recently used a new (for me) paradigm of having bonuses for (almost) every territory on the board on 3 maps: Iwo Jima, Diatoms, Trivial Pursuit.  And I've been happy with the result.  This setup creates a conflict between wanting to group your units for offense/defense and wanting to spread out your units to get bonuses.
 +
 +
 +The 'continents' and view borders were added programatically in python.  Here are the interesting bits:
 +<code python>
 +def setupDiatoms():
 +  wgmap = WGMap()
 +  wgmap.loadMapFromFile('//DISKSTATION/data/wargear development/diatoms/Diatoms(7).xml')
 +
 +  # get territory sets
 +  triangleTerritories = wgmap.getTerritoryIDsFromNameRegex("^T")
 +  rhombusTerritories = wgmap.getTerritoryIDsFromNameRegex("^R")
 +  hexagonTerritories = wgmap.getTerritoryIDsFromNameRegex("^H")
 +  
 +  # add continents
 +  wgmap.continentsFromNeighbors(triangleTerritories,1)
 +  wgmap.continentsFromNeighbors(rhombusTerritories,2)
 +  wgmap.continentsFromNeighbors(hexagonTerritories,3)
 +  
 +  wgmap.continentsFromNeighbors(triangleTerritories,1, factory ="base",neighborDistance=0 )
 +  wgmap.continentsFromNeighbors(rhombusTerritories,2, factory ="base",neighborDistance=0)
 +  wgmap.continentsFromNeighbors(hexagonTerritories,3, factory ="base",neighborDistance=0)
 +
 +
 +  # get all territories within n borders - special version to only continue through triangle territories.
 +  
 +  def getATWNB(territoryID,nBorders, direction="either", borderTypesAllowed = ["Default","Attack Only"],targetRegex=".*"):
 +    
 +    tid = int(territoryID)
 +    borderDepth = 0
 +    allTerritoriesInReach = set()
 +    allTerritoriesInReach.add(tid)
 +    nBorders = int(nBorders)
 +        
 +    while(borderDepth < nBorders):
 +      allTerritoriesAddition = set()
 +      for tirID in allTerritoriesInReach:
 +        tirName = wgmap.getTerritoryNameFromID(tirID)
 +        if tirName[0] != "T" and borderDepth > 0:
 +          continue;
 +        tb = wgmap.getNeighborIDsFromID(tirID,direction, targetRegex, borderTypesAllowed)
 +        allTerritoriesAddition |= set(tb)
 +      allTerritoriesInReach |= allTerritoriesAddition
 +      borderDepth = borderDepth + 1 
 +   
 +    return allTerritoriesInReach
 + 
 +
 +
 +  # add view borders to every territory
 +  nDistance=3
 +  targetRegex=".*"
 +  directionality="One-way"
 +
 +  setrecursionlimit(15000)
 +  originalDOM = deepcopy(wgmap.DOM)    
 +  newDOM = wgmap.DOM
 +  
 +  for t in wgmap.DOM.getElementsByTagName("territory"):
 +    tid = t.getAttribute("tid"
 +    
 +    wgmap.DOM = originalDOM
 +    # find all territories that should be viewable from t
 +    twoDist = getATWNB(tid,nDistance,targetRegex=targetRegex) - getATWNB(tid,1,targetRegex=targetRegex)
 +    
 +    wgmap.DOM = newDOM      
 +    wgmap.addBordersToSet(tid, twoDist,directionality, "View Only")
 +         
 +  wgmap.DOM = newDOM  
 +
 +  
 +  wgmap.saveMapToFile('//DISKSTATION/data/wargear development/diatoms/Diatoms-out.xml')
 +  
 +
 +</code>
  
boards/diatoms/diatoms.1452486347.txt.gz ยท Last modified: 2016/01/10 23:25 by Ozyman