Jeu pour les programmeurs FuncBall

Beaucoup, comme moi, aiment les simulations de football et beaucoup sont accros à la programmation. Une fois, en 2004, après avoir suffisamment joué au FIFU, j'ai pensé qu'il serait bien de combiner mes deux hobbies dans un jeu dans lequel les joueurs seraient contrôlés non pas à la main, mais par un script écrit pour eux. Une sorte de jeu pour les programmeurs , à la "RoboCup Simulation Soccer", uniquement à leur manière. J'étais alors un programmeur débutant et j'ai déjà écrit quelques jeux simples, mais je ne pouvais pas pleinement réaliser mon idée, car je ne savais pas comment écrire un interprète approprié pour le langage de programmation du lecteur. Il y a maintenant plus de jeux pour les programmeurs, mais je n'en ai pas trouvé un que je voulais, et après plusieurs années et des tonnes de code écrit, j'ai décidé de revenir à mon ancienne idée.

Le jeu s'est avéré comme je le voulais - funcball.com .

jeu pour les programmeurs FuncBall

  1. Pour chacun des 4 joueurs, un code est écrit à partir des conditions et actions, qui est effectué toutes les 50 ms.
  2. Chaque joueur ne contrôle que lui-même et n'a pas accès à la mémoire des autres, mais peut leur donner des signaux. La mémoire est implémentée par des drapeaux.
  3. Tous les joueurs se déplacent à la même vitesse constante, mais celui avec le ballon est légèrement plus lent. Pas de gardiens de but.
  4. Les codes des joueurs sont exécutés de manière aléatoire. Le code introduisant la balle depuis le centre est exécuté en premier.
  5. La vitesse et la durée du jeu peuvent être modifiées. Il est possible d'enregistrer des matchs.
  6. J'ai essayé de rendre la langue aussi claire que possible pour les débutants. L'écriture de vos fonctions n'est pas nécessaire, car intégré vous permet de programmer presque tous les comportements des joueurs.
  7. Il est possible de rivaliser avec d'autres équipes sur le site Web du jeu.

Syntaxe du langage traditionnel:

Exemple de code FuncBall

Il existe une forme d'écriture sans crochets, plus courante pour les non-programmeurs:

Exemple de code FuncBall

Voici un autre exemple:

Exemple de code FuncBall

Dans ce cas, il est vérifié que si le ballon n'est pas avec le troisième joueur, courez ensuite jusqu'au 10e carré du terrain. Le symbole dollar quitte le script.

L'imbrication est prise en charge et encouragée:

Exemple de code FuncBall

Dans cet exemple, il existe une condition "player3_opened". Il s'agit d'une fonction avec l'inclusion d'un argument (numéro à 3 joueurs) dans le nom, qui à mon avis est compréhensible et lisible.

Les soi-disant macros peuvent être utilisées dans le code, au lieu desquelles les valeurs correspondantes sont remplacées lors de l'exécution. Exemple de passe lors du déplacement vers le joueur 4:

Exemple de code FuncBall

[X4 + 50] est la coordonnée X du joueur 4 augmentée de 50, et [Y4] est sa coordonnée Y. Avant d'exécuter cette commande, les macros entre crochets seront remplacées par des valeurs spécifiques et ressembleront, par exemple, à ceci: send_ball: 254.190.

Les macros peuvent utiliser des fonctions de macro intégrées. Exemple, si la distance du joueur au but de l'adversaire est inférieure à 150 pixels, alors frappez au but:

Exemple de code FuncBall

X et Y seront remplacés par les coordonnées du joueur, et D (X, Y, 559.188) sera remplacé par la distance calculée de ce point au point avec les coordonnées 559.188 (coordonnées du but). Si elle est inférieure à 150, alors la macro sera remplacée par True (True), et sinon, par False (False), et il se révélera: If (True) {beat_on_ tours}.

J'ai décidé de laisser le champ sous la forme horizontale habituelle. L'origine est standard - le coin supérieur gauche. Lors de la programmation des joueurs, nous devons supposer qu'ils commencent sur la moitié gauche du terrain. Le nombre de leurs joueurs est 1-4, et ceux des autres 5-8. Lorsque vous jouez à droite, toutes les coordonnées, les nombres carrés, les angles et les nombres de joueurs sont reflétés, c'est-à-dire l'équipe jouera exactement la même chose que dans la moitié gauche.

L'éditeur vous permet de ne pas écrire tout le code avec vos mains, mais d'insérer les fonctions nécessaires en cliquant. Il y a de l'aide pour chaque fonction.

Éditeur d'équipe FuncBall

Lorsque l'équipe est prête, elle peut être téléchargée sur le serveur (à partir de l'éditeur du jeu). Après cela, elle participera à la saison régulière. Toutes les équipes chargées joueront entre elles, et les résultats et les records des matchs seront publiés sur le site. La fréquence des championnats dépend de l'intérêt des participants. Alors qu'un ensemble d'équipes pour le premier championnat.
Sur le site, vous pouvez également commander des matchs à tout moment avec des équipes sélectionnées. Les équipes sont immédiatement envoyées automatiquement à un serveur distinct, où les matchs sont joués, et leurs enregistrements sont renvoyés, que vous pouvez ensuite télécharger et regarder.

Alors, j'invite tout le monde à jouer ! Je pense qu'il y a beaucoup de gens qui pourraient être intéressés par un tel projet, et j'espère que cet article vous aidera à les trouver.

Source: https://habr.com/ru/post/fr481428/


All Articles