static void atualizaEcra(MatrizJogo mj, Comando c, Pontuacao p) { if (mj.TemAlteracoes()) { int linha = 4; for (int j = 0; j < Code1.NUMERO_LINHAS; j++) { Console.SetCursorPosition(25, linha + j); for (int k = 0; k < Code1.NUMERO_COLUNAS; k++) { Console.Write("{0} ", mj.GetMatriz(j, k).Texto.PadLeft(3)); } } mj.ResetTemAlteracoes(); } if (c.TemAlteracoes()) { int linha = 10; Console.SetCursorPosition(10, linha); Console.Write("Posição atual: {0}", new String('_', 31)); Console.SetCursorPosition(25 + (c.PosicaoAtual * 4), 10); Console.Write("#{0}#", c.PosicaoAtual + 1); c.ResetTemAlteracoes(); } if (p.TemAlteracoes()) { int linha = 12; Console.SetCursorPosition(10, linha); Console.Write("Pontuação: {0} Tempo restante: {1} ", p.Pontos, p.TempoRestante); p.ResetTemAlteracoes(); } }
static void Main(string[] args) { MatrizJogo mat = new MatrizJogo(); Comando comm = new Comando(); Pontuacao pontu = new Pontuacao() { TempoRestante = TEMPO_INICIAL }; // escreveBaseEcra(); atualizaEcra(mat, comm, pontu); // do { ComandoEnum ce = comm.Read(); atualizaEcra(mat, comm, pontu); // if (ce == ComandoEnum.Terminar) { break; } // if (mat.RolaParaBaixo(ce == ComandoEnum.ForcarRolamento)) { mat.GetLinhaDescartada(comm.PosicaoAtual).AtualizarPontuacao(pontu); } atualizaEcra(mat, comm, pontu); // Thread.Sleep(DESCANSO_CPU); }while (pontu.TerminarJogo() == false); // Console.SetCursorPosition(0, 23); // por causa do press any key to continue... Console.ReadKey(); }