Você está aqui: Java ::: Projetos Java Completos - Códigos Fonte Completos Java ::: Jogos (Games)

Como criar um Jogo da Velha em Java - Jogo completo com código fonte comentado - Versão console

Quantidade de visualizações: 6279 vezes
Faça o download do código-fonte Jogo da Velha em Java

Sobre o Jogo da Velha em Java

O Jogo da Velha, também conhecido como Tic-Tac-Toe, é um dos joguinhos mais fáceis de se programar em Java. Além disso, ele possibilita uma boa oportunidade de se entender matrizes, a estrutura switch, os laços for e while, assim como a estrutura básica presente em praticamente todos os games.

O Jogo da Velha em Java Console

Neste código fonte eu demonstro como o Jogo da Velha pode ser criado em Java usando o modo console, ou seja, em formato texto. Penso que o entendimento da lógica é mais fácil em modo console. Uma vez que você tenha aprendido todos os passos envolvidos, você poderá reproduzí-lo em modo gráfico sem muitas dificuldades.

A versão do jogo apresentado nesta dica é um jogador humano, ou seja, você, contra o computador. Não coloquei inteligência artificial nem aprendizado de máquina nos movimentos do computador. Usei apenas jogadas sorteadas. Fica como desafio você implementar jogadas inteligentes por parte do computador como forma de deixar o jogo ainda mais interessante. Por enquanto o objetivo é só o aprendizado mesmo.

Antes de continuarmos, veja uma imagem demonstrando o jogo:



Me mostra um pouco do código

Para mostrar a simplicidade do código, veja o método que registra a jogada do jogador humano:

// este método registra a jogada do jogador humano
private static void jogadaHumano(char[][] tabuleiro) {
  int jogada; // para registrar a jogada do jogador humano
	
  // repete até que a jogada seja válida
  while (true) {
    // lê a jogada do humano
    System.out.print("\nSua jogada (1 a 9): ");
    jogada = Integer.parseInt(entrada.nextLine());
    // este movimento é válido?
    if (movimentoValido(tabuleiro, jogada)){
      break;
    } 
    else{ // não é válido
      System.out.println("O número " + jogada + " não é um movimento válido.");
    }  
  }
 
  // vamos registrar esse movimento 
  registrarMovimento(tabuleiro, jogada, 'X');
}
Como posso obter este código fonte?

Os links para você baixar todas as versões deste projeto estão abaixo:

1) JOGOVELHAJC - Jogo da Velha em Java Console - NetBeans IDE - Faça o Download.

Não se esqueça: Uma boa forma de estudar o código é fazendo pequenas alterações e rodando para ver os resultados. Outra opção é começar um projeto Java do zero e ir adicionando trechos do código fonte para melhor entendimento de suas partes.

Link para compartilhar na Internet ou com seus amigos:

Java ::: Coleções (Collections) ::: ArrayList

Como retornar o índice da última ocorrência de um elemento em uma ArrayList do Java usando a função lastIndexOf()

Quantidade de visualizações: 9201 vezes
Em algumas situações nós gostaríamos de pesquisar um valor em um ArrayList e retornar o índice de sua última aparição, para o caso desse elemento estar contido mais de uma vez na coleção. Para isso nós podemos usar o método lastIndexOf().

Se o elemento pesquisado não estiver na ArrayList, o valor -1 será retornado.

Veja o código completo para o exemplo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

package estudos;

import java.util.ArrayList;

public class Estudos{
  public static void main(String[] args){
    // cria uma ArrayList que conterá strings
    ArrayList<String> nomes = new ArrayList<String>();
    
    // adiciona itens na lista
    nomes.add("Carlos");
    nomes.add("Maria");
    nomes.add("Fernanda");
    nomes.add("Osmar");
    nomes.add("Maria");    
	
    // obtém o índice da última ocorrência do
    // nome "Maria"
    int indice = nomes.lastIndexOf("Maria");

    System.out.println("O último índice do nome pesquisado é: " 
      + indice); 

    System.exit(0);
  }
}

