Competição: Acelerador Blokus Duo
XVI Jornadas Sobre Sistemas Reconfiguráveis, Instituto Superior Técnico/ULisboa, 10 de Fevereiro 2020

Sistema de arbitragem Blokus Duo

O sistema de arbitragem pode correr de 2 formas: usando o código fonte a compilar e uma imagem com sistema operativo para os testes finais. Os ficheiros necessários encontram-se em baixo:

Platforma

O sistema de arbitragem foi desenvolvido em FreeBSD 8.3 (amd64). Deverá funcionar em qualquer sistema baseado em POSIX (eventualmente com pequenas modificações relacionadas com a comunicação série). Utilizador/palavra-passe: blokus/blokus.

O código fonte compila e corre em Cygwin (serial_dev[] deverá ser modificado). É necessário executar o comando mode.com com2 BAUD=115200 PARITY=n DATA=8 STOP=1 antes de blokus-host.exe

Para outras platformas, é necessário modificar as entradas /dev em serial_dev[]. O init_serial() poderá ter que ser também modificado.

Instruções para configuração do sistema de arbitragem numa unidade USB

    Linux

  1. Descompactar blokus-1202.zip (apx. 748 MB) e obter o ficheiro blokus-1202.img (apx. 4GB)
  2. Usar uma pen/disco USB com capacidade superior a 3.7GB (4GB devem ser suficientes)
  3. Ligar a unidade USB a um computador com BSD/Linux, e procurar o dispositivo (/dev/daX ou /dev/sdX)
  4. Gravar a imagem na unidade USB: dd if=blokus-1202.img of=/dev/daX bs=1048576 count=4096 conv=sync
  5. Unidade USB pronta para arrancar com o sistema.

    dd pode dar um erro em algumas unidades USB com 4GB porque a imagem é ligeiramente maior que 4GB.

    Windows

  1. Descompactar blokus-1202.zip (apx. 748 MB) e obter o ficheiro blokus-1202.img (apx. 4GB)
  2. Gravar a imagem (blokus-1202.img ) na unidade USB usando a aplicação Win32DiskImager.

Teste de comunicação

A interface USB-UART aparece como /dev/cuaUx (x é o número de dispositivo no ficheiro blokus-host.c). Alguns sistemas ocupam /dev/cuaU0 e /dev/cuaU1, mas o programa do árbitro detecta a UART automáticamente.

Certifique-se que o seu sistema funciona com todos os 4 comandos:

% ./blokus-host -a 1 -1  (para jogar com uma placa vs computador)
% ./blokus-host -a 1 -1 -r (idem, mas player2 joga primeiro)
% ./blokus-host -a 1 -2  (troca player1 com player2)
% ./blokus-host -a 1 -2 -r
      

Teste ao Árbitro

Abra um navegador de Internet no endereço:

 http://localhost:11000 

Compile os programas do árbitro num terminal Cygwin:

% make	  

Sem qualquer sistema ligado, para colocar o árbitro a jogar sozinho:

 % ./blokus-host.exe  -a 1  | ./blokus-httpd.exe       

Sem qualquer sistema ligado, para o utilizador jogar iterativamente pelas duas equipas:

 % ./blokus-host.exe  -a -1  | ./blokus-httpd.exe       
Exemplo de um jogo:
Player 1: 53e0
Player 2: a8e0
Player 1: 21k7
Player 2: 94j0
Player 1: 61a0
Player 2: 71b3
Player 1: 72b0
Player 2: a1a0
Player 1: 23d2
Player 2: c1i1
Player 1: 75i1
Player 2: 63c0
Player 1: 16c0
Player 2: d3d2
Player 1: 36f1
Player 2: b5f1
Player 1: 87h0
Player 2: d7h0
Player 1: a4j0
Player 2: 8al6
Player 1: b8g0
Player 2: 57k5
Player 1: 19l4
Player 2: 39p0
Player 1: caq2
Player 2: 4cr2
Player 1: 2cr2
Player 2: bcg1
Player 1: edm0
Player 2: 7dm0
jogo_demo.txt

Ligue os dois sistemas via portos USB, e corra o árbitro:

 % ./blokus-host.exe  -3  | ./blokus-httpd.exe       

Outras versões

Pentobi win/linux/android. Instalador automático para v.12 em Windows aqui.

BlockEm win/linux

Competições anteriores

Agradecimentos / Acknowledgements

Yasunori Osana por facultar os ficheiros de suporte / Yasunori Osana for giving permission to use the support files