public void StartNewGame()
  {
    for (int i = 0; i < this.m_nCol * this.m_nRow; i++) {
      this.srcPicArray[i] = null;
    }
    for (int iNum = 0; iNum < this.m_nCol * this.m_nRow; iNum++)
    {
      this.m_map[iNum] = this.BLANK_STATE;
    }
    Random r = new Random();

    ArrayList<Integer> tmpMap = new ArrayList<Integer>();
    int randomNumber = 0;
    int numElements = 114;
    for (int i = 0; i < this.m_nCol * this.m_nRow / 4; i++)
    {
      randomNumber = r.nextInt(numElements);
      for (int j = 0; j < 4; j++) {
        tmpMap.add(Integer.valueOf(randomNumber));
      }

    }

    int nIndex = 0;
    int rIndex = 0;
    for (int i = 0; i < this.m_nRow * this.m_nCol; i++)
    {
      nIndex = r.nextInt(tmpMap.size());

      this.m_map[i] = ((Integer)tmpMap.get(nIndex)).intValue();

      rIndex = r.nextInt(3);
      this.r_map[i] = rIndex;

      tmpMap.remove(nIndex);
    }
  }