Programme d'intelligence artificielle pour PC. L'intelligence artificielle dans les programmes évolue

Dernièrement Heure Samsung fournit des services communication vocale basé sur l'intelligence artificielle, que ses clients peuvent utiliser dans tous les appareils et produits Samsung, des smartphones aux téléviseurs en passant par les machines à laver.

Samsung est le premier fabricant mondial de smartphones fonctionnant avec le logiciel Android gratuit de Google. L'un des principaux produits phares Appareils Samsung cette année, c'était le smartphone Galaxy S8, équipé d'une intelligence artificielle (IA). Les représentants de l'entreprise et de la startup Viv qu'elle a acquise l'ont annoncé lors d'une conférence de presse à Séoul.

Dans cette revue, nous examinerons quelques applications pour Téléphones Android, qui sont l’intelligence artificielle (IA).

Le recours à l’intelligence artificielle se développe. L’intelligence artificielle peut rendre notre vie meilleure et plus facile. Voici une liste des meilleurs applications pour l'intelligence artificielle, que vous pouvez utiliser sur votre smartphone Android.

Nous savons tous que l’utilisation de l’intelligence artificielle se développe. L’IA peut rendre notre vie meilleure et plus facile. Actuellement, l’utilisation traditionnelle de l’IA repose sur des applications intelligentes holographiques qui tentent de servir d’assistant sur les téléphones mobiles.

Robin - Assistant vocal IA

Robin est à toi assistant vocal sur la route, il te le lira des messages texte, informations locales, navigation GPS et même des blagues. Il a également plus de personnalité que les autres produits de traitement vocal, assistants, chats ou robots. Robin donne à votre smartphone un caractère plus intelligent.

Google Allo est une application de messagerie intelligente qui vous aide à parler davantage et à en faire plus. La meilleure partie de cette application est qu'elle vous aidera facilement à résoudre vos tâches. Cette application répond non seulement à vos questions, mais elle peut même faire des blagues.

Cortana est une application célèbre parmi toutes Utilisateurs Windows. Une application qui était auparavant disponible sur Téléphone Windows, désormais disponible sur Android. Vous pouvez utiliser Cortana pour envoyer e-mails, en recherchant les produits dont vous avez besoin sur Internet.

HOUND - recherche vocale et assistant

Chien- La meilleure façon recherchez par votre voix. Le moyen le plus rapide et le plus simple d'obtenir les services d'information, de divertissement et de communication que vous souhaitez, Hound est conçu pour votre vie bien remplie, vous permettant d'obtenir ce dont vous avez besoin et de passer à autre chose. Cette application est similaire à Recherche vocale Google.

Nouvelles récentes

Récent est une application d'actualités intelligente qui fournit vos actualités. Il est alimenté par une intelligence artificielle qui apprend vos intérêts, suggère des articles pertinents et suggère des sujets que vous pourriez vouloir lire. C'est le moyen le plus rapide et le meilleur de rester informé des sujets que vous aimez.

Quand il est sorti en 2011 nouveau modèle iPhone, beaucoup ont été surpris par une fonctionnalité inhabituelle appelée Siri. Il serait plus exact de parler du nom de Siri, car le programme d'intelligence artificielle était doté d'une personnalité féminine. L’« assistant intelligent » comprenait la voix humaine et exécutait des commandes, par exemple « Siri, compose le numéro de ta femme » ou « Siri, règle l’alarme à 6h30 ». Elle pouvait répondre à certaines questions de manière extraordinaire, comme « Siri, Dieu existe-t-il ? Pour cette époque, c’était assez inhabituel. Cependant, les limites de la technologie sont vite devenues évidentes. Siri n'exécutait que les commandes les plus simples, mais n'était par ailleurs qu'une « extension » vocale du moteur de recherche Internet, y dirigeant la requête.

Après la mort de Steve Jobs, les développeurs de Siri ont créé une nouvelle société, Viv Labs, qui travaille sur une version beaucoup plus avancée de " assistant intelligent" nommé Viv.

DANS Programme Viva mettre en œuvre un système d'auto-apprentissage et de génération de code de programme à la volée. Le résultat devrait être un tout nouveau type d’IA. En répondant aux questions de millions d’utilisateurs depuis un serveur central, se formera progressivement une sorte de « cerveau global » qui comprendra tout Domaine et le jargon, relieront tous les concepts et révéleront le sens de n'importe quelle question. Et, bien entendu, il y répondra de la manière la plus adéquate.

