Application de Calcul mental (Python Kivy) par Corto

(actualisé le ) par Corto

Bonjour et merci d’avoir cliqué sur cet article !
Tout d’abord, je vais vous présenter cette application (APK), uniquement utilisable sur mobile, ou sur Windows et Linux grâce a un terminal de commande assez compliquer.

Ce programme est un "jeu" de calcul mental, qui ne possède que la fonction multiplication, aucune virgule, donc uniquement des nombres entiers.

Le programme est assez simple, on appuie sur les boutons de nombres pour qu’ils apparaissent sur le champ d’entrée, tout en faisant attention qu’ils correspondent au résultat demandé à droite ou le programme vous punira d’un "perdu" et vous ne perdrez aucun point de score.

Ce score, justement, ne baisse donc pas quand vous vous trompez mais augmente quand vous réussissez. Il est à noter que le score peut être remis à zéro grâce au bouton "restart".

Le jeu de calcul mental en APK est en haut de la page.

Pour les programmeurs avides de voir mon code, le voici ci-dessous (comme il n’est pas en Python, n’essayez pas de l’exécuter, ouvrez le terminal Xfce) :

from kivy.app import App
from kivy.uix.gridlayout import GridLayout
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.widget import Widget
from kivy.uix.button import Button
from kivy.uix.label import Label
from kivy.uix.textinput import TextInput
from kivy.uix.popup import Popup
import random


class Ecran_du_Jeu(BoxLayout):
   
    def build(self):
        a=60
        self.nombre1 = random.randint(0,10)
        self.nombre2 = random.randint(0,10)
        self.orientation='vertical'
        self.spacing=20
        self.haut()
        self.chiffres()
        self.BoutonValider=Button(text='Valider', font_size=a,size_hint=(0.5,0.15),pos_hint={'right': 0.75},background_color=[0,1,0,1])
        self.BoutonValider.bind(on_press=self.valider)
        self.add_widget(self.BoutonValider)
       
    def haut(self):
        self.score=0
        Layout1=GridLayout(cols=3,size_hint_y=0.2,padding=20)
        scoretext='Score : ' + str(self.score)
        self.scorelabel=Label(text=scoretext,font_size=60, color=[1,0,0,1])
        calcul=str(self.nombre1) + " X " + str(self.nombre2)
        self.calcul=Label(text=calcul,font_size=60, color=[1,0,0,1])
        Layout1.add_widget(self.calcul)
        self.reponse=''
        self.champreponse = TextInput(text=self.reponse,font_size=80)
        Layout1.add_widget(self.champreponse)
        Layout1.add_widget(self.scorelabel)
        self.add_widget(Layout1)
       
    def chiffres(self):
        a=60
        Layout2=GridLayout(cols=3,size_hint_y=0.5,spacing=10)
        self.Bouton7=Button(text='7', font_size=a)
        self.Bouton7.bind(on_press=self.nombre)
        Layout2.add_widget(self.Bouton7)
        self.Bouton8=Button(text='8', font_size=a)
        self.Bouton8.bind(on_press=self.nombre)
        Layout2.add_widget(self.Bouton8)
        self.Bouton9=Button(text='9', font_size=a)
        self.Bouton9.bind(on_press=self.nombre)
        Layout2.add_widget(self.Bouton9)
        self.Bouton4=Button(text='4', font_size=a)
        self.Bouton4.bind(on_press=self.nombre)
        Layout2.add_widget(self.Bouton4)
        self.Bouton5=Button(text='5', font_size=a)
        self.Bouton5.bind(on_press=self.nombre)
        Layout2.add_widget(self.Bouton5)
        self.Bouton6=Button(text='6', font_size=a)
        self.Bouton6.bind(on_press=self.nombre)
        Layout2.add_widget(self.Bouton6)
        self.Bouton1=Button(text='1', font_size=a)
        self.Bouton1.bind(on_press=self.nombre)
        Layout2.add_widget(self.Bouton1)
        self.Bouton2=Button(text='2', font_size=a)
        self.Bouton2.bind(on_press=self.nombre)
        Layout2.add_widget(self.Bouton2)
        self.Bouton3=Button(text='3', font_size=a)
        self.Bouton3.bind(on_press=self.nombre)
        Layout2.add_widget(self.Bouton3)
        self.BoutonSupress=Button(text='Effacer', background_color=[1,0,0,1], font_size=a)
        self.BoutonSupress.bind(on_press=self.supress)
        Layout2.add_widget(self.BoutonSupress)
        self.Bouton0=Button(text='0', font_size=a)
        self.Bouton0.bind(on_press=self.nombre)
        Layout2.add_widget(self.Bouton0)
        self.BoutonRestart=Button(text='Restart', font_size=a, background_color=[1,0,0,1])
        self.BoutonRestart.bind(on_press=self.restart)
        Layout2.add_widget(self.BoutonRestart)
        self.add_widget(Layout2)
       
    def restart(self,instance):
        self.score=0
        self.scorelabel.text='Score : ' + str(self.score)
        self.reponse=''
        self.champreponse.text=''
       
    def nombre(self,instance):
        self.reponse+=instance.text
        self.champreponse.text=self.reponse
       
    def supress(self,instance):
        self.reponse=''
        self.champreponse.text=''
       
    def next(self):
       
        self.nombre1 = random.randint(0,10)
        self.nombre2 = random.randint(0,10)
        self.champreponse.text=''
        self.calcul.text = str(self.nombre1) + ' X ' + str(self.nombre2)
       
    def valider(self,instance):
        reponse=self.champreponse.text
        self.reponse=''
        if reponse==str(self.nombre1*self.nombre2):
            self.score=self.score+1
            content = Button(text='VRAI', font_size=80)
            popup = Popup(title='+1 point ',content=content, size_hint=(0.30,0.30))
            content.bind(on_press=popup.dismiss)
            popup.open()
            self.scorelabel.text='Score : ' + str(self.score)
            self.next()
        else:
            contentnon = Button(text='louison pauvre kikoo', font_size=80)
            popupnon = Popup(title='+0 point ',content=contentnon, size_hint=(0.30,0.30))
            contentnon.bind(on_press=popupnon.dismiss)
            popupnon.open()
            self.next()
           
           
class CALCUL_MENTALApp(App):
    def build(self):
        Jeu1=Ecran_du_Jeu()
        Jeu1.build()
        return Jeu1
if __name__ == '__main__':
    CALCUL_MENTALApp().run()

Télécharger

Bonne chance et calculez bien !