IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

probleme d'algorithmique depuis un programme VB6


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 81
    Par défaut
    Bonjour,

    J'aimerais faire un petit programme qui calcul le nombre de points par mot au scrabble. C'est à dire que le programme me calcul le score de ce mot au scrabble quelque soit la longueur du mot.
    Je débute en VB6 donc c'est difficile.
    J'ai réalisé mon interface graphique, mais pour la programmation je ne sais pas trop par ou commencer.
    Je n'ai pas encore entré de variable.
    J'ai rentré les lettres avec leurs nombres de point correspondant.
    Puis j'ai voulu interdire tous les autres sigles à part les lettres pour mes mots lorsque je rentre mon mot dans la case texte correspondant! Mais j'ai quelque difficulté! Je sais pas si je dois faire plusieurs conditionnelles ou si en une ligne de code je peux tous les interdire?
    Et pouvez vous m'aider pour la suite, me donner la trame à suivre, svp car je crois que je vais devoir employer les fonctions len et mid mais je sais pas les utilisées! Pouvez-vous m'aider?

    Merci

  2. #2
    Membre Expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Par défaut
    Va falloir y aller par étape.
    Que veux tu faire en premier ? Simplement compter la valeur d'un mot posé sur une grille de Scrabble ? Vérifier si le mot est possible à partir des 7 lettres disponibles ? Vérifier si le mot est possible à partir des 7 lettres disponibles + les lettres déjà posées sur la grille en fonction de l'endroit où tu veux placer le mot (c'est plus dur à faire évidemment) ?
    Bref, si tu débutes en VB, voire en programmation tout court, tu t'attaques à un morceau qui peut devenir vite assez difficile.
    D'une manière générale ici, tu peux trouver des gens de bonne volonté, encore faut-il expliquer clairement ce qui te poses problème.
    Explique où tu as cherché des informations, ce que tu n'as pas compris.
    Donne éventuellement les bouts de code qui posent problème en détaillant l'erreur qui se produit quand c'est le cas (code d'erreur, emplacement, etc...).
    Il faut être le plus clair possible pour espérer avoir une réponse la plus claire possible.
    Tu peux même zipper ton projet et le mettre en pièce jointe à un de tes messages si nécessaire.
    A tout hasard je préfère signaler aussi qu'aucun d'entre nous ne répond à des questions techniques adressées par message privé
    Bienvenue en tout cas sur le forum.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 81
    Par défaut essayer d'être plus clair
    Merci

    Je ne fais pas le plateau de jeu.
    Je veux juste qu'à partir de 7 lettres au hasard que le programme me compte la somme de chaque point de chaque lettre.
    Je ne me soucis pas non plus des mots compte triple ou double puisque je n'ai pas le plateau.
    Ce qui est plus simple je pense!
    Est-ce que je dois déclarer les lettres comme des variables?
    Est-ce plus simple d'utilisé les lettres avec leurs valeurs comme un tableau pour la programation?

    J'enverrais ma feuille de code quand j'aurais avancé un peu plus! lol

  4. #4
    Membre Expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Par défaut
    Je ne sais plus trop combien de valeurs diffétrentes sont disponibles au Scrabble mais ca doit etre du style 1,2,3,4,5,7,10 ?
    Donc ça ne te fait pas beaucoup de cas à traiter.
    Tu prends les letres de ton mot une par une, tu regarde à quelle groupe de lettre elle appartient (groupe des lettres à 1 point, groupe des lettres à 2 points, etc...), tu additionnes au total, tu regardes la lettre suivante, etc..
    Il y a differentes manières de faire ce test, je te laisse en chercher une.
    Reviens avec du code si tu as un soucis.

  5. #5
    Membre émérite Avatar de avigeilpro
    Homme Profil pro
    Ambulancier
    Inscrit en
    Janvier 2004
    Messages
    880
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Creuse (Limousin)

    Informations professionnelles :
    Activité : Ambulancier
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2004
    Messages : 880
    Par défaut
    Je pense que le plus simple est de passer par un tableau, partant du code ascii de la lettre tu arrive à un index dans le tableau et enfin tu réccupère sa valeur. Ainsi tu aurai un tableau de dimension 26.
    Pour ce qui est de la saisie, base toi encore sur le code ascii, dans l'événement KeyPress. Il te suffit de mettre Keyascii à 0 pour les valeur que tu ne veux pas et la touche sera annulée. Tu peux aussi faire que si l'utilisateur frappe une minuscule elle devienne majuscule. C'est assez simple et ca se fait en deux lignes, une pour les majuscule, une pour interdir les autres caractères.
    Jette un oeil à la table ascii, tu comprendra j'en suis sur
    Après une simple soustraction et tu as ton index pour le tableau.
    La connaissance seule ne suffit pas. La vraie compréhension vient de la mise en expérience.
    Règles|FAQ|Tuto

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 81
    Par défaut prob ave ASCII
    Bonjour

    Voila je métrise pas du tout ASCII. Mé j'essaye!
    Pour bloquer les caractères je c 'est pas quel fonction utilisé c'est sa le problème! Il faut que j'utilise KEY ou KEYPRESS, KEYDOWN? car apparement je peux bloquer tous les caractères que je ne veux pas dans mes mots en peu de ligne de code!
    Et je ne voit pas le lien que je pourrai faire entre ce code et mon tableau qui contient les lettres et leurs valeurs?

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 81
    Par défaut probleme d'algorithmique depuis un programme VB6
    Bonjour,
    Voici mon code:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    Option Explicit
    Dim LVal(25) As Integer
     
    Private Sub Form_Load()
    'Attribution des points pour chaque lettre.
    LVal(0) = 1     'A
    LVal(1) = 3     'B
    LVal(2) = 3     'C
    LVal(3) = 2     'D
    LVal(4) = 1     'E
    LVal(5) = 4     'F
    LVal(6) = 2     'G
    LVal(7) = 4     'H
    LVal(8) = 1     'I
    LVal(9) = 8     'J
    LVal(10) = 10     'K
    LVal(11) = 1     'L
    LVal(12) = 2     'M
    LVal(13) = 1     'N
    LVal(14) = 1     'O
    LVal(15) = 3     'P
    LVal(16) = 8     'Q
    LVal(17) = 1     'R
    LVal(18) = 1     'S
    LVal(19) = 1     'T
    LVal(20) = 1     'U
    LVal(21) = 4     'V
    LVal(22) = 10     'W
    LVal(23) = 10     'X
    LVal(24) = 10     'Y
    LVal(25) = 10     'Z
     
     
    End Sub
     
    'Annulation des touches non autorisées : que les lettres majuscules et
    'minuscules (on mettra tout en majuscule après) et BackSpace pour effacer
    Private Sub Text1_KeyPress(KeyAscii As Integer)
        'Différent d'une majuscule
        ' et d'une minuscule (cf table ascii)
        ' et du BackSpace (permet d'effacer en arriere)
        If (KeyAscii < 65 Or KeyAscii > 90) _
            And (KeyAscii < 97 Or KeyAscii > 122) _
                And KeyAscii <> 8 Then
                    KeyAscii = 0 'on annule la touche
        End If
    End Sub
     
    'Passage du mot en Majuscules
    Private Sub Text1_Change()
        Dim I As Integer
     
        I = Text1.SelStart 'on mémorise l'emplacement du curseur
        Text1.Text = UCase(Text1.Text)  'on met tout en majuscule
        Text1.SelStart = I 'on remet le curseur à sa place
     
    End Sub
     
    'Bouton de calcul
    Private Sub Command1_Click()
    Dim Total As Integer
    Dim I As Single
     
    'Ici c'est un peu compressé mais on parcours chaque lettre, on prend sa valeur
    'ascii (65<=X<=90), on enlève 65 (0<=X<=25), on prend dans le tableau à
    'l'index X la valeur que l'on ajoute à Total.
    For I = 1 To Len(Text1.Text)
    Total = LVal(Asc(Mid(Text1.Text, I, 1)) - 65) + Total
    Next
    'on affiche la valeur
    Label1.Caption = Total
     
    End Sub

    J'ai un problème car je sais pas si mon algorithme est juste est surtout je ne sais pas comment traduire la partie ou je transforme les minuscule en majuscule avec selstart et Ucase! Pouvez m'aider.
    Et j'ai un probléme car la variable I est declarer 2 fois mais c'est 2 types différent. Que dois-je faire?

    Voici mon algo de ce programme :


    Algorithme :
    Début
    LVal(0) = 1 'A
    LVal(1) = 3 'B
    LVal(2) = 3 'C
    LVal(3) = 2 'D
    LVal(4) = 1 'E
    LVal(5) = 4 'F
    LVal(6) = 2 'G
    LVal(7) = 4 'H
    LVal(8) = 1 'I
    LVal(9) = 8 'J
    LVal(10) = 10 'K
    LVal(11) = 1 'L
    LVal(12) = 2 'M
    LVal(13) = 1 'N
    LVal(14) = 1 'O
    LVal(15) = 3 'P
    LVal(16) = 8 'Q
    LVal(17) = 1 'R
    LVal(18) = 1 'S
    LVal(19) = 1 'T
    LVal(20) = 1 'U
    LVal(21) = 4 'V
    LVal(22) = 10 'W
    LVal(23) = 10 'X
    LVal(24) = 10 'Y
    LVal(25) = 10 'Z

    ‘annulation des caractères spéciaux’
    si (KeyAscii < 65 ou KeyAscii > 90) et (KeyAscii < 97 ou KeyAscii > 122) et (KeyAscii <> 8)
    alors KeyAscii = 0 ‘on annule la touche’
    Finsi

    ‘transformation des minuscules en majuscule’

    ‘Initialisation’
    ECRIRE ( ‘entrez votre mot’ )
    LIRE (mot)
    Pour i de 1 à len (mot) faire
    Total  Lval(Asc(Mid(mot, I , 1)) – 65) + Total
    FinPour

    ECRIRE(‘le nombre de points est :’ Total)
    LIRE(Total)

    Finsi
    Fin

    lexique
    I = ?
    total= entier
    Lval[25] = entier

    Pouvez-vous m'aider? merci

  8. #8
    Membre Expert
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Par défaut
    Bonjour.

    je suis incapable de te dire si ton algorithme est juste pour la bonne raison que je suis incapable de lire dans te pensées. Il serait peut-êtrte utile de condescendre à nous dire ce que tu veut faire avec ton algorithme ?

    là, ton algorithme calcule un résutat obtenu à partir d'une certaine valeur donné à chaque lettre (ça irais tres bnien pour calculer le score d'un scrable).

    Tu pourrais également nous dire si tu l'à testé et ce que ça donne non ?

    ton problème, sinon, m'à l'air d'être plus un problème de Vb que d'algorithmie, je pense qu'un modo devrais déplacer.
    Une petite optimisation de code par exemple:
    on ne met pas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    LVal(0) = 1     'A
    LVal(1) = 3     'B
    LVal(2) = 3     'C
    LVal(3) = 2     'D
    LVal(4) = 1     'E
    LVal(5) = 4     'F
    LVal(6) = 2     'G
    LVal(7) = 4     'H
    LVal(8) = 1     'I
    LVal(9) = 8     'J
    LVal(10) = 10     'K
    LVal(11) = 1     'L
    LVal(12) = 2     'M
    LVal(13) = 1     'N
    LVal(14) = 1     'O
    LVal(15) = 3     'P
    LVal(16) = 8     'Q
    LVal(17) = 1     'R
    LVal(18) = 1     'S
    LVal(19) = 1     'T
    LVal(20) = 1     'U
    LVal(21) = 4     'V
    LVal(22) = 10     'W
    LVal(23) = 10     'X
    LVal(24) = 10     'Y
    LVal(25) = 10     'Z
    mais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LVal= aray(1,3,3,2... 10)

    sinon, il seraitr aussi utile de nous expliquer où se situe ton problème.

Discussions similaires

  1. Problème sur la commande COPY depuis un programme Java
    Par klereth dans le forum PostgreSQL
    Réponses: 10
    Dernier message: 10/02/2006, 14h14
  2. Probleme menu démarré tous les programmes
    Par tiboooo dans le forum Windows XP
    Réponses: 3
    Dernier message: 17/11/2005, 14h48
  3. [Apache] Probleme d'acces depuis un poste du même LAN
    Par j14z dans le forum Autres Logiciels
    Réponses: 4
    Dernier message: 14/11/2005, 12h54
  4. Problemes d'importation depuis excel
    Par KANCRENAZ dans le forum Access
    Réponses: 3
    Dernier message: 17/02/2005, 09h57
  5. [Kylix] Problème au lancement d'un programme
    Par jeanbi dans le forum EDI
    Réponses: 7
    Dernier message: 19/01/2005, 23h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo