Advertisement
Guest User

JOGO DA VÉIA

a guest
Nov 13th, 2019
188
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.06 KB | None | 0 0
  1. using System;
  2.  
  3. namespace Velha
  4. {
  5.     class Program
  6.     {
  7.         string[,] inputs = new string[,]{{ "-", "-", "-" }, { "-", "-", "-" }, { "-", "-", "-" }};
  8.        
  9.         public static void Main(string[] args)
  10.         {
  11.             int s = 0;
  12.             Program p = new Program();
  13.            
  14.             while (true)
  15.             {
  16.                 p.Render();
  17.                
  18.                 Console.Write("Digite o lugar: ");
  19.                
  20.                 string ins = Console.ReadLine().Trim();
  21.                 if (ins == "exit")
  22.                     break;
  23.                
  24.                 int i = int.Parse(ins) - 1;
  25.                 int linha = (int) Math.Floor((decimal) (i / 3));
  26.                 int coluna = i % 3;
  27.                 p.inputs[linha, coluna] = ++s % 2 == 0 ? "O" : "X";
  28.             }
  29.         }
  30.        
  31.         public void Render()
  32.         {
  33.             Console.Clear();
  34.            
  35.             // Primeiro loop serve pra repetir os desenhos das colunas
  36.             // >>>  |  |  
  37.             // No fim da repetição colocamos -------
  38.             // >>>  |  |
  39.             // >>>---------
  40.             // Ai o loop repete e faz o mesmo
  41.             // vai servir também pra pegar a linha da matriz
  42.             for (int x = 0; x < 3; x++)
  43.             {
  44.                 // O segundo é pra desenhar a quantidade de caracteres em vertical
  45.                 // por exemplo
  46.                 //     |     |
  47.                 //     |     |
  48.                 //     |     |
  49.                 // No exemplo foi 3, mas no código vai fazer isso 5 vezes
  50.                 for (int y = 0; y < 5; y++)
  51.                 {
  52.                     // Salvamos todos os caracteres na string buff
  53.                     // para que possamos depois mostrar na tela
  54.                     // buff = buffer
  55.                     string buff = "";
  56.                    
  57.                     int coluna = 0;
  58.                    
  59.                     // Esse for é o que realmente desenha a linha
  60.                     // no caso teremos no máximo 30 caracteres na linha
  61.                     for (int z = 0; z < 30; z++)
  62.                     {      
  63.                         // Se Z é maior que 0 e também é divisivel por 10
  64.                         // então desenhamos um "|", isso quer dizer que
  65.                         // no caractere 10 e no caractere 20 desenharemos a "|"
  66.                         // e no resto caractere de espaço                     
  67.                         if (z > 0 && z % 10 == 0)
  68.                         {
  69.                             buff += "|";
  70.                            
  71.                             // Quando der | então pulamos para a próxima coluna
  72.                             coluna++;
  73.                            
  74.                         } else {
  75.                             // Y = 2 é igual a metade linha vertical, exemplo:
  76.                             //
  77.                             //    |     |    
  78.                             //  m |  m  |  m
  79.                             //    |     |
  80.                             //----------------
  81.                             //    |     |  
  82.                             //  m |  m  |  m
  83.                             //    |     |
  84.                             //----------------
  85.                             //    |     |
  86.                             //  m |  m  |  m
  87.                             //    |     |                          
  88.                             //
  89.                             // caso z seja maior que 0 e divisivel por 5 então temos que                          
  90.                             // ver se há alguma jogada
  91.                             //
  92.                             if (y == 2 && z > 0 && z % 5 == 0) {
  93.                                
  94.                                 // Se há uma jogada nesse lugar inserimos X ou O
  95.                                 if (inputs[x, coluna] != "-") {
  96.                                     buff += inputs[x, coluna];
  97.                            
  98.                                 } else {
  99.                                     // Se não tem jogada então inserimos um espaço em branco
  100.                                     buff += " ";
  101.                                 }
  102.                             } else {
  103.                                 buff += " ";
  104.                             }
  105.                         }
  106.                     }
  107.                    
  108.                     Console.WriteLine(buff);
  109.                 }
  110.                
  111.                 // Criamos as divisorias
  112.                 //       |   |
  113.                 // >> ----------
  114.                 if (x < 2) {
  115.                     string buff = "";
  116.                    
  117.                     for (int i = 0; i < 30; i++)
  118.                         buff += "-";
  119.                    
  120.                     Console.WriteLine(buff);
  121.                 }
  122.             }
  123.         }
  124.     }
  125. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement