title: Minesweeper algorithm
body: <p>I am about to design my own minesweeper in Java.
  And while analyzing the real windows 7 minesweeper, I came across this situation.</p>
  
  <p><img src="https://i.stack.imgur.com/yMV4X.png" alt="1 or 0 ?"></p>
  
  <p>The uncovered square(pointed by arrow), may be 1 or mayn't have any number(an empty square).
  But in windows 7 minesweeper, this square has 1. </p>
  
  <p><strong>hypothesis: And by analyzing I came to know that all the mines are always surrounded by numbers.</strong> </p>
  
  <p>If I go with my hypothesis, then no other go, the uncovered square should be 1.</p>
  
  <p>And designing the logic for the minesweeper will be easier, if I follow this hypothesis.
  since,</p>
  
  <p>step 1: Randomly assign the squares with mines.(Make the specific (i,j)element in the 2D array to be -1).</p>
  
  <p>step 2: Number each square, equal to the number of mines surrounding it. (In this case, the hypothesis became true).</p>
  
  <blockquote>
    <p>And my questions are, </p>
    
    <ol>
    <li>What wrong if the uncovered square is an empty square?</li>
    <li>Does that hypothesis is the rule in minesweeper?</li>
    <li>Does I have to follow the hypothesis, to make my coding simpler
    to implement?</li>
    <li>*If I proposed a new minesweeper with the rule against the
    hypothesis, does my new minesweeper will end up in instability?Is so,how?</li>
    </ol>
  </blockquote>
  
  <p>*->I am not intentionally breaking the rules, I try to removing redundant hint/keys to the user.</p>