Porque não consigo ler uma string no console

23/06/2014

0

[C#]
Estou tentando ler uma string digitada no console, que fica na metade do código, mas o que acontece é que ele passa direto e exibe as informações finais.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Viernes
{
    class Program
    {
       
        static void Main(string[] args)
        {
            int xDig = 0, yDig = 0;
            char pCardeal = 'N';
          
            //coordenadas
            Console.Write("Digite as coordenadas \nx: ");
            xDig = Convert.ToInt32(Console.ReadLine());

            Console.Write("y: ");
            yDig = Convert.ToInt32(Console.ReadLine());
            
            Console.Write("Cardeal 'N' 'S' 'L' 'O': ");
            pCardeal = Convert.ToChar(Console.Read());
            pCardeal = Char.ToUpper(pCardeal);
            
            //Comandos
            Console.WriteLine("Digite alguns comandos, 'E'squerda, 'D'ireita, 'A'vançar.");
            string str = Console.ReadLine();
            str = str.ToUpper();
            char[] Comands = str.ToCharArray();
           
            //Obj
            SpaceCar sp = new SpaceCar(xDig, yDig, pCardeal);
            
            foreach (var separaLetras in Comands)
            {
                switch (separaLetras)
                {
                    case 'E':
                        sp.girarEsquerda();
                    break;
                    case 'D':
                        sp.girarDireita();
                    break;
                    case 'A':
                        sp.avancarBloco(xDig, yDig);
                    break;
                }
            }
            //Imprimindo Destino
            Console.Write("Coordenadas:   ", sp.PosicaoX,sp.PosicaoY, sp.PosicaoCardial);
            Console.WriteLine("\nPress Any Key to Exit");
            Console.ReadKey();
        }
    }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Viernes
{
    class SpaceCar
    {
        //POSICAO X
        private int _posX;
        public int PosicaoX
        {
            get { return _posX; }
            set { _posX = value; }
        }
        //POSICAO Y
        private int _posY;
        public int PosicaoY
        {
            get { return _posY; }
            set { _posY = value; }
        }
        //POSICAO CARDIAL
        private char _posCardial;
        public char PosicaoCardial
        {
            get { return _posCardial; }
            set { _posCardial = value; }
        }
        //METHODS
        public SpaceCar(int xDigitado, int yDigitado, char pCardeal)//CONSTRUTOR
        {
            _posX = xDigitado;
            _posY = yDigitado;
            _posCardial = pCardeal;
        }
        public void girarEsquerda()
        {
            switch (this.PosicaoCardial)
            {
                case 'N':
                    this._posCardial = 'O';
                    break;
                case 'L':
                    this._posCardial = 'N';
                    break;
                case 'S':
                    this._posCardial = 'L';
                    break;
                case 'O':
                    this._posCardial = 'S';
                    break;
            }
        }
        public void girarDireita()
        {
            switch (this._posCardial)
            {
                case 'N':
                    this._posCardial = 'L';
                    break;
                case 'L':
                    this._posCardial = 'S';
                    break;
                case 'S':
                    this._posCardial = 'O';
                    break;
                case 'O':
                    this._posCardial = 'N';
                    break;
            }
        }
        public void avancarBloco(int x, int y)
        {
            switch (this._posCardial)
            {
                case 'N':
                    this._posX += 0;
                    this._posY += 1;
                    break;
                case 'S':
                    this._posX += 0;
                    this._posY -= 1;
                    break;
                case 'L':
                    this._posX += 1;
                    this._posY += 0;
                    break;
                case 'O':
                     this._posX -= 1;
                    this._posY += 0;
                    break;
            }

        }       
    }
}
Fernando Arnhold

Fernando Arnhold

Responder

Post mais votado

25/06/2014

Repare que você vinha usando ReadLine e no meio usou Read, não seria isso?

Joel Rodrigues

Joel Rodrigues
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar