Partage
  • Partager sur Facebook
  • Partager sur Twitter

MOOC Découvrez le langage Swift / Vos questions

    24 juin 2017 à 11:29:55

    bonjour Zakod

    As-tu résolu ton problème ?

    Sinon, pourrais-tu copier ton code ici afin d'avoir une vue d'ensemble.

    pour ton instance de Personne(), j'aurais plutôt vu 

    let personne = Personne() //minuscule au début du 1er et majuscule pour le second ; par la suite, ton instance s'appellera avec personne.quelque chose

    merci

    • Partager sur Facebook
    • Partager sur Twitter
      24 juin 2017 à 11:58:47

      Bonjour laurentlaure

      Oui j'ai trouvé où était le souci (de ma faute). J'ai posté pour le dire, mais apparemment, ça à bugué là aussi !

      Pour la casse, c'était bien comme tu dis.

      J'ai déjà oublié où était l'erreur ! En tout cas, elle était très bête, et après, j'ai eu honte d'avoir posté là-dessus !

      J'ai fini le cours, j'attends les corrections de mon TP promotion.

      Maintenant, je suis revenu sur objective-c, mais le livre que j'utilise date de xcode 3, et le fichier xib (d'ailleurs nib dans le livre) semble avoir disparu, au profit du storyboard. Autre changement, il n'y a plus à proprement parler Interface Builder, et les connexions entre objets se font de la fenêtre d'application, qui si je ne me trompe pas, est devenue view controller, vers le code lui-même. L'aide Xcode m'est très utile, surtout pour faire des progrès en anglais, mais bien entendu, tous les codes sont du swift. Pourtant, j'ai bien peur d'avoir à utiliser objective-c quand-même, car les imacs sur lesquels mon application tournera en réseau remontent à 2006, quand ce n'est pas 2004 ! À moins que je n'utilise le 24 pouces 2009 avec capitan sur lequel j'ai xcode 8, comme serveur, l'application se trouvera dessus, sous forme de site, auquel se connecteront les (encore plus) vieux.

      Merci de m'avoir répondu et à bientôt

      • Partager sur Facebook
      • Partager sur Twitter

      S'il n'y a pas de solution, c'est qu'il n'y a pas de problème.

        4 juillet 2017 à 16:33:45

        Bonjour,

        Je code sur Xcode sur mon mac sous Swift,

        Je creer une application de petits jeux ( dilèmes, QCM etc... ) en ce moment mais j'ai un problème.

        Je cherche à ajouter une fonction où l'on peut ajouter ses propres petits jeux ( dilèmes, QCM etc... ) sans passer par le code et donc recreer des petits jeux dans l'application.

        Si je ne suis pas asser clair, je vous donnerais de meilleurs explication.

        Merci de votre aide.

        • Partager sur Facebook
        • Partager sur Twitter
          30 juillet 2017 à 9:30:47

          Bonjour à tous.

          Depuis qq temps je lis pas mal de doc sur Swift et je suis (du verbe suivre) les cours OpenClassroom .

          Connaissant un certain nombre de langage je m'étonne de n'avoir pas lu une seule ligne concernant les fichiers ,c'est à dire 

          la possibilité de lire et d'écrire sur un support externe comme le disque dur car enfin il faut pouvoir sauvegarder son travail non !!

          Excusez mon ignorance mais je me pose la question de savoir comment faire ,est-ce seulement possible ?

          • Partager sur Facebook
          • Partager sur Twitter
            31 juillet 2017 à 0:01:28

            Salut PhilippeBeckx

            L'utilisation des fichiers en swift a ete tres encapsule par la bibliotheque standard du language (ce qui est le cas dans beaucoup d'autres languages).

            Une grande partie se repose sur l'utilisation du protocol NSCoder !

            -
            Edité par giantwow 31 juillet 2017 à 0:06:29

            • Partager sur Facebook
            • Partager sur Twitter
            Tutoriels sur GameplayKitSceneKit (iOS 3D game engine), ARKit (iOS réalité augmentée) en cours d'écriture
              23 novembre 2017 à 10:05:21

              Bonjour, J'aimerais savoir comment choisir un élément d'un tableau au hasard. Je m'explique, je voudrais créer un jeux contenant des "cartes" ayant un titre et un contenu. Je voudrais que lorsque je slide vers la gauche j'obtienne une carte "aléatoire" contenue dans mon jeux.

              Je test mon code dans un playground, et je ne trouves pas comment sélectionner de manière aléatoire l'index d'un des éléments du tableau, puis comment en ressortir le texte contenu à l'interieur pour l'afficher. Voila le code que j'ai pour l'instant (ce n'est pas grand chose .....) :

              class Jeux {

              var cartes: [Carte] = []

              func add(carte: Carte){

              cartes.append(carte)

              }

              func listeCartes() -> [Carte] {

              return cartes

              }

              }

              class Carte {

              var titre = ""

              var content = ""

              }

              var jeux = Jeux()

              for i in 1...10 {

              let carte = Carte()

              carte.titre = "Jeux numéro \(i)"

              carte.content = "Contenu de la carte \(i)"

              jeux.add(carte: carte)

              }

              jeux.listeCartes()

              jeux.listeCartes().count

              print(jeux.cartes[1])

              Merci pour votre aide

              -
              Edité par LéoRsln 23 novembre 2017 à 10:06:22

              • Partager sur Facebook
              • Partager sur Twitter
                23 novembre 2017 à 10:48:49

                Salut !

                Tout ce dont tu as besoin est d'une fonction qui sort un nombre aleatoire !

                voici donc une ligne qui créer une variable aléatoire qui peut varier de 0 à 99 inclus ;)

                import Foundation
                let randomNumber = arc4random_uniform(100)



                -
                Edité par giantwow 23 novembre 2017 à 10:49:05

                • Partager sur Facebook
                • Partager sur Twitter
                Tutoriels sur GameplayKitSceneKit (iOS 3D game engine), ARKit (iOS réalité augmentée) en cours d'écriture
                  19 novembre 2018 à 11:29:24

                  Bonjour, j'aimerais savoir comment créer une fonction qui effectue le théorème de Pythagore dans Swift. BC2 = AB2 + AC2.

                  Merci

                  -
                  Edité par Thiecko 19 novembre 2018 à 11:50:34

                  • Partager sur Facebook
                  • Partager sur Twitter
                    19 novembre 2018 à 12:28:32

                    Ton problème n'est pas bien posé ! Le théorème en question permet de faire plusieurs choses : calculer un des côtés de l'angle droit, calculer l'hypoténuse, ou montrer qu'un triangle n'est pas rectangle. Sa réciproque permet de montrer qu'un triangle est rectangle, ou bien qu'on n'a pas d'égalité de pythagore.

                    Prenons le cas premier, sur le plan pédagogique : un triangle est rectangle, on donne les longueurs des côtés de l'angle droit, et il faut calculer l'hypoténuse. On peut concevoir cet algorithme :

                    afficher le message "le triangle ABC est rectangle en B. On a AB = valeur1 et AC = valeur2" (les valeurs peuvent être prises au hasard).

                    afficher le message "Quelle est la longueur de AC ?

                    valeur3 = racine(AB*AB + AC * AC)

                    afficher le message "la valeur de AC = "

                    Après, il te faut implémenter ce pseudocode dans le langage swift.

                    afficher valeur3

                    • Partager sur Facebook
                    • Partager sur Twitter

                    S'il n'y a pas de solution, c'est qu'il n'y a pas de problème.

                      22 novembre 2018 à 12:17:12

                      C'est résolu.

                      Merci beaucoup

                      • Partager sur Facebook
                      • Partager sur Twitter
                        29 novembre 2018 à 12:25:01

                        Bonjour, j'ai besoin de votre aide pour trouver ce qui cloche et le résoudre, merci beaucoup
                        class Character {
                            var lifePoint: Int
                            var attackPoint: Int
                            
                            init() {
                                self.lifePoint = 0
                                self.attackPoint = 0
                            }
                            func introduceYourself() {
                                print("Hello, I have \(lifePoint) life and \(attackPoint) attack points")
                            }
                          // Créer une nouvelle fonction sur la classe //"Personnage", qui prend en paramètre un autre //"Personnage", et qui va retourner le personnage le plus //fort des deux (p. ex. le personnage qui a le plus de //points d'attaque, si identique, le personnage qui a le //plus de points de vie, si identique, le premier //personnage)  
                          func compareTo(_character: Character ) -> Character {
                                if _character.attackPoint > self.attackPoint {
                                    return _character
                                } else if self.lifePoint < self.lifePoint {
                                    return _character
                                } else {
                                    _character.attackPoint == _character.lifePoint
                                    return _character
                                }
                        }
                        
                        class Warrior: Character {
                            override func introduceYourself() {
                                print("I'm a warrior I have \(lifePoint) life and \(attackPoint) attack points")
                            }
                            override init() {
                                super.init()
                                self.lifePoint = 90
                                self.attackPoint = 120
                            }
                            }
                        }
                        
                        class Mage: Character {
                            override func introduceYourself() {
                                print("I'm a mage I have \(lifePoint) life and \(attackPoint) attack points")
                            }
                            override init() {
                                super.init()
                                self.lifePoint = 98
                                self.attackPoint = 2
                            }
                        }
                        
                        let awarrior = Warrior()
                        awarrior.introduceYourself()
                        let amage = Mage()
                        amage.introduceYourself()
                        let character1 = Character()
                        let character2 = Character()
                        let better = Character()
                        better.compareTo(_character: character1)
                        
                        • Partager sur Facebook
                        • Partager sur Twitter
                          29 novembre 2018 à 13:56:17

                          Bonjour, merci beaucoup pour ce cours !! J'apprends beaucoup et il est très agréable à parcourir. Par contre une petite suggestion sur la partie 3 : je trouve que cette partie est très différente des deux premières (il me semble qu'elle a été ajoutée a posteriori) ; la formulation est moins évidente à suivre et il y a plusieurs des erreurs orthographiques. Je trouve aussi qu'elle gagnerait à inclure des TP ou des suggestions d'exercices.. ! Ou des suggestions d'amélioration des TP déjà faits (calculette, RPG, promotion d'étudiants) avec ces nouveaux concepts. Merci

                          • Partager sur Facebook
                          • Partager sur Twitter
                            6 décembre 2018 à 11:47:36

                            Hello,

                            Pour les coquilles, tu peux m'en faire part en MP, je corrigerai ! Si tu as des suggestions d'amélioration du cours, notamment sur la partie 3 comme tu dis, tu peux toujours m'en faire part. Je prend en compte toutes les remarques que l'ont me fait. ;)

                            -
                            Edité par Spader 6 décembre 2018 à 11:47:56

                            • Partager sur Facebook
                            • Partager sur Twitter
                              6 décembre 2018 à 16:29:35

                              Bonjour, je voudrais créer une nouvelle fonction sur la classe "Personnage"  appelee "actionOn"  qui prend en paramètre un autre   "Personnage" et qui va aller déduire des points de vie de ce personnage, les points d'attaque du personnage qui appelle la fonction.
                              (Par exemple, pour A.actionOn(B) : B.lifePoint ayant 10 a la fin de la fonction B aura plus que 5 dans lifePoint si A a 5 points d'attaque).

                              Merci du coup de main

                              class Character {
                                  var lifePoint: Int
                                  var attackPoint: Int
                                  
                                  init() {
                                      self.lifePoint = 0
                                      self.attackPoint = 0
                                  }
                                  func introduceYourself() {
                                      print("Hello, I have \(lifePoint) life and \(attackPoint) attack points")
                                  }
                                  
                                  func compareTo(_character: Character) -> Character {
                                      if _character.attackPoint > self.attackPoint {
                                          return _character
                                          
                                      } else if self.lifePoint < self.lifePoint {
                                          return _character
                                      } else {
                                          _character.attackPoint == _character.lifePoint
                                          return _character
                                      }
                                  }
                              }
                              
                                      
                              
                              class Warrior: Character {
                                  override func introduceYourself() {
                                      print("I'm a warrior I have \(lifePoint) life and \(attackPoint) attack points")
                                  }
                                  override init() {
                                      super.init()
                                      self.lifePoint = 90
                                      self.attackPoint = 120
                                  }
                              }
                              
                              
                              class Mage: Character {
                                  override func introduceYourself() {
                                      print("I'm a mage I have \(lifePoint) life and \(attackPoint) attack points")
                                  }
                                  override init() {
                                      super.init()
                                      self.lifePoint = 98
                                      self.attackPoint = 2
                                  }
                              }
                              
                              let awarrior = Warrior()
                              awarrior.introduceYourself()
                              let amage = Mage()
                              amage.introduceYourself()
                              let character1 = Character()
                              let character2 = Character()
                              let better = Character()
                              better.compareTo(_character: character1)
                              



                              • Partager sur Facebook
                              • Partager sur Twitter
                                29 mai 2019 à 17:17:57

                                Bonjour,

                                J'essaie d'avancer dans le cours mais je bloque sur un problème, dans la partie sur les classes et l'héritage.

                                - dans le cours on crée deux class "Personne" et "Acteur".

                                - Spider nous dis ensuite que dans la class "acteur", on peut créer un tableau qui contient les films dans les seuls il à joué.

                                // tableau avec des String
                                var filmsJoues: [String] = []


                                pour remplir et lire ce tableau pas de souci.

                                // On ajoute dans le tableau
                                acteur.filmsJoues.append("die hard 1")
                                acteur.filmsJoues.append("die hard 2")
                                acteur.filmsJoues.append("die hard 3")
                                
                                // On lis dans le tableau
                                for film in acteur.filmsJoues2 {
                                    print(film)
                                }

                                - Spider nous dit ensuite que l'on pourrait aussi créer une class "Film" et s'en servir pour alimenter le tableau "filmsJoues".
                                Du coup je créé un class "Film" avec :
                                - un variable film
                                - un constructeur
                                - une fonction pour lire mes objets

                                class Film {
                                    // Propriétés
                                    var nomFilm: String
                                    var genre: String
                                    var dateDeSortie: String
                                    
                                    // Constructeur
                                    init(nomFilm: String, genre: String, dateDeSortie: String) {
                                        self.nomFilm = nomFilm
                                        self.genre = genre
                                        self.dateDeSortie = dateDeSortie
                                    }
                                    
                                    // Méthodes
                                    func afficheFilms() {
                                        print("Nom du film : " + self.nomFilm)
                                        print("genre : " + self.genre)
                                        print("Date de sortie : " + self.dateDeSortie)
                                    }
                                }

                                Pour créer des variable et remplir le tableau pas de souci.

                                // Créer des objets Film
                                var film1 = Film(nomFilm: "Die Hard", genre: "action", dateDeSortie: "1988")
                                var film2 = Film(nomFilm: "Die Hard 2", genre: "action", dateDeSortie: "1990")
                                var film3 = Film(nomFilm: "Die Hard 3", genre: "action", dateDeSortie: "1995")
                                
                                // On ajoute les objet au tableau
                                acteur.filmsJoues.append(film1)
                                acteur.filmsJoues.append(film2)
                                acteur.filmsJoues.append(film3)

                                La ou je bloque c'est pour lire le tableau d'objet.
                                Je n'arrive pas à comprendre, ni à faire en sorte de lire chaque objet.

                                for Film in acteur.filmsJoues {
                                    Film.afficheFilms(Film)
                                }
                                Pourriez-vous m'aider ? 
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  19 juin 2019 à 17:45:53

                                  Bonjour,

                                  Il faudrait modifier la question 6 qui n'est surement plus à jour avec la nouvelle version de ce cours, ce genre de boucles n'y est pas expliqué:

                                  De plus, quelques petites précisions sur les structures seraient surement bienvenues. La partie des classes est parfaitement développer contrairement à celle sur les structures, où un débutant pourrait se poser diverses questions supplémentaires:

                                  - Doit-on déclarer ses structures dans des fichiers .swift différents?

                                  - Peut-on utiliser des classes en même temps que des structures?

                                  - Préciser "var" obligatoire et pas de "let"

                                  - Aborder le sujet des mutating func?

                                  Sinon rien à voir avec le cours, mais c'est vraiment dommage qu'Openclassrooms ne puisse pas intervenir sur les notes des correcteurs, c'est vraiment n'importe quoi des fois.

                                  Pas besoin de plus qu'un cerveau pour comprendre que le fait d'utiliser les même variables que celles du cours, donc des variables en français, ne devrait pas porter préjudice sur la note..Notes OPC

                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    18 août 2019 à 10:56:07

                                    @mushi : le problème c’est certainement la syntaxe de ta boucle for

                                    Tu met « for Film in ... »

                                    Or Film c’est le nom de ta classe. Du coup le compilateur doit être perdu. Enlève la majuscule.

                                    • Partager sur Facebook
                                    • Partager sur Twitter

                                    MOOC Découvrez le langage Swift / Vos questions

                                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                    • Editeur
                                    • Markdown