Author: alexis M.

Tutoriels

Comment utiliser et comprendre le fonctionnement de l’intelligence artificiel…

Dans ce tutoriel je vais vous expliquer clairement le mode de fonctionnement de l’une des intelligences artificielle les plus développer actuellement présente dans le milieu informatique, qui vous permettra de devenir un véritable artiste peintre en quelques minutes.

Cette innovation est menée par l’entreprise Nvidia qui est entre autres reconnue mondialement pour ces cartes graphiques. En effet le jeudi 24 juin 2021 l’entreprise publie officiellement la bêta public de son intelligence artificielle. Celle-ci est de nos jours encore en constantes évolutions, c’est-à-dire que l’on a accès à seulement une petite partie des fonctionnalités de l’application définitives. Elle a donc pour but de « vulgariser » afin de rendre accessible au monde entier le talent d’artiste peintre. Cependant elle peut aussi convenir aux artistes afin de les aider à imaginer une première version de leur travail.

La création de l’intelligence artificielle

Cette avancée majeure dans le monde des IA est en partie grâce aux développeurs de chez Nvidia qui ont fait analyser des millions d’images de paysages existant de notre monde, afin qu’elle puisse en créer une de toutes pièces, tout en gardant une vision vraisemblable.

Conditions d’utilisation :

Cependant cette technologie n’est disponible seulement sous le système d’exploitation Windows 10. De plus sa demande en vitesse de calcul étant très élevé elle n’est disponible que sous certaines conditions :

  • Une unité de traitement graphique (GPU) tels que la NVIDIA GeForce RTX, ou NVIDIA RTX, et TITAN RTX.
  • Un disque dur en SSD (un disque dur utilisant des éléments de mémoire flash comme éléments de stockage des données).
  • Un pilote possédant la version 471.68 au minimum.

Ces contraintes d’utilisation montrent pour le moment que cette technologie n’est donc pas accessible à un grand nombre de personnes, puisqu’elle demande des composants d’une certaine valeur. Cette IA est donc plus fréquemment utilisée par des professionnels.

Le fonctionnement de l’IA

Comme indiqué ci-dessus, cette technique est basée sur un système d’utilisation simple afin qu’elle soit accessible à tous. Ainsi lorsque nous nous retrouvons sur ce logiciel l’on retrouve différents paramètres qui nous seront utiles lors de la création mais aussi de l’exportation de notre dessin une fois terminé.

L’on distingue donc 3 zones ou se regroupe les paramètres :

  1. La première partie est destinée à la création d’un point de vue technique du dessin puisque l’on peut retrouver des fonctionnalités telles que le pinceau servant a choisir l’environnement que l’on souhaite utiliser. Mais aussi un outil nous aidant à tracer des lignes droites et bien évidemment la fonctionnalité gommes et remplissage. D’un point de vue pratique la bêta propose une fonctionnalité permettant de choisir précisément une couleur, ou bien celle permettant choisir l’épaisseur de la pointe du stylo.
  2. Dans la seconde partie l’on retrouve tout ce qui rapporte au fichier et à l’affichage de celui-ci. Ainsi l’on a l’opportunité d’ouvrir une nouvelle feuille vierge afin d’effectuer un nouveau dessin mais aussi ce qui concerne l’enregistrement et l’exportation de ce dessin. De plus, la loupe permet d’agrandir plus ou moins le dessin lors de sa création mais aussi l’on peut choisir de voir le dessin (à gauche) et le rendu final après l’intervention de l’IA (à droite) en même temps ou bien chaque rendu à part, c’est-à-dire ou l’un ou l’autre, c’est à vous de choisir.
  3. Enfin dans la troisième partie l’on retrouve l’aspect graphique. Notamment avec le choix d’une vingtaine de matériaux comme par exemple avec des nuages, des montagnes, de l’herbe, une rivière et de la brume et de la pluie ainsi qu’une quinzaine d’autres textures. De plus l’on retrouve l’opportunité d’utiliser des « layers » tout comme Photoshop par exemple cela nous donne l’opportunité d’avoir plusieurs calques superposés. Enfin l’on a accès à 9 styles ce qui permet d’appliquer au dessin une ambiance différente telle qu’un coucher de soleil ou bien un environnement ensoleillé.

Comme l’on dit « une image vaut mieux que mille mots« , alors je vous mets à disposition différent dessin réaliser avec Nvidia Canvas.

Vous pouvez donc voir le potentiel juste immense de cette intelligence artificielle qui est en constante évolution, il ne vous reste qu’à la télécharger grâce à ce lien pour les tester de vous-même et laisser s’exprimer votre créativité : https://www.nvidia.com/fr-fr/studio/canvas/

En conclusion j’espère que ce tutoriel que j’ai moi-même pris du plaisir à réaliser, vous aura permis de découvrir cette intelligence artificielle et qu’il vous guidera lors de son utilisation.

Projets

Simulation d’une roulette de casino en python

Nous n’avons peut être pas l’âge de se rendre dans un casino, mais se n’est pas pour autant que nous ne pouvons pas nous amuser à notre échelle. C’est donc grâce à ce mini-jeu qu’on découvre assez rapidement le but d’une roulette de casino. Il ne vous reste qu’à mesuré votre chance à la roulette.

Présentation du projet

Notre projet a pour but de vous faire découvrir de façon simple le monde du casino, plus précisément grace l’un des jeux d’argent les plus connues qui est la roulette de casino.

Règles du jeu:

  • Le but du jeu est de deviner la case sur laquelle la bille lancée dans le cylindre qui contient 37 numéros va s’arrêter. 
  • Le jeu est encadré par un croupier qui annonce en début de partie « Faites vos jeux », ce qui nous laisse le droit de poser nos jetons sur les cases désirées. Vous pouvez les déplacer jusqu’à ce qu’il dise « rien ne va plus »
  •  La bille tourne encore dans le cylindre et quand elle s’arrête, le numéro gagnant est dévoilé.

Supports nécessaire pour le bon fonctionnement du projet

  • Un ordinateur avec un logiciel tel que Thonny pouvant effectuer des manipulations en langage python.

Difficultés rencontrées

Nous avons rencontrés quelque difficulté tout au long de notre programme :

Nous avons eu une grosse difficulté qui nous a fait réfléchir pendant plusieurs heures.

Cette difficulté venait de la définition aléatoire de notre programme qui nous sert pour tirer aléatoirement un nombre entre 0 et 36.

def aléatoire():# permet de tirer un nombre aléatoirement dans la roulette
    global N
    n = randint(0,36)
    N = n
    #print (n)

Notre problème était d’utiliser la variable « n » dans une autre définition du programme et donc on a dû utiliser le mot-clé « global » qui rend accessible la variable « n » dans tout le programme. 

De plus nous nous sommes servis de la fonction « print(n) » pour nous confirmer que le jeu étais bel est bien juste et qu’il relançait bien le numéro de la roulette a chaque tout. C’est donc après cette vérification qu’on a mis le « # » devant la fonction pour plus qu’elle soit prise en compte lorsque le programme est lancé mais aussi pour montrer que l’on a bien vérifier le programme.

Explication du programme

Avant de commencer l’analyse nous vous précisons que le langage python est très exigeant dans l’écriture et dans son indentation.

from random import *

Tout d’abord nous avons commencé par la fonction « From random import » qu’il ne faut surtout pas négliger car c’est cette fonction qui va permettre que la définition aléatoire génère des nombres entre 0 et 36.

Nous avons continué notre programme avec la première définition qui nous sert d’affichage de bienvenue lorsque le jeu est démarré.

def bienvenue():# phrase de bienvenue et présentation du jeu
    print("\n")
    print ("-----[JEU DE LA ROULETTE]-----")
    print ("    Bienvenue au casino !     ")
    print ("    Cree par Paul et Alexis   ")
    print ("           Jouons !           ")
    print ("------------------------------")

Ainsi grâce à la fonction d’affichage « print » nous avons pu reproduire comme une pancarte de bienvenue.

Nous arrivons maintenant à l’une des parties qui caractérisent au mieux notre jeu en question, c’est la définition qui gère le programme aléatoire. C’est ici même que notre toute première fonction « from random import » prend tout son sens.

def aléatoire():# permet de tirer un nombre aléatoirement dans la roulette
    global N
    n = randint(0,36)
    N = n
    #print (n)

Un peut plus haut dans les difficultés rencontrées nous nous somme intéressé à cette partie du programme notamment sur le « global N ». Nous avons utilisé la fonction randint qui génère un nombre aléatoirement entre les valeurs à l’intérieur des parenthèses: (0,36). De plus nous avons dû créer une autre valeur N qui possède la même valeur que n pour pouvoir l’utiliser dans la définition suivante.

Nous avons décidé de regrouper nos deux premières définitions(bienvenue et aléatoire) à l’intérieur de la troisième qui est la définition game. Elle regroupe l’ensemble du jeu que ce soit l’argent de départ mais aussi la mise ainsi que la gestion de la victoire et de la défaite. Ce système facilite le lancement des définitions car il y en a qu’une seule a lancer, ce qui provoque toujours les mêmes actions dans l’ordre voulu.

def game():# permet la composition du jeu avec la mise, l'argent de départ, sa victoire ou sa défaite, et combien lui reste t'il dans son portefeuille
    bienvenue()
    argent_de_depart = 200
    print("Votre porte-monnaie contient une valeur de 200€, bon jeux\n")
    

