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

Android Discussion :

Défi: Créer un puissance 4 de A à Z


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti Avatar de jmud127
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2017
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2017
    Messages : 29
    Par défaut Défi: Créer un puissance 4 de A à Z
    Bonjour ,
    je suis débutant sur Android Studio, pour m'améliorer dans ce langage je me suis lancé le défis de créer de A à Z un Puissance 4 (avec mes connaissances et plus).
    Mon problème est le suivant , je voudrais savoir si il est possible de faire une "pause" dans le programme par exemple,
    j'ai mon programme avec mes boucle if et je voudrais que dans ma boucle if entre 2 étapes il fasse un petite pause a 2 seconde!
    Dans mon cas pour faire comme si le jeton descendais de haut en bas! j'ai mis des boutons en colonnes et en ligne pour représenter le puissance 4 ! et j'ai codé toutes la partie affichage des couleurs en fonction du joueur n°1 ou n°2 mais j'aimerai a présent rajouter cet effet de descente en mettant le bouton du haut de la couleur puis petite pause puis je le remet en blanc puis je fait la même chose avec celui de dessous etc ...

    je me tien disponible pour toute information !

    Merci d'avance
    _______________________________________
    Cordialement jmud127

  2. #2
    Membre Expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Par défaut
    https://docs.oracle.com/javase/7/doc...l#sleep(long):

    mais ça va bloquer le thread UI, donc, pendant l'animation, l'interface va sembler bloquée. Disons que pour un premier jet, c'est facile à faire et peut suffire, mais hors appli étudiant il ne faudrait pas faire ça (dans la vraie vie on aurait un timer avec des callbacks et il faudrait s'assurer de changer l'ui dans le thread de l'ui, avec des appels genre "SwingUtilities.invokeAndWait" <-- la version android de ça).

    PS: en réfléchissant, c'est même pas dit que l'UI arrive à se redessiner pendant les sleep, tu risques donc de ne rien voir du tout. Si jamais ça arrive, pas le choix, il faut faire un thread séparé qui gérera la séquence de l'animation, en laissant le thread ui libre de rafraichir les composants

  3. #3
    Membre averti Avatar de jmud127
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2017
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2017
    Messages : 29
    Par défaut
    ok merci, j'ai tester avec Thread.sleep mais il n'execute pas le code d'avant (voir screen code)Nom : f.PNG
Affichages : 413
Taille : 6,9 Ko

  4. #4
    Membre Expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Par défaut
    PS: en réfléchissant, c'est même pas dit que l'UI arrive à se redessiner pendant les sleep, tu risques donc de ne rien voir du tout. Si jamais ça arrive, pas le choix, il faut faire un thread séparé qui gérera la séquence de l'animation, en laissant le thread ui libre de rafraichir les composants
    Démarre un nouveau thread:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    new Thread(new Runnable(){
        public void run() {
            ...
            Thread.sleep();
            ...
        }
    }).start();

  5. #5
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Pour Android, ce serait plutôt :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    tv.setText("début");
    v.postDelayed(new Runnable() {
     
        @Override
        public void run() {
             tv.setText("fini");
        }
     
    }, 5000);
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  6. #6
    Membre averti Avatar de jmud127
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2017
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2017
    Messages : 29
    Par défaut
    Citation Envoyé par joel.drigo Voir le message
    Pour Android, ce serait plutôt :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    tv.setText("début");
    v.postDelayed(new Runnable() {
     
        @Override
        public void run() {
             tv.setText("fini");
        }
     
    }, 5000);
    Merci cela fonctionne comme je le voulais, je vais voir maintenent si ceux la fonctionne aussi (je suppose que oui) avec le changement de couleur de plusieurs bouton pour faire un effet de descente de couleur, ou dans mon cas de jeton (puissance 4) !
    Merci beaucoup pour vos réponse !

  7. #7
    Membre averti Avatar de jmud127
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2017
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2017
    Messages : 29
    Par défaut
    J'ai repris ton code mais je ne vois absolument pas ou le mettre sans qu'il m'affiche un erreur sur le je pense qu'il faut ajouter le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    try {
                Thread.sleep(5000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
    mais même avec toujours des erreurs le Thread que j'ai mis (en image plus haut) fonctionne mais l'application n'exécute pas le code comme je le voudrais c'est a dire afficher le mot dans la textview puis attendre 5s puis afficher le nouveau mot dans la textview ! Pour moi, il attend 5s affiche et reaffiche donc on ne le vois pas à l'oeil !

Discussions similaires

  1. [Office] Défi n°1 : Créer un jeu de puissance 4
    Par Arkham46 dans le forum Défis
    Réponses: 40
    Dernier message: 16/02/2009, 16h25

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