예제 #1
0
 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();
     }
 }
예제 #2
0
        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();
        }