Ainsi dès que la définition « game » est lancée celle-ci génère immédiatement la définition « bienvenue() » qui exécute les premières lignes de code de la fonction d’affichage. De plus dans cette partie de la troisième définition on définit la valeur de l’argent de départ qui ne change pas. Ainsi grâce à la fonction d’affichage « print » on affiche la phrase qui nous indique la valeur totale de notre porte-monnaie.

La partie suivante du programme est celle qui gère la quantité d’argent qui nous reste avec le « while ».

while argent_de_depart >=0:

        if argent_de_depart == 0:# lorsque nous n'avons plus d'argent une phrase automatique nous l'indique
            print("Malheureusement vous n'avez plus d'argent et le casino ne fait pas crédit")
        else:# le croupier annonce le début du jeu
            print("Faites vos jeux")

La fonction de condition « if » calcule combien d’argent nous reste-t-il est quand notre porte-monnaie est à 0€ la fonction d’affichage « print » affiche la phrase qui nous informe que notre solde d’argent est de 0€. S’il y a encore de l’argent dans le porte-monnaie alors la fonction « else » intervient pour nous annoncer le droit de continuer misé.

La partie de programme ci-dessous contrôle la mise du joueur mais aussi sa défaite et le lancement de la définition aléatoire.

 mise = int(input("Combien voulez-vous miser? : \n")) # qu'elle est la mise que le joueur veut mettre en jeu
        if mise <= 0 or mise > argent_de_depart: # indique lorsque le joueur met une mise plus basse que 0 et/ou plus élevé que ce qu'il possède
            print("Votre mise doit etre superieur à 0 et votre mise ne doit pas etre plus eleve que votre argent restant\n")
        else:# ici nous devons choisir un nombre entre 0 et 36 et si le nombre choisi ne correspond pas à celui sur lequel la bille s'arrête alors on soustrait son argent de départ par la mise
            argent_de_depart = argent_de_depart - mise
            num = int(input("Choisir un nombre entre 0 et 36 : \n"))
            
        aléatoire()

La mise est composée de deux parties, la première est pour la mise d’argent et la deuxième pour le choix du nombre sur lequel on place la mise. C’est la fonction « int(input()) » qui nous demande la mise que l’on souhaite effectuer et grâce a la fonction « if » elle analyse que notre mise soit supérieure à 0€ mais aussi inférieur a notre somme d’argent totale dans le porte-monnaie. Si l’une de ses conditions n’est pas respectée alors la fonction « print » intervient et une phrase nous rappelle quelles sont les bonnes conditions de mise. Ainsi la structure conditionnelle « else » définit l’argent de départ, autrement dit la structure s’occupe de soustraire ou d’ajouter les valeurs misées à la somme d’argent de départ. Mais cette opération est possible seulement grâce à la valeur « num » qui récupère le nombre choisi par le joueur sur lequel il choisit de miser. C’est donc à ce moment-là qu’on a décidé de faire exécuter la fonction aléatoire qui tire aléatoirement le nombre sur lequel la bille s’arrête.

La fin de notre programme contrôle donc le faite de gagner ou de perdre.

if num == N :
            print("La bille s'arrête sur",N )
            print("Félicitations vous avez trouvé le bon numéro\n")
            argent_de_depart = argent_de_depart + (mise * 2)
            print("Votre porte-monnaie a maintenant une valeur de", argent_de_depart, "€")
        else:# ici on affiche notre défaite et combien nous reste-t-il d'argent sur notre porte monnaie
            print("La bille s'arrête sur", N )
            print("Malheureusement vous n'êtes pas tombé sur le bon numéro, retentez votre chance\n")
            print("Votre porte-monnaie a maintenant une valeur de", argent_de_depart, "€")
            

game()

La fonction conditionnelle « if » contrôle la partie gagnante du jeu en affichant sur quel nombre s’est arrêtée la bille avec le premier « print », avec le second elle lance une phrase qui nous félicite d’avoir gagné et troisième « print » nous annonce à combien est la valeur totale de notre porte-monnaie.

La deuxième partie de la fonction se déroule avec « else » sur le même schéma vue auparavant avec les trois « print » mais pour seule différence le second « print » qui vous annonce que vous n’êtes pas tombé sur le bon numéro.

Conclusion

Pour conclure, ce projet qu’on aurait pu croire facile au premier coup d’oeil fut plus complexe que prévu mais avec de la persévérance et de l’aide de nos professeurs nous avons réussi à atteindre notre but final. Ce projet n’est pas non seulement une réussite au niveau technique mais surtout une réussite au niveau personnel avec la création de son propre jeu. J’espère qu’il vous plaira et n’hésiter pas à l’essayer.