Viv fonctionne comme ça. Ayant reçu une demande du type « Sur le chemin du retour chez mon frère, je veux acheter un vin bon marché adapté aux lasagnes », elle l'analyse en plusieurs parties et compile programme unique qui utilise différentes sources informations provenant d'Internet, notamment une carte de la région, une base de données de magasins, un guide culinaire et une base de données sur les prix des vins. Tout se fait très rapidement et en 0,05 seconde, Viv fournit une liste des cavistes appropriés sur le chemin de votre frère et les noms des vins souhaités.

Une analyse plus détaillée de cette demande est présentée dans le diagramme.

Les grands principes qui guident les développeurs : Viv doit se former seul, en répondant aux questions des utilisateurs et doit le faire en continu, devenant chaque jour plus intelligent. Plus les gens communiquent avec " assistant numérique" - plus sa base de connaissances se développe rapidement. Par conséquent, les développeurs ne veulent pas donner le moteur à une seule entreprise, mais veulent l'accorder sous licence à tout le monde, afin que l'IA soit accessible depuis chaque téléviseur et chaque téléphone mobile.

La tâche consistant à analyser et à comprendre correctement le langage humain est bien entendu difficile. Mais Viv Labs n’est pas le seul à travailler sur sa solution. Par exemple, récemment société Google pf a acheté DeepMind, une entreprise travaillant à peu près dans la même zone, pour 500 millions de dollars. Il existe également le supercalculateur IBM Watson et d'autres projets similaires. En général, l’intelligence artificielle avec un auto-apprentissage constant est peut-être plus proche qu’on ne le pense.

Le système d'intelligence artificielle ELIS est logiciel capable de parler comme un humain dans un langage simple, gérer les appareils et apprendre. En utilisant ce programme, vous pouvez communiquer avec un ordinateur et interagir avec le monde physique. Le programme utilise également la connectivité Arduino pour créer des systèmes Maison intelligente, automatisation, etc.

Téléchargez le programme d'intelligence artificielle ALICE

Description:

Programme d'intelligence artificielle ALICE - Electroniquement Logique Système intelligent. Le système d'intelligence artificielle ELIS est un programme. C'est un logiciel qui peut parler comme une personne dans un langage simple, contrôler dispositifs, et aussi apprendre. Ce système n'est pas un assistant, puisque l'accent est mis sur le développement d'un système humanoïde capable d'apprendre comme un enfant et de mener un dialogue éclairé.

En utilisant ce programme, vous pouvez communiquer avec ordinateur, et interagissent également avec le monde physique. Le programme utilise également la connectivité Arduino pour créer des systèmes de maison intelligente, des systèmes d'automatisation, etc.

Système d'intelligence artificielle ELIS est construit sur un principe modulaire. Le système est universel et ses fonctionnalités peuvent être étendues à l'aide modules. Les modules peuvent être différents, du simple au complexe.

Le programme d'intelligence artificielle ALICE mène de manière indépendante un dialogue avec une personne.

Elle peut entamer un dialogue de manière autonome, elle peut le faire plusieurs fois, ce qui la distingue déjà des assistants vocaux qui travaillent selon une structure questions-réponses. Le programme d’intelligence artificielle ALICE prend sa propre décision en fonction de ce que dit une personne, et si elle ne le sait pas, elle peut être entraînée.

Grâce au dialogue avec l'utilisateur, le système apprend tout seul. Le système est capable de mémoriser plusieurs réponses à une ou plusieurs questions et d'avoir plusieurs questions pour une ou plusieurs réponses.

Le programme d'intelligence artificielle ALICE est entièrement compatible avec la plateforme Arduino, vous pouvez donc contrôler n'importe quel appareil. Vous pouvez demander au système d'allumer la lumière, le système vous demandera où exactement l'allumer, mais vous pouvez demander d'allumer la lumière immédiatement à un certain endroit, puis il ne demandera plus.

Le programme d'intelligence artificielle ALICE est également capable d'exécuter applications tierces etc.

Modules:

DANS actuellement le programme d'intelligence artificielle ALICE comprend les modules suivants :

module "Connaissances" - module de recherche d'informations sur WIKIPEDIA. Le système connaît n'importe quel appareil, objet, etc. Demandez, par exemple, ce qu'est un vélo ou ce qu'est une pomme et le système vous dira de quoi il s'agit.

module "Actualités". Dernières nouvelles aux intérêts de l’utilisateur. Demandez simplement quelle nouvelle ou racontez la nouvelle, le système vous le dira et vous demandera si vous avez besoin d'en dire plus, en répondant oui, il vous en dira plus,

Module "Météo". Météo d'aujourd'hui et de demain dans ma ville. Vous pouvez connaître la température, l'humidité, la vitesse du vent, s'il pleut ou s'il gèle. Vous pouvez demander si vous devez prendre un parapluie aujourd'hui ou si vous pouvez porter un short aujourd'hui,

module "Calculatrice". Utiliser ceci module, le système peut ajouter, soustraire, multiplier et diviser des objets, etc. Par exemple, si vous demandez combien font deux pommes plus deux pommes, le système répondra quatre pommes. Module en cours de développement,

module "Réveil". Le module vous permet de définir n'importe quel nombre d'alarmes. Régler le réveil système Cela vous réveillera. Je dois juste dire, réveille-moi à 7 heures du matin. Module en cours de développement,

module « Ajustement des réponses ». Placement correct des connaissances dans la base de données,

module « Jours fériés, fêtes, événements ». Ce module vous permet de savoir de qui il s'agit ou de quel jour férié il s'agit,

Module "Toast". Le module permet au système de faire divers toasts. Il faut demander, porter un toast,

module "Anecdotes". Le système connaît des milliers de blagues. Demandez-lui simplement de raconter une blague, vous pouvez également lui demander de raconter une blague pour les adultes,

module "Poèmes". Ce module transforme le système en poète. Demandez simplement à réciter un verset, vous pouvez également demander à réciter un verset pour adultes,

module "Aphorismes". Le système connaît des milliers d'aphorismes. Demandez-lui simplement de dire un aphorisme, vous pouvez aussi lui demander de dire un aphorisme pour adultes,

Module "Contrôle de l'éclairage". Grâce à ce module, le système peut contrôler l'éclairage d'un appartement ou d'une maison. Pour ce faire, vous devez connecter Arduino et Ethernet Shield,

module « Deviner les nombres ». Le système essaie de deviner le numéro caché. Nomme le chiffre attendu, puis vous devez lui dire si c'est plus ou moins. Module en cours de développement,

module "Utilisateur". Le module vous permet de modifier les données utilisateur, le nom, la ville, etc. Par exemple, pour changer le nom, vous devez dire, rappelez-vous que je m'appelle Oleg et elle s'en souviendra,

module "Dialogue". Analyse des dialogues. Un module qui traite le dialogue au quotidien, l'analyse de l'utilisateur, l'apprentissage, etc.

Remarque : description de la technologie à l'aide de l'exemple du programme d'intelligence artificielle ALICE.

Panneaux CLT

Charbon sans fumée

Lunettes intelligentes

Machines électrochimiques

Nanomodificateur pour la restauration des surfaces de tuyaux...

Système d'information et d'analyse multi-niveaux...

Conteneurs en fibre de verre

Stanen

Hydrofoil

Générateur électromagnétique à aimants permanents...

Peinture purificatrice d'air

L'intelligence artificielle créée à l'aide de programmes informatiques a été rencontrée par tous les utilisateurs de jeux d'ordinateur. Par exemple, lorsque vous jouez aux échecs, un ordinateur analyse les combinaisons du joueur et utilise son propre algorithme pour effectuer son prochain coup. Dans les jeux, tous les adversaires de l'utilisateur sont dotés d'une intelligence artificielle. Aujourd’hui, la technologie informatique permet de communiquer avec des programmes utilisant l’intelligence artificielle. Et l’intelligence logicielle elle-même est capable de développer et d’améliorer ses fonctions dans la pratique. En un mot, les programmes sont aujourd'hui capables d'évoluer.

Un programme simple avec intelligence artificielle.

Commençons par le tout exemple simple. ChatMaster est un programme d'intelligence artificielle capable de parler à une personne via le chat. Caractéristique principaleÀ première vue, un programme simple : l'auto-apprentissage. Plus vous communiquez avec le programme, plus son vocabulaire et sa capacité à s'adapter à votre interlocuteur lors du dialogue se développent. L'auteur du programme affirme avoir réussi à créer un modèle logiciel de la pensée humaine.

Lorsque vous commencez à travailler, le programme peut sembler « faible ». Mais la raison en est qu'après le premier lancement, son niveau d'intelligence et d'intelligence ne devrait pas être immédiatement testé. Dans un premier temps, le programme doit être traité comme un enfant de 12 ans, qui dans quelques heures communiquera au niveau de son interlocuteur. Pour ce faire, le vocabulaire du programme doit passer de 3 000 à 10 000 mots. Après quoi l’impression de travailler avec le programme dépasse toutes les attentes.

Il est visible à l'œil nu que le programme mémorise non seulement les mots mais aussi la réaction linguistique de l'interlocuteur aux phrases posées. Si vous le souhaitez, vous pouvez ajuster les réponses du programme à vos options en utilisant l'apprentissage forcé. Dans le même mode, vous pouvez interdire la mémorisation de phrases individuelles saisies avec des fautes de frappe. Si vous le souhaitez, vous pouvez exporter des bases de données et les échanger avec des amis pour un apprentissage plus rapide (lors d'une importation/exportation active, n'oubliez pas de faire des copies de sauvegarde). En général, la logique du programme, bien qu'unique, est également très développée.

Solution logicielle d’intelligence artificielle améliorée.

Très intéressant solution logicielle dans le domaine de l'intelligence artificielle a été proposé par les développeurs d'A.L.I.C.E. Ils connaissent bien l'intelligence artificielle et développent activement des programmes dans ce domaine. Pour prendre connaissance de leurs évolutions, une application en ligne a été créée pour communiquer avec le capitaine Kirk en temps réel. Le principe de l'application est similaire programme précédent, mais il y a une fonctionnalité intéressante. Le programme répond à voix haute à toutes les questions qui lui sont écrites. Désavantage important programme est l'opportunité de communiquer en exclusivité sur langue anglaise. Il n'a pas été possible de trouver une application similaire pour communiquer en russe et il est dommage que les programmeurs n'aient pas utilisé une telle fonction. Après tout, il existe de nombreux programmes de synthèse vocale qui convertissent le texte en parole audio à l'aide de la technologie SAPI5. Il est dommage que les programmeurs n'aient pas eu envie de créer un programme alternatif prenant en charge la langue russe. Après tout, il s’agit toujours d’une niche gratuite.

La communication avec un programme via un microphone est classée comme intelligence artificielle.

Le programme permettant de communiquer avec un ordinateur en russe s'appelle Grisha le perroquet. Ce programme implémente très probablement un prototype d'intelligence artificielle. Mais l'idée est très originale. Le fait est que le principal trait distinctif Grisha Parrot est capable de communiquer via un microphone et des haut-parleurs (sans utiliser de clavier).

Le programme dispose d'un module de reconnaissance vocale indépendant du locuteur. C'est l'analyse du canal audio entrant qui classe ce programme comme intelligence artificielle. Mais malheureusement, il n'est capable de reconnaître que quelques questions (seulement 46 phrases données dans l'aide). Lorsque le programme démarre, le perroquet dort. Dès que vous parlez dans le microphone, il se réveille pour entamer le dialogue. Le système logiciel de reconnaissance vocale n'utilise pas des fonctions informationnelles, mais des fonctions communicatives :

  • appellatif;
  • sensible;
  • méthode de prévalence.

Le dictionnaire de dialogue catégoriel est basé sur des primitives sémantiques. La méthode de reconnaissance vocale n'est pas réalisée par le contenu linguistique, mais par la détermination de la fonction de l'énoncé. Ainsi, lors de la reconnaissance vocale de la parole de l’utilisateur, l’acte de parole, le scénario de communication et le dialogue lui-même sont déterminés. Par conséquent, lorsqu’on communique avec un programme, ce n’est pas l’utilisation des mots qui est importante, mais l’acte de communication. Lors de la reconnaissance, des scènes aléatoires sont sélectionnées. S'il n'y a pas de signal d'entrée pendant un certain temps, le perroquet lui-même provoque le dialogue avec l'utilisateur. Le scénario de comportement du perroquet peut être contrôlé à l'aide de phrases et même son caractère peut être modifié en : triste, susceptible, joyeux.

Pour technologies mobiles développer et mettre en œuvre plus activement des programmes utilisant l’intelligence artificielle. Vous pouvez le vérifier avec une courte revue vidéo du programme :

  • Didacticiel

Avez-vous déjà pensé à quel point il est facile d'écrire votre propre intelligence artificielle qui prendra des décisions dans le jeu ? Mais c'est vraiment simple. Laissez-le prendre des décisions aléatoires au début, mais plus tard, vous pourrez l'éduquer, lui apprendre à analyser la situation, puis il commencera à prendre des décisions conscientes. Dans cet article, je vais vous expliquer comment j'ai écrit mon bot et vous montrer également comment vous pouvez écrire le vôtre en quelques minutes. Notre ordinateur jouera un clone du jeu Tron, ou plutôt la partie où vous devrez vaincre des ennemis à moto.

Sous la coupe se trouvent 10 mégaoctets de fichiers GIF.

À propos du jeu

Dans le jeu, vous contrôlez une moto qui laisse derrière elle un mur de lumière. Le terrain de jeu est limité et vos adversaires possèdent les mêmes motos. La moto bouge constamment, on ne peut que tourner. Place libre le terrain se termine et éviter les obstacles devient plus difficile. Celui qui dure le plus longtemps gagne. J'ai créé le clone du jeu multijoueur basé sur un navigateur en utilisant node.js et socket.io. Contrôle de deux boutons - tournez à gauche et tournez à droite.

Interface du robot

Depuis que j'utilise socket.io, j'ai traité les joueurs sur le serveur en travaillant sur un tableau d'objets socket spéciaux créés par socket.io. Parmi ces objets, je n'ai utilisé que les fonctions d'identification, d'émission et de diffusion. Cela signifie qu'il est simple pour le jeu lui-même d'implémenter une interface socket et de l'utiliser dans le traitement, comme si un autre utilisateur jouait. J'ai nommé la classe BotSocket.
Méthode émettre (événement, données) Le bot effectue presque les mêmes actions que le client lors de la réception des données entrantes du serveur, à savoir :
  1. Enregistre les données sur toutes les motos en jeu lors de leur ajout
  2. Enregistre un lien vers votre moto lorsque vous l'ajoutez
  3. Met à jour les données sur toutes les motos en jeu
  4. Réinitialise les états lors du redémarrage du jeu
Pour envoyer des commandes de contrôle de votre moto au serveur, vous deviez enregistrer un lien vers l'objet de jeu qui traite ces commandes depuis utilisateurs ordinaires. Méthode de classe Jeu j'ai un nom onControl (socket, données) j'ai donc ajouté une méthode à BotSocket
BotSocket.prototype.control = function(data) ( this.game.onControl(this, data); );
Lorsqu'une commande est reçue du serveur pour mettre à jour les données des motos (elles ont été déplacées), je vérifie si j'ai une moto sous mon contrôle, si elle n'est pas encore entrée en collision et si elle a été déplacée, et, si réussi, j'appelle la méthode principale pour que l'IA fonctionne - mise à jour().
L'interface est prête, vous pouvez maintenant ajouter l'IA elle-même.

Intelligence artificielle

Aussi fort que cela puisse paraître, dans les jeux, les joueurs pour lesquels l'ordinateur joue sont généralement appelés IA ou robots. L'objet BotSocket dispose des données de jeu nécessaires pour prendre une décision. Il ne peut y avoir que trois solutions possibles :
  1. Rien à faire, va tout droit
  2. Tournez à droite
  3. Tourner à gauche

Quand j’ai décidé d’écrire un bot, je n’avais aucune idée de comment cela pouvait être fait. J'ai essayé un code très simple :
BotSocket.prototype.update = function() ( var r = Math.random(); if (r > 0.95) ( this.control(("button": "right")); ) else if (r >
Le comportement ressemblait à ceci :

Je l'ai regardé et j'ai ressenti une grande joie ; il me semblait qu'il était désormais indépendant. Il semblait qu'il essayait lui-même de survivre, luttant là-bas comme s'il était vivant. Un spectacle touchant.

Mais je voulais qu'il vive le plus possible. J'ai commencé à chercher des informations sur la manière dont l'IA est écrite pour les jeux. J'ai trouvé des articles décrivant différentes approches. Mais je cherchais quelque chose d'extrêmement simple. J'ai trouvé sur Habré dans l'un des articles sur un bot pour un jeu comme Zuma une mention de la méthode wave. L'algorithme d'Aka Lee. Je l'ai trouvé très simple et approprié. Il s'agit d'un algorithme permettant de trouver le chemin le plus court d'un point à un autre du champ, où les cellules peuvent être soit libres, soit occupées. Le problème est simple. Nous partons du point de destination, lui attribuons la valeur 1 et marquons toutes les cellules libres adjacentes avec un numéro supérieur d'une unité. Ensuite, nous prenons tous les voisins marqués gratuitement et les marquons à nouveau un autre. Nous nous développons donc sur tout le terrain jusqu'à atteindre notre destination. Et on construit le chemin en recherchant parmi les voisins en diminuant le nombre jusqu'à atteindre 1. J'ai regardé des algorithmes pour trouver les chemins les plus courts dans les graphiques, mais celui-ci m'a semblé le plus adapté.

J'ai transféré l'algorithme par copier-coller de la page vers le wiki, lui ai donné un nom BotSocket.prototype.algorithmLee. Pour le champ j'ai d'abord créé un objet champ de bataille, dans lequel, à chaque mise à jour, les points occupés étaient marqués de leurs coordonnées. Et dans l’algorithme de Lee, il a réduit ce champ au même, mais avec un pas de 1.

Il fallait en quelque sorte déterminer la destination. J'ai décidé de le sélectionner au hasard à certains intervalles. J'ai créé une méthode pour rechercher un point libre aléatoire sur le terrain :
BotSocket.prototype.getDesiredPoint = function() ( var point = ; var H = Object.keys(this.battleground).length - 1; var W = Object.keys(this.battleground).length - 1; var x, y , je, j; var trouvé = faux; var iter = 0; faire ( je = this.getRandomInt(1, W); j = this.getRandomInt(1, H); x = i * this.moveStepSize; y = j * this.moveStepSize; if (this.battleground[x][y] === this.BG_EMPTY) ( found = true; ) iter++; ) while (!found && iter< 100); point = ; return point; };

Maintenant, je pourrais réécrire la mise à jour :
BotSocket.prototype.update = function() ( if (!this.desiredPoint || this.movements % this.updDestinationInterval === 0) ( this.desiredPoint = this.getDesiredPoint(); ) if (!this.desiredPoint) ( return; ) var currentPoint = ; var path = this.algorithmLee(currentPoint, this.desiredPoint); if (path && typeof path !== "undefined") ( this.moveToPoint(path); ) else ( this.desiredPoint = this .getDesiredPoint(); ) );
Méthode mentionnée ici déplacerVersPoint, qui tourne au besoin pour atteindre le premier point du chemin le plus court étant donné la direction actuelle.

Plus tard, j'ai décidé de rendre les robots plus agressifs et au lieu d'un point souhaité aléatoire, j'ai cherché un point devant les ennemis pour bloquer leur chemin. Ou alors, ils ne jouent pas avec eux-mêmes pendant si longtemps.

Bot côté client

J'ai décidé d'essayer de déplacer le bot côté client. Étant donné que le projet est dans node.js, je peux également utiliser le code écrit pour le bot côté client. Pour ce faire, j'ai étendu BotSocket avec un fichier client distinct qui remplace les méthodes émettre() Et contrôle() pour interagir correctement avec le serveur sans référence au jeu.
Tout a bien fonctionné localement, mais après le déploiement sur serveur distant il y avait une image étrange :

Après avoir longuement réfléchi, j'ai réalisé que c'était un retard. Le robot a envoyé une commande de virage, mais celle-ci est arrivée après avoir mis à jour sa position sur le serveur, c'est pourquoi il ne pouvait souvent pas suivre le chemin direct vers le point souhaité. Mais je voulais un bot normal côté client. J’ai donc décidé de prendre en compte le retard. Pour ce faire, j'ai réécrit l'extension BotSocket. L’article devient long, je vais donc décrire les principales solutions. Avant d'appeler l'algorithme de Lee, au lieu du point actuel, j'ai remplacé la position prédite, en tenant compte de la position et de la direction actuelles, ainsi que du multiplicateur de retard. Le multiplicateur de latence est le nombre de fois la latence multiplié par le taux de mise à jour de la position du serveur. J'avais aussi besoin de prédire le point futur de la méthode déplacerVersPoint().

La prédiction fonctionnait si vous jouiez seul. Mais s'il y avait d'autres participants, le bot n'en tenait pas compte et se dirigeait vers l'endroit où, après un certain temps, un autre joueur était déjà passé. Pour résoudre ce problème, j'ai modifié la méthode qui marque les cellules du champ comme occupées. J'ai commencé à les marquer comme étant occupés dans un certain rayon de circulation des motos. Le rayon dépend du multiplicateur de retard.
Auparavant, j'équipais le bot de fonctions de débogage, qui dessinaient le point souhaité et occupaient les points sur le terrain. Ma version basée sur la latence du bot client se déplace désormais comme ceci :


Mon petit, le reste sont des serveurs.

Le plus important est d'essayer de créer un bot vous-même

L'objectif principal de cet article est de susciter l'intérêt pour l'écriture d'un bot. J'ai fait beaucoup pour vaincre votre paresse. Pour ce faire, j'ai ajouté la possibilité de charger mon propre script avec un bot, ce qui étendra ma classe client de base. Allez sur le projet et cliquez sur le texte « Afficher les options pour la salle avec votre propre bot », puis sur le bouton « Créer une salle pour tester votre propre bot ». Une salle sera créée où vous pourrez facilement utiliser des bots, par défaut votre bot sera un bot sans latence. Il est maintenant temps de passer à votre code.
Deux options simples pour utiliser votre code en action, utilisez n'importe lequel :
  1. Téléchargez le fichier js sur n’importe quel serveur accessible à votre navigateur. Collez l'URL de votre script dans le jeu à côté du bouton « Charger votre script AI ». Après avoir cliqué sur ce bouton, un nouvel objet botSocket, dont la méthode sera appelée commencer().
  2. Utilisez la console du navigateur (Firebug – F12, Firefox – Ctrl+Shift+K, Chrome – Ctrl+Shift+J, autres – ).

Si vous avez décidé de la méthode de saisie de votre code, essayez de remplacer les méthodes de classe BotSocket. La chose la plus simple pour commencer :
BotSocket.prototype.update = function() ( var r = Math.random(); if (r > 0,95) ( this.control(("button": "right")); ) else if (r > 0,90) ( this.control(("bouton": "gauche")); ) )

Après cela, recréez l'objet botSocket en entrant
botSocket = nul ;
Dans ce cas, le code sur la page va lui-même recréer et remplir l'objet. Cela changera le comportement standard du bot en aléatoire. Et puis cela dépend de votre imagination ou de vos connaissances approfondies.
Vous pouvez également connecter le script de mon bot amélioré, en tenant compte du délai, en insérant https://raw.github.com/rnixik/tronode-js/master/public/javascripts/MyBotSocketClient.js dans l'url du bot

Conclusion

J'ai raconté comment j'ai créé mon IA sur le serveur, puis comment je l'ai transférée au client et comment j'ai essayé de lui apprendre à jouer en tenant compte Haut débit. J'espère vraiment que j'ai pu vous intéresser et que vous avez essayé d'écrire votre propre IA, si vous ne l'avez jamais fait auparavant. Bien sûr, les jeux haut de gamme utilisent des approches complètement différentes, mais cela vaut la peine de commencer petit.

Si vous n'avez pas node.js à portée de main, vous pouvez utiliser les applications que j'ai déployées :

1) tronode.livelevel.net - le VPS le moins cher sur DigitalOcean,
2) tronode-js.herokuapp.com - unité virtuelle gratuite sur Heroku.

Le premier, très probablement, n'est peut-être pas le premier à faire face à la charge, et le second sur certains ordinateurs réinitialise le transport socket.io en xhr-polling, de ce fait, le jeu est très en retard.
Si vous voulez en savoir plus sur la façon dont j'ai programmé la logique du jeu, vous pouvez lire. Il y a aussi des informations sur le déploiement de node.js et un peu sur la partie graphique.

Si vous n'avez pas de compte sur Habré, alors posez des questions ou envoyez le vôtre offres intéressantes peux-tu m'envoyer un e-mail [email protégé].

Balises : Ajouter des balises