一個(gè)C# Mines(布雷)的 代碼,新手研究一下吧,新疆軟件開發(fā)網(wǎng) m.jdtbank.com 。
using System.Collections; using System.IO; using System; namespace com.Mines { class SearchingMines { public ArrayList list = new ArrayList(); public int[,] mines = new int[10, 10]; static void Main(string[] args) { SearchingMines sm = new SearchingMines(); sm.initMines(); sm.HidenMines(); sm.FillInOtherNumber(); sm.display(); // sm.SaveTxt(); } public void initMines() { for (int i = 0; i < this.mines.GetLength(0); i++) { for (int j = 0; j < this.mines.GetLength(1); j++) { this.mines[i, j] = 0; list.Add(this.mines[i, j]); } } }
public void HidenMines() {
Random r = new Random(); for (int i = 0; i < 9; i++) { int count = this.list.Count; int number = r.Next(count); int row = number / 10; int column = number % 10; this.mines[row, column] = 9; this.list.RemoveAt(this.mines[row, column]); }
}
public void FillInOtherNumber() { try {
for (int i = 0; i < this.mines.GetLength(0); i++) { for (int j = 0; j < this.mines.GetLength(1); j++) {
int left = j - 1; int right = j + 1; int top = i - 1; int bottom = i + 1; if (this.mines[i, j] != 9) { if(top>=0 && left>=0)//左邊和上邊 { if (this.mines[top, left] == 9)//判斷左上方是否為9 { mines[i,j] += 1; } } if(top>=0 && right<10)//右邊和上邊 { if (this.mines[top, right] == 9)//判斷該點(diǎn)的右上方是否 { mines[i,j] += 1; } } if(top>=0)//最上邊 { if (this.mines[top, j] == 9)//上邊的那個(gè)是否為9 { mines[i,j] += 1; } } if(left>=0)//最左邊 { if (this.mines[i, left] == 9)//看左邊那個(gè)是否為9 { mines[i,j] += 1; } } if(right<10)//最右邊 { if (this.mines[i, right] == 9)//看右邊是否為9 { mines[i,j] += 1; } } if(bottom<10 && left >=0)//底部和左邊 { if (this.mines[bottom, left] == 9)//左下方是否為9 { mines[i,j] += 1; } }
if(bottom<10 && right<10)//右下方 { if (this.mines[bottom, right] == 9)右下方 { mines[i,j] += 1; } } if(bottom<10)//底部 { if (this.mines[bottom, j] == 9)//底部是否為9 { mines[i,j] += 1; } }
// if (left < 0)//左邊 // { // if (this.mines[i, right] == 9)//右側(cè)是否為9 // { count += 1; } // if (bottom < 10 && bottom > 0)//如果底邊的范圍是除過頭節(jié)點(diǎn)和尾節(jié)點(diǎn) // { // if (this.mines[bottom, j] == 9)//底部是否為9 // { count += 1; } // if (this.mines[bottom, right] == 9)//右下是否為9 // { count += 1; } // } // if (top > 0 && top < 10)//上邊除過頭結(jié)點(diǎn)和尾節(jié)點(diǎn) // { // if (this.mines[top, j] == 9)//頭上那個(gè)點(diǎn)是否為9 // { count += 1; } // if (this.mines[top, right] == 9)//右上是否為9 // { count += 1; } // } // } // if (j == this.mines.GetLength(0)) // { // if (i == 0)
// { // if (this.mines[i, j - 1] == 9) // { count += 1; } // if (this.mines[i - 1, j - 1] == 9) // { count += 1; } // if (this.mines[i - 1, j] == 9) // { count += 1; } // // } // if(i>0&&i<this.mines.GetLength(1)) // { // if(this.mines[i+1,j-1]==9) // {count+=1;} // if (this.mines[i + 1, j] == 9) // { count += 1; } // if (this.mines[i, j - 1] == 9) // { count += 1; } // if (this.mines[i - 1, j] == 9) // { count += 1; } // if (this.mines[i - 1, j - 1] == 9) // { count += 1; } // } // if (i == this.mines.GetLength(1)) // { // if (this.mines[i - 1, j - 1]==9) // { count += 1; } // if (this.mines[i - 1, j] == 9) // { count += 1; } // if (this.mines[i, j - 1] == 9) // { count += 1; } // } // }
// this.mines[i, j] = count; } } } } catch (Exception ex) { Console.WriteLine(ex.Message); } }
public void display() { for (int i = 0; i < this.mines.GetLength(0); i++) { for (int j = 0; j < this.mines.GetLength(1); j++) { Console.Write(this.mines[i, j] + " "); } Console.Write("n"); }
}
public void SaveTxt() { StreamWriter sw = new StreamWriter(@"c:abc.txt"); for (int i = 0; i < this.mines.GetLength(0); i++) { for (int j = 0; j < this.mines.GetLength(1); j++) { sw.Write(this.mines[i, j] + " "); } sw.WriteLine(); } sw.Flush(); sw.Close();
}
}
}
in
|