Ce petit programme génère "aléatoirement" un mot en français (à partir d'une liste) et affiche, dans le désordre, les sylables de ce mot en japonais. A vous en suite de retrouver le mot en japonais.
Il est possible de rajouter des mots via un petit formulaire (sur le form1 cliquer sur le bouton "modifier") ce qui rajoutera dans le fichier "add-aja.txt" les mots que vous avez ajouter. Ou encore de consulter l'aide qui regroupe tous les mots japonais dans une liste.
La source est composé de trois form et d'un module, je vous affiche le premier form.
Source / Exemple :
Private Sub cmd_aide_Click()
If Form1.txt_fr = "" Then 'on test si le joueur à lancer un mot, si vide, on n'ouvre pas l'aide
MsgBox ("Vous ne pouvez demander de l'aide sans avoir lancer un nouveau mot.")
Else
Form2.Show 'sinon on ouvre l'aide
End If
End Sub
Private Sub cmd_jouer_Click()
If Form1.txt_fr = "" Then 'on test la valeur du mot en Français, si vide, le jeu n'est pas lancé
a = MsgBox("Vous devez lancer un nouveau mot.", vbInformation, "Attention")
Else
If txt_jap = "" Then 'si la valeur txt_jap (qui correspond à la reponse du joueur) est vide, on ne peut verifier la reponse
a = MsgBox("Vous n'avez rien écrit...", vbInformation, "Attention")
Else
i = lbl_i
If txt_jap = c_motjap.List(i) Then 'on regarde mnt si la valeur dans le textbox est la meme que celle dans le combo
a = MsgBox("C'est correct, bien jouez :)", vbExclamation, "Bien joué")
txt_fr = ""
txt_jap = ""
label_sylable(1) = " "
label_sylable(2) = " "
label_sylable(3) = " "
label_sylable(4) = " " 'on initialise
Else
a = MsgBox("Ce n'est pas bon, retentez..", vbCritical, "Dommage") '
txt_jap = ""
End If
End If
End If
End Sub
Private Sub cmd_modif_Click()
Form1.Hide 'on cache le form1
Form3.Show 'on ouvre le form3
End Sub
Private Sub cmd_quit_Click() 'commande pour quitter le jeu
rep = MsgBox("Vous êtes sur le point de quitter le jeu, êtes vous sûr ?", vbYesNo, "Quitter ?")
If rep = 6 Then
End
End If
End Sub
Private Sub Command1_Click(Index As Integer)
Dim decoup() As String 'découpe le mot en sylable
Dim i As Integer
Dim Y As Integer
txt_jap = ""
label_sylable(1) = " "
label_sylable(2) = " "
label_sylable(3) = " "
label_sylable(4) = " "
Randomize
i = Int(Rnd() * c_motfr.ListCount) 'on donne à i une valeur "aleatoire" de 0 jusqu'au total du combo c_motfr
If txt_fr <> "" Or c_motjap.List(i) <> "" Then 'on test les valeurs pour savoir si on peut découper le mot en sylable
lbl_i = i
txt_fr = c_motfr.List(i) 'on donne au label le mot qui correspond au numero de i
decoup() = Split(c_sylable.List(i), "-") 'on découpe le mot du combo qui correspond au num i
Y = 1 'on donne y = 1
Do
label_sylable(Y) = decoup(Y) 'decoup(0) correspond au premier "-" du mot, on ne le compte donc pas
Y = Y + 1
rep = decoup(Y)
Loop Until rep = "F" 'on arrete lorsque la derniere sylable est égale à "F"
End If
End Sub
Private Sub Form_Load()
Dim cherche() As String
Dim mot As String
Dim renvoi As Boolean
c_motfr.AddItem "Bonjour"
c_motfr.AddItem "Aurevoir"
c_motfr.AddItem "Merci"
c_motfr.AddItem "Force"
c_motfr.AddItem "Terre"
c_motfr.AddItem "Silence"
c_motfr.AddItem "Pourquoi"
c_motfr.AddItem "Lointain"
c_motfr.AddItem "Dépêche toi"
c_motfr.AddItem "Luciole"
c_motjap.AddItem "konichiwa"
c_motjap.AddItem "sayonara"
c_motjap.AddItem "arigatou"
c_motjap.AddItem "chikara"
c_motjap.AddItem "chikyuu"
c_motjap.AddItem "damare"
c_motjap.AddItem "doushite"
c_motjap.AddItem "haruka"
c_motjap.AddItem "hayaku"
c_motjap.AddItem "hotaru"
c_sylable.AddItem "-ni-ko-wa-chi-F"
c_sylable.AddItem "-sa-na-ra yo-F"
c_sylable.AddItem "-ga-tou-ari-F"
c_sylable.AddItem "-ra-chi-ka-F"
c_sylable.AddItem "-ky-uu-chi-F"
c_sylable.AddItem "-da-re-ma-F"
c_sylable.AddItem "-shi-dou-te-F"
c_sylable.AddItem "-ka-ha-ru-F"
c_sylable.AddItem "-ha-ku-ya-F"
c_sylable.AddItem "-ho-ru-ta-F" 'initialisation de 10 mots dans les combo
Dim FileName As String
Dim errCode As Integer
Dim errString As String
Dim fileContent As String
Dim t() As String
Dim nbLines As Long
FileName = "add-aja.txt"
fileContent = ReadFileToBuffer(FileName, errCode, errString)
If errCode = 0 Then
' Découpage en lignes
t() = Split(fileContent, vbCrLf)
' calcul du nombre de lignes et affichage
nbLines = UBound(t()) + IIf(LBound(t()) = 0, 1, 0)
For i = 0 To nbLines - 1
List1.AddItem t(i)
Next i
Else
' Erreur rencontrée, affichage
MsgBox "Erreur lors de la lecture. Code : " & errCode & ". Description : " & errString
End If
i = 0
While Form1.List1.List(i) <> "" 'ici on rajoute les mots qui sont dans le fichier texte
mot = Form1.List1.List(i) 'on donne la chaine de caractere qui est dans la liste dans la variable mot
cherche() = Split(mot, "/") 'on decoupe le mot lorsqu'il y a un espace, pour differencier les thermes
If cherche(0) = "motfr" Then 'on cherche quand le premier mot est "motfr" pour ensuite
a = 0
Do 'verifié que ce mot n'est pas déjà dans la liste
If c_motfr.List(a) = cherche(1) Then
renvoi = False
Else
renvoi = True
End If
a = a + 1
Loop Until renvoi = False Or a = c_motfr.ListCount
If renvoi = True Then
c_motfr.AddItem cherche(1)
End If
End If
If cherche(0) = "motjap" Then 'on cherche quand le premier mot est "motjap" pour ensuite
a = 0
Do 'verifié que ce mot n'est pas déjà dans la liste
If c_motjap.List(a) = cherche(1) Then
renvoi = False
Else
renvoi = True
End If
a = a + 1
Loop Until renvoi = False Or a = c_motjap.ListCount
If renvoi = True Then
c_motjap.AddItem cherche(1)
End If
End If
If cherche(0) = "sylable" Then 'on cherche quand le premier mot est "sylable" pour ensuite
a = 0
Do 'verifié que ce mot n'est pas déjà dans la liste
If c_sylable.List(a) = cherche(1) Then
renvoi = False
Else
renvoi = True
End If
a = a + 1
Loop Until renvoi = False Or a = c_sylable.ListCount
If renvoi = True Then
c_sylable.AddItem cherche(1)
End If
End If
i = i + 1
Wend
End Sub
Conclusion :
J'espère que cela vous plaira, et peu être que vous retiendrez quelques mots Japonais :)
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.