Ao executarmos este código Java nós teremos o seguinte resultado:

O último índice do nome pesquisado é: 4


Java ::: Classes e Componentes ::: JTable

Java Swing - Como colorir o fundo das células de uma JTable baseado em seus valores

Quantidade de visualizações: 1 vezes
Nesta dica veremos como é possível criar uma classe personalizada que extende a classe JLabel e implementa a interface TableCellRenderer e usá-la como renderizador das células de uma JTable. Dessa forma conseguiremos aplicar uma cor diferente a cada célula dependendo do seu valor. Veja o resultado na figura abaixo:



Veja agora o código Java Swing completo para o exemplo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

package arquivodecodigos;

import javax.swing.*;
import java.awt.*;
import javax.swing.table.*;
 
public class Estudos extends JFrame{
  public Estudos(){
    super("Exemplo de uma tabela simples");
         
    // colunas da tabela
    String[] colunas = {"Nome", "Idade", "Sexo"};
         
    // conteúdo da tabela   
    Object[][] conteudo = {
        {"Osmar J. Silva", "32", "Masculino"},
        {"Maria Clara Gomes", "19", "Feminino"},
        {"Fernando Gomes", "15", "Masculino"},
        {"Carlos Vieira", "40", "Masculino"}
    };
         
    // constrói a tabela
    JTable tabela = new JTable(conteudo, colunas);
     
    // quero colorir o fundo das células da segunda coluna
    // se o valor encontrado for menor que 20
    TableCellRenderer tcr = new Colorir();
    TableColumn column = 
        tabela.getColumnModel().getColumn(1);
    column.setCellRenderer(tcr);
  
    tabela.setPreferredScrollableViewportSize(new 
          Dimension(350, 50));
     
    Container c = getContentPane();
    c.setLayout(new FlowLayout());
             
    JScrollPane scrollPane = new JScrollPane(tabela);
    c.add(scrollPane);
         
    setSize(400, 300);
    setVisible(true);
  }
     
  public static void main(String args[]){
    Estudos app = new Estudos();
    app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
}
 
class Colorir extends JLabel implements TableCellRenderer{
  public Colorir(){
    setOpaque(true);
  }
   
  @Override
  public Component getTableCellRendererComponent(
     JTable table, 
     Object value, boolean isSelected, boolean hasFocus,
        int row, int column){
     
     if(Integer.parseInt(value.toString()) < 20){
       setBackground(Color.YELLOW); 
     }
     else{
       setBackground(table.getBackground());        
     }
      
     setText(value.toString());
         
     return this;       
  }
   
  @Override
  public void validate() {}
  
  @Override
  public void revalidate() {}
  
  @Override
  protected void firePropertyChange(String propertyName,
     Object oldValue, Object newValue) {}
  
  @Override
  public void firePropertyChange(String propertyName,
     boolean oldValue, boolean newValue) {}  
}



Java ::: Dicas & Truques ::: Formatação de datas, strings e números

Como usar o método System.out.printf() do Java para converter um valor na base decimal para hexadecimal

Quantidade de visualizações: 10517 vezes
Nesta dica mostrarei como podemos tirar proveito do método System.out.printf() do Java 5.0 em diante para converter um valor na base decimal para hexadecimal e exibí-lo na tela.

Veja o código completo para o exemplo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

package arquivodecodigos;

public class Estudos{
  public static void main(String[] args){
    int num = 35;
   
    // exibe o valor na base hexadecimal
    System.out.printf("O decimal %d convertido para hexadecimal é %x", 
      num, num);
  }
}

Ao executar este código nós teremos o seguinte resultado:

O decimal 35 convertido para hexadecimal é 23


Desafios, Exercícios e Algoritmos Resolvidos de Java

Veja mais Dicas e truques de Java

Dicas e truques de outras linguagens

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento
Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesControle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades
Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: Delphi
6º lugar: C
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 35 usuários muito felizes estudando em nosso site.