Javascript et python [Résolu]

Signaler
Messages postés
8
Date d'inscription
mardi 24 mars 2020
Statut
Membre
Dernière intervention
9 mai 2020
-
Messages postés
8
Date d'inscription
mardi 24 mars 2020
Statut
Membre
Dernière intervention
9 mai 2020
-
Bonjour à tous j'ai un projet de fin d'année en ISN et j'ai choisis de faire un site internet avec trois jeux dessus : une roulette, une machine à sous et un black jack.

J'ai donc fais un serveur en python qui fonctionne et une page de présentation en python (permettant d'accéder à trois autres pages où il y aurai les jeux)

Je voulais savoir si il était possible avec du javascript faire l'interface de mon jeu python, où je n'ai fais que la partie logique/théorique, cependant il n'y a pas encore d'interface et je pensais faire l'interface en javascript, pour avoir le jeu sur une page web localhost.

5 réponses

Messages postés
28837
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 juillet 2020
2 585
Bonjour,

Oui.

avec en plus, du html et du css.

Et pour que les scripts JS puissent communiquer avec tes codes python, de l'ajax.

Messages postés
8
Date d'inscription
mardi 24 mars 2020
Statut
Membre
Dernière intervention
9 mai 2020

Oh je ne connaissais pas l'ajax mais je verrais et dois-je faire une page html puis intégrer le javascript avec le python ou alors une page python avec du html et du js dedans ?
Salut,
une page Python n'existe pas, sur le web en tout cas.
Elle sert comme tout langage serveur à générer HTML.
De même JavaScript sert essentiellement à manipuler le contenu de la page A.K.A. HTML et sa mise en page présentation/couleur (CSS). Et aussi à gérer l'interactivité(prog. événementielle).
Il y a aussi CANVAS qui est dédié au dessin 2D en bitmap(voire 3D avec webGL) sinon on est limité aux images et éléments visuels du HTML(stylé par CSS donc c'est une limite assez grande auquel on peut ajoute des images vectorielles en SVG par exemple).

"trois jeux dessus : une roulette, une machine à sous et un black jack. "

Si ce n'est que pour avoir du visuel/animation utilisez JavaScript uniquement. L'intérêt de Python vient si vous avez besoin d'une base de données ou pour traiter des fichiers sur le serveur.

JavaScript n'existe que dans le contexte de la page sur le client(navigateur), une fois celle ci fermée il n'y a plus de programme.

Quid des fonctions graphiques de Python? Elles servent éventuellement au traitement de fichiers images mais l'affichage c'est HTML/CSS. Python étant assez marginal ou très spécifique il faut que vous l'installiez sur le serveur ou trouviez un hébergeur qui le propose(marginal par rapport à un langage comme PHP).

Voici un schéma du modèle d'une appli web si vous n'êtes pas familier avec les technologies réseaux:

https://www.commentcamarche.net/contents/221-reseaux-architecture-client-serveur-a-3-niveaux

Un exemple d'animation sans programmation avec CSS):
https://www.w3schools.com/css/css3_animations.asp

un exemple de dessin avec l'API CANVAS en JS(canvas en python ça doit exister mais moins d'intérêt vu qu'il est sur serveur et que JavaScript est inclus dans les navigateurs):
https://www.w3schools.com/graphics/canvas_drawing.asp

Et un tuto sur l'animation avec JS:
https://openclassrooms.com/fr/courses/1916641-dynamisez-vos-sites-web-avec-javascript/1922103-lelement-canvas
En cherchant une librairie JavaScript qui se rapproche de la syntaxe de Python j'ai trouvé ça:

https://waytolearnx.com/2018/12/difference-entre-javascript-et-python.html

Sinon la librairies que je cherchais c'est processing.js
http://processingjs.org/

Pas vraiment de rapport avec Python sauf que la syntaxe est simplifié et sert en tant que langage/support; d’apprentissage de la programmation en s'appuyant sur la création de visuels et d'animation. En tout cas moi ça me fait penser un peu à Python.

Sinon ECMAScript n'est pas si compliqué comme syntaxe et assez permissif tout en étant puissant (surtout en version ES6 et >)
Messages postés
8
Date d'inscription
mardi 24 mars 2020
Statut
Membre
Dernière intervention
9 mai 2020

Donc je peux faire ma page web avec mes jeux uniquement en javascript sans avoir besoin de python, javascript peut faire la partie interface et logique ?
Oui mais il faudra passer par un langage serveur(PHP, PYthon, ASP, ...) si vous avez besoin d'une base de données.

Sinon pas uniquement en JS puisque les contenus de la page doivent être indiqués en HTML et CSS et JS va permettre de les manipuler sans avoir à passer par le serveur(ou AJAX).
HTML et CSS ça correspondrait (plus ou moins) à la vu dans un modèle MVC(plutôt moins car ce n'est pas de la programmation) ou plutôt à la sortie sur une page web du programme(et son entrée aussi, la programmation ne sera là que pour gérer l'interactivité comme un clic qui déclenche une fonction), bien sûr la logique et les variables ne sont pas gérées par le HTML mais transmis de l'un à l'autre par le programme qui peut modifier à volonté le contenu de la page.

ou acquérir une valeur entrée(par exemple un formulaire ou un clic sur un élément).
ça restera un peu trop théorique et confus tant que vous ne pratiquez pas un peu tout ce que je dit.
C'est pour ça que je rajoute des exemple pratiques,
Un clic change le contenu d'un élément(paragraphe de texte) HTML:

https://www.w3schools.com/jsref/prop_html_innerhtml.asp

Ou récupérer la valeur d'un champ de saisie(input) texte avec Javascript:
https://www.w3schools.com/jsref/prop_text_value.asp

Vous pouvez voir que le langage de programmation est étroitement lié à HTML(et CSS) à travers le DOM (Document Objet Model est la représentation de la page 'virtuellement' reprise en objets/functions par JavaScript de façon native-incluse dans le navigateur).
Messages postés
8
Date d'inscription
mardi 24 mars 2020
Statut
Membre
Dernière intervention
9 mai 2020

J'ai déjà réalisé un serveur python que j'ouvre avec le Windows powershell :

#coding:utf-8
import http.server

port = 80
address = ("", port)

server = http.server.HTTPServer

handler = http.server.CGIHTTPRequestHandler
handler.cgi_directories = ["/"]

httpd = server(address, handler)

print(f"Serveur démarré sur le PORT {port}")

httpd.serve_forever()

qui fonctionne très bien et que j'ouvre donc par la suite sur le Windows PowerShell en définissant donc la location Set-Location C:\Users\Asus\Desktop\python puis en faisant la commande python .\http-server.py il est alors ouvert et me dit qu'il est ouvert sur le port 80. Donc ensuite sur mon navigateur je met l'URL localhost/casino.html (ma page de présentation) avec trois balise a qui me redirigerais vers d'autre page où il y aurai donc mes jeux en javascript avec du html et css.
Il existe aussi de nombreuses librairies en JavaScript(équivalent du package Python) qui permettent d'ajouter tout un tas de fonctionnalités sans trop se prendre la tête aussi.
Par exemple pour une roulette:

http://demo.st-marron.info/roulette/sample/demo.html
Messages postés
8
Date d'inscription
mardi 24 mars 2020
Statut
Membre
Dernière intervention
9 mai 2020
> Totogro
j'avais déjà codé une roulette :



#jeu de roulette

from random import randint
#preset (information)
continuer_a_jouer=True

argent=50

print("vous écrirez o pour oui et n pour non tout au long du jeu")

#test age (supérieur ou inferieur a 18 ans)
test_age=input("avez vous 18ans ?: ")
if test_age != "o" :
print("vous êtes trop jeune !")
exit
else:


#début boucle de jeu
while continuer_a_jouer==True:
print("vous avez "+str(argent)+"€")
if argent==0:
print("vous ne pouvez plus jouer! à la prochaine!")
continuer_a_jouer=False

mise_acceptee=False
#reset des tests
type_de_mise=0
couleur=1
chiffre=2
chiffre_pair=3
chiffre_impair=4

#test type de mise
while type_de_mise != couleur and type_de_mise !=chiffre and type_de_mise !=chiffre_pair and type_de_mise !=chiffre_impair:
type_de_mise=int(input("""tapez 1 pour miser sur une couleur (rouge ou noir)
tapez 2 pour miser sur un chiffre de 1 a 36
tapez 3 pour miser sur un chiffre pair
tapez 4 pour miser sur un chiffre impair: """))

#mise couleur
if type_de_mise==couleur:
quelle_couleur=int(input("""tapez 1 pour miser sur rouge
tapez 2 pour miser sur noir: """))

while mise_acceptee==False:
print("vous avez "+str(argent)+"€")
mise=int(input("combien voulez vous miser ?: "))
if argent-mise < 0:
print("votre argent ne peut pas être négatif")
else:
argent=argent-mise
mise_acceptee=True

if quelle_couleur==randint(1,2):
print("Bravo! tu a doublé ta mise")
mise=2*mise
argent=argent+mise
print("vous avez "+str(argent)+"€")
continuer=int(input("voulez vous continuer oui:1 non:2 : "))
if continuer !=1:
continuer_a_jouer=False

else:
print("et c'est perdu ... tu peux toujours réessayer")
print("vous avez "+str(argent)+"€")
if argent==0:
print("vous ne pouvez plus jouer! à la prochaine!")
continuer_a_jouer=False
else:
continuer=int(input("voulez vous continuer oui:1 non:2 : "))
if continuer !=1:
continuer_a_jouer=False

#mise chiffre
elif type_de_mise==chiffre:
quel_chiffre=int(input("tapez un chiffre entre 1 et 36 : "))

while mise_acceptee==False:
print("vous avez "+str(argent)+"€")
mise=int(input("combien voulez vous miser ?: "))
if argent-mise < 0:
print("votre argent ne peut pas être négatif")
else:
argent=argent-mise
mise_acceptee=True

if quel_chiffre==randint(1,36):
print("Bravo! tu remportes 36fois ta mise")
mise=36*mise
argent=argent+mise
print("vous avez "+str(argent)+"€")
continuer=int(input("voulez vous continuer oui:1 non:2 : "))
if continuer !=1:
continuer_a_jouer=False

else:
print("et c'est perdu ... tu peux toujours réessayer")
print("vous avez "+str(argent)+"€")
if argent==0:
print("vous ne pouvez plus jouer! à la prochaine!")
continuer_a_jouer=False
else:
continuer=int(input("voulez vous continuer oui:1 non:2 : "))
if continuer !=1:
continuer_a_jouer=False

#mise chiffre pair
elif type_de_mise==chiffre_pair:
print("vous misez sur un chiffre pair")

while mise_acceptee==False:
print("vous avez "+str(argent)+"€")
mise=int(input("combien voulez vous miser ?: "))
if argent-mise < 0:
print("votre argent ne peut pas être négatif")
else:
argent=argent-mise
mise_acceptee=True

if chiffre_pair==randint(3,4):
print("Bravo! tu remportes 2 fois ta mise")
mise=2*mise
argent=argent+mise
print("vous avez "+str(argent)+"€")
continuer=int(input("voulez vous continuer oui:1 non:2 : "))
if continuer !=1:
continuer_a_jouer=False

else:
print("et c'est perdu ... tu peux toujours réessayer")
print("vous avez "+str(argent)+"€")
if argent==0:
print("vous ne pouvez plus jouer! à la prochaine!")
continuer_a_jouer=False
else:
continuer=int(input("voulez vous continuer oui:1 non:2 : "))
if continuer !=1:
continuer_a_jouer=False

#mise chiffre impair

elif type_de_mise==chiffre_impair:
print("vous misez sur un chiffre pair")

while mise_acceptee==False:
print("vous avez "+str(argent)+"€")
mise=int(input("combien voulez vous miser ?: "))
if argent-mise < 0:
print("votre argent ne peut pas être négatif")
else:
argent=argent-mise
mise_acceptee=True

if chiffre_impair==randint(4,5):
print("Bravo! tu remportes 2 fois ta mise")
mise=2*mise
argent=argent+mise
print("vous avez "+str(argent)+"€")
continuer=int(input("voulez vous continuer oui:1 non:2 : "))
if continuer !=1:
continuer_a_jouer=False

else:
print("et c'est perdu ... tu peux toujours réessayer")
print("vous avez "+str(argent)+"€")
if argent==0:
print("vous ne pouvez plus jouer! à la prochaine!")
continuer_a_jouer=False
else:
continuer=int(input("voulez vous continuer oui:1 non:2 : "))
if continuer !=1:
continuer_a_jouer=False

print("merci d'avoir joué! à la prochaine ")
#programme fini



Donc je recoderai tout ça en javascript et faisant l'interface en plus (à partir d'une image de tapis de roulette je pense).
Messages postés
8
Date d'inscription
mardi 24 mars 2020
Statut
Membre
Dernière intervention
9 mai 2020

Si d'ailleurs il y a un traducteur ou autre de python à javascript je veux bien mdr