Este repositório traz um jogo de Sudoku com interface gráfica, feito completamente em C/C++ utilizando a biblioteca Raylib.
O código do programa é dividido em três arquivos principais, além de dois headers:
É onde fica o algoritmo de geração da matriz do Sudoku, gerando a resposta e a matriz parcial a ser resolvida. Acompanha o header Sudoku.h, que leva as funções e variáveis necessárias ao Interface.cpp.
Contém todos os códigos referentes à interface gráfica, sendo responsável também por lidar com o estado geral do jogo, recebendo inputs, criando botões, definindo as telas a serem mostradas e chamando funções de outros arquivos.
Este arquivo lida com todo o sistema de save do programa, escrevendo e lendo arquivos tratando de jogos não terminados, tempos obtidos previamente, cores-tema escolhidas, e resolução adotada. É complementado pelo header Saving.h, que leva suas funções e variáveis ao Interface.cpp.
Para que o programa seja adequadamente compilado, é necessária a inclusão da bilblioteca gráfica Raylib. Um tutorial de instalação da biblioteca pode ser encontrado no link https://youtu.be/nFMAusIi000.
Realizando o download da biblioteca em sua pégina, basta compilá-la através do compilador já fornecido e referenciar os caminhos necessários em sua IDE. A seguir temos um exemplo das referências utilizando o Visual Studio: as regiões marcadas em negrito são os endereços dos arquivos a serem linkados.
Além disso, é importante se atentar se todos os arquivos de código necessários foram incluídos ao projeto na IDE. Já são fornecidos arquivos de projeto para o Visual Studio, se preferível, encontrados na pasta SudokuVS.
Sendo assim, basta compilar normalmente agora, tomando-se o cuidado de incluir a dll criada pelo Raylib na pasta do projeto, de forma que o executável gerado seja capaz de atuar em seu computador.
Para a execução, são necessários apenas o executável gerado e a dll Raylib da biblioteca, podendo este último ser definido como um PATH no sistema operacional, de forma a não ser mais necessário incluí-lo na pasta do jogo.