Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- namespace Velha
- {
- class Program
- {
- string[,] inputs = new string[,]{{ "-", "-", "-" }, { "-", "-", "-" }, { "-", "-", "-" }};
- public static void Main(string[] args)
- {
- int s = 0;
- Program p = new Program();
- while (true)
- {
- p.Render();
- Console.Write("Digite o lugar: ");
- string ins = Console.ReadLine().Trim();
- if (ins == "exit")
- break;
- int i = int.Parse(ins) - 1;
- int linha = (int) Math.Floor((decimal) (i / 3));
- int coluna = i % 3;
- p.inputs[linha, coluna] = ++s % 2 == 0 ? "O" : "X";
- }
- }
- public void Render()
- {
- Console.Clear();
- // Primeiro loop serve pra repetir os desenhos das colunas
- // >>> | |
- // No fim da repetição colocamos -------
- // >>> | |
- // >>>---------
- // Ai o loop repete e faz o mesmo
- // vai servir também pra pegar a linha da matriz
- for (int x = 0; x < 3; x++)
- {
- // O segundo é pra desenhar a quantidade de caracteres em vertical
- // por exemplo
- // | |
- // | |
- // | |
- // No exemplo foi 3, mas no código vai fazer isso 5 vezes
- for (int y = 0; y < 5; y++)
- {
- // Salvamos todos os caracteres na string buff
- // para que possamos depois mostrar na tela
- // buff = buffer
- string buff = "";
- int coluna = 0;
- // Esse for é o que realmente desenha a linha
- // no caso teremos no máximo 30 caracteres na linha
- for (int z = 0; z < 30; z++)
- {
- // Se Z é maior que 0 e também é divisivel por 10
- // então desenhamos um "|", isso quer dizer que
- // no caractere 10 e no caractere 20 desenharemos a "|"
- // e no resto caractere de espaço
- if (z > 0 && z % 10 == 0)
- {
- buff += "|";
- // Quando der | então pulamos para a próxima coluna
- coluna++;
- } else {
- // Y = 2 é igual a metade linha vertical, exemplo:
- //
- // | |
- // m | m | m
- // | |
- //----------------
- // | |
- // m | m | m
- // | |
- //----------------
- // | |
- // m | m | m
- // | |
- //
- // caso z seja maior que 0 e divisivel por 5 então temos que
- // ver se há alguma jogada
- //
- if (y == 2 && z > 0 && z % 5 == 0) {
- // Se há uma jogada nesse lugar inserimos X ou O
- if (inputs[x, coluna] != "-") {
- buff += inputs[x, coluna];
- } else {
- // Se não tem jogada então inserimos um espaço em branco
- buff += " ";
- }
- } else {
- buff += " ";
- }
- }
- }
- Console.WriteLine(buff);
- }
- // Criamos as divisorias
- // | |
- // >> ----------
- if (x < 2) {
- string buff = "";
- for (int i = 0; i < 30; i++)
- buff += "-";
- Console.WriteLine(buff);
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement