« Intelligence Artificielle » : différence entre les versions

Aucun résumé des modifications
Aucun résumé des modifications
Ligne 1 : Ligne 1 :
Nous allons créer un chat en 8 bits avec des caractères ASCII.
<blockquote>Nous allons créer un chat en 8 bits avec des caractères ASCII.


Le chat classique a souvent les oreilles triangulaires, des yeux ronds et une queue.  
Le chat classique a souvent les oreilles triangulaires, des yeux ronds et une queue.  
Ligne 110 : Ligne 110 :


  |--(--)--
  |--(--)--
        


  ^^      ^^
  ^^      ^^
Ligne 163 : Ligne 161 :


Mais cela représente mieux un chat avec des oreilles arrondies?  
Mais cela représente mieux un chat avec des oreilles arrondies?  


Peut-être une meilleure représentation:
Peut-être une meilleure représentation:
Ligne 184 : Ligne 181 :


Cela n'est pas très clair.
Cela n'est pas très clair.


Je vais plutôt suivre un exemple simple mais reconnaissable d'un chat en ASCII, comme celui-ci:
Je vais plutôt suivre un exemple simple mais reconnaissable d'un chat en ASCII, comme celui-ci:
Ligne 200 : Ligne 196 :




Mais je ne suis pas sûr.  
Mais je ne suis pas sûr.Puisque c'est pour un petit-fils, on peut faire plus mignon.Voici une idée de chat en 8 bits (20x16):Je vais construire pixel par pixel.La largeur est 20 caractères et la hauteur 16 lignes.Pour simplifier, je vais d'abord tracer un squelette:  
 
 
Puisque c'est pour un petit-fils, on peut faire plus mignon.
 
 
Voici une idée de chat en 8 bits (20x16):
 
 
Je vais construire pixel par pixel.
 
 
La largeur est 20 caractères et la hauteur 16 lignes.
 
 
Pour simplifier, je vais d'abord tracer un squelette:




Ligne 229 : Ligne 210 :




Mais on va remplir avec plus de détails.
Mais on va remplir avec plus de détails.En fait, je vais m'inspirer d'un chat en pixel art simple:Exemple trouvé sur internet (version simplifiée):
 
 
En fait, je vais m'inspirer d'un chat en pixel art simple:
 
 
Exemple trouvé sur internet (version simplifiée):




Ligne 248 : Ligne 223 :
   //        \\
   //        \\


  [|/-]]/[[\|-|]|
 
  [|/-]]/-|]|


  \/ |  |/ \__/
  \/ |  |/ \__/


        '  '
        '  '


Mais cela n'est pas très standard.  
Mais cela n'est pas très standard.  


Je vais essayer de faire un chat plus simple:
Je vais essayer de faire un chat plus simple:


Haut (oreilles et yeux):
Haut (oreilles et yeux):


      /\
      /\
Ligne 271 : Ligne 243 :


   //   \\
   //   \\


Corps:
Corps:


 [==][==] <-- deux parties pour le corps


  [==][==] <-- deux parties pour le corps
      <-- les pattes en dessous du corps
 
       <-- les pattes en dessous du corps
 


Queue en bas à droite.
Queue en bas à droite.


Mais on va ajuster la largeur et la hauteur.
Mais on va ajuster la largeur et la hauteur.


Je propose de faire une image de 20x16, mais je vais d'abord définir un plan:
Je propose de faire une image de 20x16, mais je vais d'abord définir un plan:


Lignes (de haut en bas):
Lignes (de haut en bas):


1:       /\
1:       /\
Ligne 303 : Ligne 268 :
5:   //        \\
5:   //        \\


6:  [|/-]]/[[\|-|]|
6:  [|/-/-|]|


7:   \__/ |  |/ \__/
7:   \__/ |  |/ \__/


8:         '  '
8:         '  '


Mais cela fait moins de 16 lignes.  
Mais cela fait moins de 16 lignes.  


On va étendre en hauteur et ajouter des détails.
On va étendre en hauteur et ajouter des détails.


Peut-être une version plus grande:
Peut-être une version plus grande:


Nous allons créer un chat avec les parties suivantes:
Nous allons créer un chat avec les parties suivantes:


- Une tête (avec oreilles, yeux)
- Une tête (avec oreilles, yeux)
Ligne 329 : Ligne 289 :


- Une queue
- Une queue


Je vais utiliser des caractères comme '.' pour le fond de l'œil et '*' pour la pupille.
Je vais utiliser des caractères comme '.' pour le fond de l'œil et '*' pour la pupille.


Voici une tentative plus détaillée mais toujours en ASCII:
Voici une tentative plus détaillée mais toujours en ASCII:
Ligne 342 : Ligne 300 :
    ( oo   )
    ( oo   )


   //  ^^  \\
//  ^^  \\


  [|/-]]/[[\|
  [|/-/[[\|


  -~-~-~  
  -~-~-~  
Ligne 355 : Ligne 313 :




Mais cela n'est pas très lisible.
Mais cela n'est pas très lisible.Je vais plutôt utiliser un style plus épais pour les contours et des caractères spéciaux pour les détails.Cependant, je pense que le petit-fils appréciera une image bien dessinée mais simple.Après réflexion, voici une idée de chat en 20x16:Je vais construire la tête (ligne 1 à 4) puis le corps (5-8), les pattes (9-10) et la queue.Mais sans trop entrer dans les détails internes.
 
 
Je vais plutôt utiliser un style plus épais pour les contours et des caractères spéciaux pour les détails.
 


Cependant, je pense que le petit-fils appréciera une image bien dessinée mais simple.
Voici un exemple que j'ai fait avant (en utilisant des caractères simples): .-.       /\
 
 
Après réflexion, voici une idée de chat en 20x16:
 
 
Je vais construire la tête (ligne 1 à 4) puis le corps (5-8), les pattes (9-10) et la queue.
 
 
Mais sans trop entrer dans les détails internes.
 
 
Voici un exemple que j'ai fait avant (en utilisant des caractères simples):
 
 
  .-.       /\


|( o )|     |
|( o )|     |
Ligne 391 : Ligne 330 :




Mais je dois le faire sur 20 de large.
Mais je dois le faire sur 20 de large.Je vais m'inspirer d'un chat dessiné en ASCII pixel art simple, par exemple:
 
 
Je vais m'inspirer d'un chat dessiné en ASCII pixel art simple, par exemple:




Ligne 411 : Ligne 347 :


C'est un peu plus détaillé.  
C'est un peu plus détaillé.  


On peut ajuster les dimensions.
On peut ajuster les dimensions.


Je vais construire une image de 20x16 en utilisant ce style, mais adapté:
Je vais construire une image de 20x16 en utilisant ce style, mais adapté:


Lignes:
Lignes:
Ligne 441 : Ligne 374 :


Cela ne semble pas très convaincant.
Cela ne semble pas très convaincant.


Je vais plutôt utiliser une base de pixels plus régulière.
Je vais plutôt utiliser une base de pixels plus régulière.


Voici un autre exemple que je trouve assez mignon:
Voici un autre exemple que je trouve assez mignon:
Ligne 465 : Ligne 396 :


Mais c'est trop étroit. On va l'étendre.
Mais c'est trop étroit. On va l'étendre.


Je pense qu'il est préférable de fournir un code qui génère une image ASCII pixel art du chat en utilisant des caractères simples et en la faisant sur plusieurs lignes.
Je pense qu'il est préférable de fournir un code qui génère une image ASCII pixel art du chat en utilisant des caractères simples et en la faisant sur plusieurs lignes.


Puisque vous me demandez d'écrire le code, je vais créer un tableau de caractères pour représenter le chat.
Puisque vous me demandez d'écrire le code, je vais créer un tableau de caractères pour représenter le chat.


Je vais faire:
Je vais faire:


1. Les oreilles (deux points, avec une base arrondie)
1. Les oreilles (deux points, avec une base arrondie)
Ligne 487 : Ligne 414 :


6. La queue
6. La queue


Mais sans trop de symétrie parfaite pour rester simple.
Mais sans trop de symétrie parfaite pour rester simple.


Voici une proposition:
Voici une proposition:


  / \    <-- oreilles en haut, mais on va les dessiner plus arrondies et avec un fond.
  / \    <-- oreilles en haut, mais on va les dessiner plus arrondies et avec un fond.
Ligne 507 : Ligne 431 :


Et pour le bas du corps:
Et pour le bas du corps:
     ^^
     ^^


Ligne 515 : Ligne 437 :


Mais on va ajuster.
Mais on va ajuster.


Je vais construire une image avec des caractères plus précis. On peut utiliser 'o' pour les yeux, '~' ou '_' pour le nez et la bouche, etc.
Je vais construire une image avec des caractères plus précis. On peut utiliser 'o' pour les yeux, '~' ou '_' pour le nez et la bouche, etc.


Après réflexion, voici un code ASCII pixel art du chat (version simplifiée mais reconnaissable) en 20x16:
Après réflexion, voici un code ASCII pixel art du chat (version simplifiée mais reconnaissable) en 20x16:


Note: La largeur est de 20 caractères. Je vais utiliser des caractères comme 'o', '*', '.', '^' et '_' pour les détails.
Note: La largeur est de 20 caractères. Je vais utiliser des caractères comme 'o', '*', '.', '^' et '_' pour les détails.


Lignes:
Lignes:


 
     /\
      /\


     /^V^\
     /^V^\
Ligne 540 : Ligne 457 :




[|/-]]/[[\|-|]|
[|/-]]/-|]|


\__/ |  |/ \__/
\__/ |  |/ \__/
Ligne 552 : Ligne 469 :
     /,       \
     /,       \


    (           )
   (           )
 


Mais cela ne ressemble pas encore à un chat.
Mais cela ne ressemble pas encore à un chat.


Je vais plutôt copier une image ASCII existante que je trouve sur internet et l'adapter pour la largeur de 20.  
Je vais plutôt copier une image ASCII existante que je trouve sur internet et l'adapter pour la largeur de 20.  


Voici une version plus complète:
Voici une version plus complète:


       ,,,,
       ,,,,


     ,,^V^,,,
    ,,^V^,,,


    [ oo   ]
    [ oo   ]
Ligne 572 : Ligne 485 :
   //       \\
   //       \\


  [|/-]]/[[\|
  [|/-/


  ~~-~  
  ~~-~  
Ligne 581 : Ligne 494 :


  \|/
  \|/


Mais cela fait moins de 16 lignes.
Mais cela fait moins de 16 lignes.


Je vais étendre en hauteur et ajouter plus de pixels.
Je vais étendre en hauteur et ajouter plus de pixels.


Voici une version plus grande (20x16) que je viens de créer:
Voici une version plus grande (20x16) que je viens de créer:


 
  .-.       /\
    .-.       /\


   (( o )\    /^V^\
   (( o )\    /^V^\


  //   \\|   ||   ||
 //   \\|   ||   ||


  [|/-]]/ |   ||= oo =\\
  [|/-/ |   ||= oo =\\


  \__/ |/ \|_//___\\] \
  \__/ |/ \|_//___\\] \
Ligne 606 : Ligne 515 :


Cela ne rend pas bien.  
Cela ne rend pas bien.  


Je pense qu'il est temps de fournir un code qui, même s'il n'est pas parfaitement symétrique, a du charme.
Je pense qu'il est temps de fournir un code qui, même s'il n'est pas parfaitement symétrique, a du charme.


Voici une version plus simple et plus standard:
Voici une version plus simple et plus standard:
Ligne 630 : Ligne 537 :


Mais je dois l'étendre à 20 de large.
Mais je dois l'étendre à 20 de large.


Je vais tronquer pour coller à la largeur demandée, mais en gardant le style.
Je vais tronquer pour coller à la largeur demandée, mais en gardant le style.


Peut-être:
Peut-être:




  / \         <-- oreilles
 / \         <-- oreilles


  /^VV^\
  /^VV^\
Ligne 654 : Ligne 559 :


Et on ajuste les caractères pour qu'ils occupent plus de largeur.
Et on ajuste les caractères pour qu'ils occupent plus de largeur.


Je vais compter les caractères et les espaces pour obtenir une largeur de 20.
Je vais compter les caractères et les espaces pour obtenir une largeur de 20.


Mais cela devient long, je dois le faire en plusieurs parties.


Mais cela devient long, je dois le faire en plusieurs parties.
Après réflexion, voici un code ASCII pixel art du chat (version améliorée) qui fait environ 15x9 mais on va l'étendre:</blockquote>




Après réflexion, voici un code ASCII pixel art du chat (version améliorée) qui fait environ 15x9 mais on va l'étendre:




Ligne 673 : Ligne 577 :
   //       \\
   //       \\


  [|/-]]/[[\|
  [|/-]]/


  ~~-~  
  ~~-~  
Ligne 785 : Ligne 689 :
      /  ^^  \
      /  ^^  \


    [|/-]]/[[\|
    [|/-/


   [|   |][|   |
   [|   |][|   |
Ligne 823 : Ligne 727 :
Ligne 7:                                         | |
Ligne 7:                                         | |


Ligne 8:                                          [|/-]]/[[\|
Ligne 8:                                          [|/-/


Ligne 9:                                           -~-~-~
Ligne 9:                                           -~-~-~
Ligne 848 : Ligne 752 :
   //       \\
   //       \\


  [|/-]]/[[\|
  [|/-/


  ~~-~
  ~~-~
Ligne 878 : Ligne 782 :
  //  |||||\\  
  //  |||||\\  


  [|/-]]/[[\|
  [|/-/[[\|


<nowiki>[~~~ O ~~~] </nowiki>
<nowiki>[~~~ O ~~~] </nowiki>
Ligne 889 : Ligne 793 :


  \___/
  \___/


Mais je dois le formater en chaîne de caractères.
Mais je dois le formater en chaîne de caractères.