code: func (m *symbol) penalty2() int {
  	penalty := 0
  
  	for y := 1; y < m.symbolSize; y++ {
  		for x := 1; x < m.symbolSize; x++ {
  			topLeft := m.get(x-1, y-1)
  			above := m.get(x, y-1)
  			left := m.get(x-1, y)
  			current := m.get(x, y)
  
  			if current == left && current == above && current == topLeft {
  				penalty++
  			}
  		}
  	}
  
  	return penalty * penaltyWeight2
  }
docs: // penalty2 returns the penalty score for "block of modules in the same colour".
  //
  // m*n: score = penaltyWeight2 * (m-1) * (n-1).