public GameProcess() { //初始化 baseshape = CreateShape.Create(); ArraySum = baseshape.ArrayBox; temp = baseshape; }
//自动下降 private void AutoDown() { //当图形到低,重新赋值 for (int i = 18; i > 0; i--) { for (int j = 1; j < 19; j++) { if (f) { temp = CreateShape.Create(); f = false; } if (ArraySum[i, j] == 1 && ArraySum[i + 1, j] == 3 || ArraySum[i, j] == 1 && ArraySum[i + 1, j] == 2 ) { for (int ii = 1; ii < 19; ii++) { for (int jj = 1; jj < 19; jj++) { if (ii >= i && ArraySum[ii, jj] == 1) { ArraySum[ii, jj] = 2; } } } //产生图形 if (Judge()) { f = true; baseshape = temp; Flag = 1; } } } } for (int i = 18; i > 0; i--) { for (int j = 1; j < 19; j++) { if (ArraySum[i, j] == 1 && ArraySum[i + 1, j] == 2 || ArraySum[i, j] == 1 && ArraySum[i + 1, j] == 3 ) { return; } } } for (int i = 18; i > 0; i--) { for (int j = 1; j < 19; j++) { if (ArraySum[i, j] == 1) { ArraySum[i + 1, j] = 1; ArraySum[i, j] = 0; } } } }
//重置游戏 private void ResetArray() { Score = 0; for (int i = 1; i < 19; i++) { for (int j = 1; j < 30; j++) { if (ArraySum[i, j] == 1 || ArraySum[i, j] == 2) { ArraySum[i, j] = 0; } } } baseshape = CreateShape.Create(); ArraySum = baseshape.ArrayBox; }