Skip to content

Tema d'esame per il corso di Tecniche di calcolo per la fisica

License

Notifications You must be signed in to change notification settings

andrea-orione/scacchi-TCF

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SCACCHI 1 vs 1
Tema d'esame per il corso di Tecniche di calcolo per la fisica

Università di Torino
A.A. 2023/2024
Marchetti Luca, Orione Andrea, Pusterla Paolo


INTRODUZIONE

Questo progetto ha lo scopo di creare un programma che permetta di giocare a scacchi. In particolare, si vuole progettare un programma che, dati due giocatori, dia la possibilità di:

  1. visualizzare nel terminale lo stato attuale della scacchiera;
  2. effettuare una mossa;
  3. valutare lo stato del gioco, per verificare se la partita è finita;
  4. cambiare il modo di visualizzazione tra le seguenti possibilità
    • normale: utilizzando caratteri ASCII
    • semplificata: utilizzando solo lettere e caratteri della tastiera
    • colorata: utilizzando stringhe ANSI per cambiare il colore di sfondo dei caratteri in modo da avere una scacchiera colorata
    • invertita: con lo stesso settaggio della normale ma con i colori invertiti (adatta a terminali con sfondo chiaro)

L'esecuzione della mossa consiste nei seguenti passi:

  1. prendere in input una mossa in notazione UCI (Universal Chess Interface);
  2. controllare che la notazione della mossa indicata sia valida;
  3. controllare che la mossa indicata sia realizzabile;
  4. eseguire la mossa;
  5. valutare il nuovo stato della partita, controllando se è: scacco matto, stallo, patta per ripetizione o patta per mancanza di pezzi.

La notazione UCI è costruita nel modo seguente:

  • Indicare la casella di partenza con lettera e numero (da a1 a h8) e la casella di arrivo nello stesso modo, in una stringa senza spazi. L'arrocco e la cattura seguono la stessa formattazione
  • Per la promozione apporre alla stringa indicata sopra il carattere corrispondente al tipo di pezzo in cui si vuole promuovere (i caratteri validi sono /r/, /n/, /b/, /q/ in maiuscolo o minuscolo)

Esempi di notazione valida sono i seguenti:

  • e2e4
  • e1g1 (per l'arrocco di re del bianco)
  • b7b8Q (per la promozione del pedone bianco in regina)

COME COMPILARE ED ESEGUIRE

Innanzitutto è necessario assicurarsi di avere una versione di CMake superiore a 3.26 installata e funzionante sul proprio computer. Si noti che è possibile abbassare la versione minima di CMake richiesta modificando il file CMakeLists.txt.

MacOS e Linux

Seguire i passaggi elencati.

  1. Clonare la repository sul proprio computer.
  2. Navigare da terminale fino alla directory dove è stato clonato il progetto.
  3. Creare una nuova directory build, scrivendo:
    mkdir build
  4. Navigare dentro la directory appena creata e generare i build files:
    cmake ..
  5. Compilare e linkare il progetto:
    make -j N
    dove N va sostituito con il numero di threads che si vogliono utilizzare (scrivere solamente make per usare un solo thread).
  6. Eseguire l'eseguibile generato da CMake:
    ./scacchi

Diagrammi UML

Per vedere lo Use Case Diagram, il Class Diagram ed i diagrammi di flusso in versione originale, scaricare UMLet ed aprire i file .uxf con tale applicazione. In alternativa, una versione in formato .pdf è disponibile nella cartella UML.

About

Tema d'esame per il corso di Tecniche di calcolo per la fisica

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •