Download the PHP package schachbulle/contao-schachcomputer-bundle without Composer

On this page you can find all versions of the php package schachbulle/contao-schachcomputer-bundle. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package contao-schachcomputer-bundle

Schachcomputer für Contao

Mitglieder und Gäste spielen im Browser gewertete Partien gegen die Schach-Engine Stockfish. Aus den Partien entstehen Wertungszahlen und daraus Ranglisten. Läuft unter Contao 4.13 und Contao 5.7 (PHP 8.1 bis 8.4).

Funktionen

Einrichtung

  1. Bundle installieren und die Datenbank aktualisieren (contao:migrate oder Contao Manager).
  2. Im Backend unter Schachcomputer → Bedenkzeiten Bedenkzeiten anlegen und veröffentlichen, etwa „3+2" (Blitz), „10+5" (Schnellschach), „30+0" (Langpartie).
  3. Frontend-Module anlegen und auf Seiten einbinden:
    • Schachcomputer: Spielen
    • Schachcomputer: Rangliste – Liste (aktuell, ewig, Monat), Klasse, Anzahl
    • Schachcomputer: Eigene Partien – Anzahl je Seite
    • Schachcomputer: Wertungsverlauf
  4. Cronjob einrichten. Verlassene Partien, Monatsranglisten und das Aufräumen alter Gastpartien laufen über Contaos Cron. Ohne echten Cronjob läuft er nur, wenn jemand die Seite aufruft; Ergebnisse stimmen dann trotzdem, werden aber später verrechnet. Empfohlen, minütlich:

  5. Content-Security-Policy. Wer eine CSP setzt (ab Contao 5.3 je Startpunkt einstellbar), muss in script-src zusätzlich 'wasm-unsafe-eval' erlauben. Sonst startet Stockfish nicht, und es beginnt keine gewertete Partie; die Seite zeigt dann einen Hinweis.
  6. Seiten-Cache. Die Bedenkzeiten stehen im Quelltext der Seite mit dem Modul „Spielen“. Bei eingeschaltetem Seiten-Cache erscheinen neue oder geänderte Bedenkzeiten erst, wenn der Cache abgelaufen ist oder geleert wird. Für die Ranglisten gilt dasselbe.

Spielregeln und Wertung

Zur Skala: Stockfish hat seine Stärke ab 1320 an der CCRL-Blitzliste geeicht. Das sind keine DWZ-Werte: Stockfish mit 1500 spielt stärker als ein Vereinsspieler mit DWZ 1500. Die Stufen unter 1400 sind nachgebaut (begrenzte Suchtiefe und Zufallszüge) und geschätzt.

Bekannte Grenzen: Die Engine rechnet im Browser des Spielers. Wer gezielt manipuliert, könnte ihr schlechte Züge unterschieben; der Server prüft nur, ob sie regelgerecht sind. Ebenso kann ein manipulierter Browser den fertigen Engine-Zug bis knapp 60 Sekunden zurückhalten, während die Uhr des Spielers steht; das kostet die Uhr des Computers und kann ihn bei knapper Uhr sogar auf Zeit verlieren lassen. Auch über ein Remisangebot entscheidet Stockfish im Browser: Ein manipulierter Browser kann ein Angebot annehmen lassen; der Server prüft nur Uhr, Zugzahl und Abstand zum letzten Angebot. Für eine Vereinsseite ist das vertretbar.

Statistik im Backend

Der Knopf Statistik oben in Schachcomputer → Partien zeigt, wie der Schachcomputer genutzt wird:

Gezählt wird stündlich in tl_schachcomputer_statistik (eine Zeile je Stunde, Art und Mitglied/Gast), ab der Installation. Übungspartien von Gästen laufen nur im Browser und werden nicht erfasst. Die beiden Tabellen beruhen auf den Partien der Mitglieder, weil Gastpartien nach einem Tag gelöscht werden.

Mitgelieferte Programme

Programm Fassung Lizenz
Stockfish über stockfish.js (lite, single-threaded) 19.0.0 GPL-3.0
cm-chessboard 8.14.2 MIT
chess.js 1.4.0 BSD-2-Clause
p-chess/chess (über Composer) ^1.2 MIT

Stockfish läuft als eigenständiges Programm in einem Web Worker; das Bundle spricht mit ihm nur über das UCI-Textprotokoll. Lizenztext und Quellenangabe liegen unter src/Resources/public/vendor/stockfish/.

Stockfish lädt seine .wasm-Datei nur, wenn der Server sie als application/wasm ausliefert. Fehlt dieser Typ (etwa bei nginx ohne passenden Eintrag in mime.types), lädt das Bundle die Datei selbst und reicht sie mit dem richtigen Typ als blob:-Adresse an Stockfish weiter. Das funktioniert ohne Zutun; besser ist trotzdem der richtige Typ, bei nginx etwa types { application/wasm wasm; }. Wer dann noch eine Content-Security-Policy setzt, muss in connect-src auch blob: erlauben.

Datenschutz

Gespeichert werden je Partie die Züge, die Denkzeiten und das Ergebnis, bei Mitgliedern dazu Wertung und Wertungsverlauf. Öffentliche Ranglisten zeigen Namen nur als „Vorname N." (hat ein Mitglied keinen Namen eingetragen, den Benutzernamen). Beim Löschen eines Mitglieds (Backend oder „Konto schließen") werden alle seine Daten gelöscht. Gastpartien werden einen Tag nach ihrem Ende gelöscht.

Entwicklung

Die PHP-Tests laufen gegen SQLite im Arbeitsspeicher, die JavaScript-Tests mit Node (samt Rauchtest der mitgelieferten Engine).


All versions of contao-schachcomputer-bundle with dependencies

PHP Build Version
Package Version
Requires php Version ^8.1
contao/core-bundle Version ^4.13 || ^5.7
p-chess/chess Version ^1.2
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package schachbulle/contao-schachcomputer-bundle contains the following files

Loading the files please wait ...