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

Programmation multimédia/Jeux Python Discussion :

Assemblage de deux parties de code


Sujet :

Programmation multimédia/Jeux Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2015
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2015
    Messages : 1
    Par défaut Assemblage de deux parties de code
    Salut à tous !

    Dans le cadre de la spécialité ISN de Terminale S, nous avons voulu créé, un ami et moi, un programme permettant de résoudre des grilles de Sudoku
    Je m'occupe de la partie de l'algorithme de résolution tandis que lui s'est occupé de l'interface graphique.
    Nous avons des problèmes pour "assembler" nos deux codes et nous aurions besoin d'un peu d'aide

    Je vous laisse donc nos deux codes séparément :

    L'algorithme de résolution :

    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
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    #Fonction permettant l'initialisation de la grille de sudoku d'une part et d'une grille des possibles= solution d'autre part#
    def init() :
        global sudoku
        global possible
        sudoku = [[0 for j in range(10)] for i in range(10)]
        possible = [[[0 for k in range(10)] for j in range(10)] for i in range(10)]
     
    #Grille facile (réussite) exemple pour la suivi du code
        place(1,3,6)
        place(1,4,7)
        place(2,2,7)
        place(2,4,9)
        place(2,5,2)
        place(2,7,4)
        place(2,8,5)
        place(3,2,8)
        place(3,3,9)
        place(3,4,3)
        place(3,5,6)
        place(3,6,5)
        place(4,2,3)
        place(4,3,5)
        place(4,4,8)
        place(4,7,2)
        place(4,8,7)
        place(5,1,9)
        place(5,4,2)
        place(5,6,7)
        place(5,9,3)
        place(6,2,2)
        place(6,3,7)
        place(6,6,1)
        place(6,7,5)
        place(6,8,4)
        place(7,4,1)
        place(7,5,7)
        place(7,6,3)
        place(7,7,6)
        place(7,8,8)
        place(8,2,6)
        place(8,3,1)
        place(8,5,8)
        place(8,6,2)
        place(8,8,3)
        place(9,6,6)
        place(9,7,7)
     
    #Grille expert (échec)
    #    place(1,5,8)
    #    place(1,9,3)
    #    place(2,1,3)
    #    place(2,2,8)
    #    place(2,7,5)
    #    place(2,9,7)
    #    place(3,2,2)
    #    place(3,4,1)
    #    place(3,8,6)
    #    place(4,1,7)
    #    place(4,2,4)
    #    place(4,5,6)
    #    place(4,8,8)
    #    place(5,4,5)
    #    place(5,6,1)
    #    place(6,5,4)
    #    place(7,3,2)
    #    place(7,5,9)
    #    place(7,9,4)
    #    place(8,3,6)
    #    place(8,4,7)
    #    place(8,7,8)
    #    place(9,3,4)
    #    place(9,6,6)
    #    place(9,7,7)
     
    def affichage() :
        print
        for x in range(1,10) :
            print (sudoku[x])
        print ()
     
    def jeu() :
        global k
        k=0
        while k==0 :
            k=1
            for x in range(1,10) :
                for y in range(1,10) :
                    verifca(x,y)
            for x in range(1,10) :
                for n in range(1,10) :
                    verifli(x,n)
            for y in range(1,10) :
                for n in range(1,10) :
                    verifco(y,n)
            for z in range(1,10) :
                for n in range(1,10) :
                    verifbl(z,n)
     
    def place(x,y,n) :
        global sudoku
        global possible
        global k
        sudoku[x][y]=n
        for i in range(1,10) :
            if (i!=x) :
                possible[i][y][n]=1
            if (i!=y) :
               possible[x][i][n]=1
            for m in range(1,10) :
                possible[x][y][m]=1
            x1=int((x-1)/3)
            y1=int((y-1)/3)
            i1=int((i-1)/3)
            if (3*x1+(i-1)%3+1!=x or 3*y1+i1+1!=y) :
                possible[3*x1+(i-1)%3+1][3*y1+i1+1][n]=1
        k=0
     
    def verifca(x,y) :
        compteur=0
        for n in range (1,10) :
            if (possible[x][y][n]==0) :
                compteur=compteur+1
                candidat=n
        if (compteur==1) :
            place(x,y,candidat)
     
    def verifli(x,n) :
        compteur=0
        for y in range(1,10) :
            if (possible[x][y][n]==0) :
                compteur=compteur+1
                candidat=y
        if (compteur==1) :
            place(x,candidat,n)
     
    def verifco(y,n) :
        compteur=0
        for x in range(1,10) :
            if (possible[x][y][n]==0) :
                compteur=compteur+1
                candidat=x
        if (compteur==1) :
            place(candidat,y,n)
     
    def verifbl(z,n) :
        compteur=0
        z1=int((z-1)/3)
        for w in range(1,10) :
            w1=int((w-1)/3)
            x1=3*z1+w1+1
            y1=3*((z-1)%3)+(w-1)%3+1
            if (possible[x1][y1][n]==0) :
                compteur=compteur+1
                candidat1=x1
                candidat2=y1
        if (compteur==1) :
            place(candidat1,candidat2,n)
     
    sudoku = []
    possible = []
     
    init()
     
    affichage()
     
    jeu()
     
    isum=0
    for x in range(1,10) :
        for y in range(1,10) :
            isum=isum+sudoku[x][y]
     
    if (isum==405) :
        affichage()
        print ("reussite")
    else :
        affichage()
        print ("echec")

    Puis l'interface graphique de mon ami :

    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
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    from tkinter import *
    import tkinter.messagebox
    import tkinter.filedialog
    import random
     
     
    from numpy import *
    ecriture=("comic sans ms",13)
    nbcase=9
    case=50
    x0,y0=9,9
    chiffre=[0,1,2,3,4,5,6,7,8,9]
     
     
    Mafenetre = Tk()
    Mafenetre.title("Jeu du sudoku")
     
    cases = dict()
    cases=zeros((9,9),'i')
     
     
    def grille():
     
        continuer=1
        while continuer==1:
            i=int(input("Ligne ? (0 à 8) "))
            if i<0 or i>8:
                i=int(input("Ligne ? (0 à 8) "))
     
            j=int(input("Colonne ? (0 à 8) "))
            if j<0 or j>8:
                j=int(input("Colonne ? (0 à 8) "))
     
            m=int(input("Valeur ? (1 à 9) "))
            if m<1 or m>9:
                m=int(input("Valeur ? (1 à 9) "))
     
            cases[j,i] = m;
            continuer=int(input("Continuer ? 1 pour Oui, 0 pour Non "))
     
        for k in range(nbcase+1):
            Can.create_line(x0+case*k, y0,x0+case*k,y0 + nbcase*case)
            Can.create_line(x0, y0+case*k,x0+nbcase*case ,y0+case*k)
            r=1
            c=1
        for r in range(nbcase):
            x = x0 + case * r + case // 2
            for c in range(nbcase):
                y = y0 + case * c + case // 2
     
                if cases[r, c]!=0:
                    cases[r, c] = Can.create_text(x, y, text=cases[r,c])
                else:
                    cases[r, c] = Can.create_text(x, y, text='')
     
     
    def jouer(event):
         w =  event.widget
         value = event.keysym if event.keysym in '123456789' else ''
         if value:
            r, c = correspond(event.y,event.x)
         if (r, c) in cases:
            w.itemconfigure(cases[(r, c)], text=value)
     
     
    def correspond(x,y):
        return [(y-y0)/c,(x-x0)/c]
     
     
    def Apropos():
        tkinter.messagebox.showinfo("A propos","Tutorial Python Tkinter\n(C) Fabrice Sincère")
     
    def Règles():
        tkinter.messagebox.showinfo("Règles","Un sudoku classique contient neuf lignes et neuf colonnes, donc 81 cases au total. Le but du jeu est de remplir ces cases avec des chiffres allant de 1 à 9 en veillant toujours à ce qu'un même chiffre ne figure qu'une seule fois par colonne, une seule fois par ligne, et une seule fois par carré de neuf cases.\nAu début du jeu, Des chiffres sont déjà placés et il vous reste à trouver les autres. En effet, une grille initiale de sudoku correctement constituée ne peut aboutir qu'à une et une seule solution.\n                                         BONNE CHANCE !")
     
    def Résolution():
        tkinter.messagebox.showinfo("Résolution","VOIR AVEC")
    def Quitter():
        Mafenetre.destroy()
     
    Cadre=Frame(Mafenetre)
    TexteC=Text(Mafenetre,height=25,width=25)
    Can=Canvas(Cadre,height=500,width=500,bg="white")
     
    Cadre.grid(row=1,column=0)
    Can.grid(row=2, column=0)
    TexteC.grid(row=1, column=3)
     
    Can.bind( '<KeyPress>', jouer)
    Can.focus_set()
     
    # Création d'un widget Menu
    menubar = Menu(Mafenetre)
     
    menuNouvellePartie = Menu(menubar,tearoff=0)
    menubar.add_command(label="Nouvelle Partie...", command=grille)
     
    menuRésolution = Menu(menubar,tearoff=0)
    menuRésolution.add_command(label="Grille Personelle",command=grille)
    menuRésolution.add_command(label="Grille Actuelle",command=Résolution)
    menubar.add_cascade(label="Résolution", menu=menuRésolution)
     
    menurègles = Menu(menubar,tearoff=0)
    menurègles.add_command(label="Règles", command=Règles)
    menubar.add_cascade(label="Règles", menu=menurègles)
     
    menuaide = Menu(menubar,tearoff=0)
    menuaide.add_command(label="A propos",command=Apropos)
    menubar.add_cascade(label="A propos de", menu=menuaide)
     
    menuQuitter = Menu(menubar,tearoff=0)
    menuQuitter.add_command(label="Quitter", command=Quitter)
    menubar.add_cascade(label="Quitter le jeu", menu=menuQuitter)
     
    # Affichage du menu
    Mafenetre.config(menu=menubar)
     
    # Utilisation d'un dictionnaire pour conserver une référence
    gifdict={}
     
    Mafenetre.mainloop()


    Dans l’espérance que vous pourrez nous apporter de l'aide,
    A bientôt !

    Superfranois

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Salut,

    Citation Envoyé par superfranois Voir le message
    Dans l’espérance que vous pourrez nous apporter de l'aide,
    La difficulté est que vous vous parliez pour savoir quelles sont les fonctions qui permettent de récupérer ce qu'on dessinera côté "interface".
    Une fois défini le rôle et les attentes càd. un tas de fonctions, on pourra peut être vous aider à les écrire.... mais tant que n'est pas défini ce qui doit être passé en paramètre et retourné, çà ne va pas être facile.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre émérite
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2013
    Messages
    485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2013
    Messages : 485
    Par défaut
    superfranois,

    J'ai voulus regarder votre petit code, j'ai laissé tombé au bout d'une minute, désolé.

    Comme vous êtes des lycée et que vous êtes là pour apprendre, je vais vous donner un petit truc pour que l'on puisse plus facilement comprendre, débuguer et améliorer un programme informatique.

    Vous n’êtes pas cours de math: arrêtez avec vos variables à 1 ou 2 caractères.
    x,x1,y,y1,n,i, j,k,z, .... mais ça correspond à quoi?

    Merci d'utiliser des noms de variables explicitent afin de comprendre rapidement les données que vous manipulez sans devoir remonter sans arrêt 10 lignes au dessus.
    En python, nous pouvons utiliser des variables jusqu'à 255 caractères, alors arrêtez d'être avare en ce domaine.
    Et je suis partisan de nom de fonctions et variables plus longues et plus explicites qu'un roman en commentaire.

    Voilà, cette petite remarque pour essayer de vous donner de bonnes habitudes tôt.
    On voit encore trop souvent en entreprise du code illisible (et encore bien pire que le votre) que je trouvais important d'essayer de convertir de jeunes Padawan non encore converti au coté obsure

  4. #4
    Membre averti
    Homme Profil pro
    Lycéen
    Inscrit en
    Janvier 2015
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Janvier 2015
    Messages : 17
    Par défaut
    Salut je suis l'ami en question ^^

    Citation Envoyé par Laurent 1973 Voir le message
    Vous n’êtes pas cours de math: arrêtez avec vos variables à 1 ou 2 caractères.
    x,x1,y,y1,n,i, j,k,z, .... mais ça correspond à quoi?

    Merci d'utiliser des noms de variables explicitent afin de comprendre rapidement les données que vous manipulez sans devoir remonter sans arrêt 10 lignes au dessus.
    En python, nous pouvons utiliser des variables jusqu'à 255 caractères, alors arrêtez d'être avare en ce domaine.
    Et je suis partisan de nom de fonctions et variables plus longues et plus explicites qu'un roman en commentaire.
    On utilise beaucoup des variables mathématiques et on pensait pas qu'il pouvait y avoir autant de caractères, donc merci
    ah oui et est-ce que si on améliore nos codes, vous pourriez y jeter un coup d’œil à nouveau svp?

  5. #5
    Membre émérite
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2013
    Messages
    485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2013
    Messages : 485
    Par défaut
    Si vous faites le petit effort de refactorisation, je ferais celui de plonger dans votre code, ok

  6. #6
    Membre averti
    Homme Profil pro
    Lycéen
    Inscrit en
    Janvier 2015
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Janvier 2015
    Messages : 17
    Par défaut
    Salut Laurent,

    J'ai refactorisé les variables et commenté mon programme, il ne manque plus que mon ami qui devrait très bientôt mettre le sien.
    Merci de nous aide

    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
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    # importation des modules
    from tkinter import *
    import tkinter.messagebox
    import tkinter.filedialog
    import tkinter
    import random
    from numpy import *
     
    ecriture=("comic sans ms",13) # écriture des chiffres
    nbcase=9 # définit le nombre de case en ligne et en colonne
    case=50
    x0, y0 =9,9 # x0 correspond au nombre de lignes en abscisses et y0 celles en ordonées.
     
    # Ouvre la fenêtre graphique et la nomme
    Mafenetre = Tk()
    Mafenetre.title("Jeu du sudoku")
     
    #crée une matrice de 0 pour les remplacer par des chiffres de l'utilisateur.
    cases = dict()
    cases=zeros((9,9),'i')
     
     
    def grille():
    # demande à l'utilisateur les valeurs en ordonée et en abcsisse pour ensuite rentrer un nombre dans la bonne case.
        continuer=1
        while continuer==1:
            i=int(input("Ligne ? (0 à 8) "))
            if i<0 or i>8:
                i=int(input("Ligne ? (0 à 8) "))
     
            j=int(input("Colonne ? (0 à 8) "))
            if j<0 or j>8:
                j=int(input("Colonne ? (0 à 8) "))
     
            m=int(input("Valeur ? (1 à 9) "))
            if m<1 or m>9:
                m=int(input("Valeur ? (1 à 9) "))
     
            cases[j,i] = m;
            continuer=int(input("Continuer ? 1 pour Oui, 0 pour Non "))
     
        for k in range(nbcase+1): #trace les lignes en colonnes et vice-versa sur l'interface graphique.
            Can.create_line(x0+case*k, y0, x0+case*k, y0 + nbcase*case)
            Can.create_line(x0, y0+case*k,x0+nbcase*case ,y0+case*k)
     
            ligne =1
            colonne =1
        for ligne in range(nbcase):
            x = x0 + case * ligne + case // 2
            for colonne in range(nbcase):
                y = y0 + case * colonne + case // 2
     
            if cases[lignes, colonne]!=0:
                    cases[ligne, colonne] = Can.create_text(x, y, text=cases[ligne,colonne]) # rentre l'écriture des cases avec les valeurs
            else:
                    cases[ligne, colonne] = Can.create_text(x, y, text='') #crée le texte à l'intérieur des cases vides
     
    #fonction prise sur internet permettant l'implémentation des chiffres à l'intérieur des cases.
    def jouer(event):
         w =  event.widget
         value = event.keysym if event.keysym in '123456789' else ''
         if value:
            ligne, colonne = correspond(event.y,event.x)
         if (ligne, colonne) in cases:
            w.itemconfigure(cases[(ligne, colonne)], text=value)
     
     
     
    def correspond(x,y):
        return [(y-y0)/colonne,(x-x0)/colonne]
     
    # Fonctions permettant l'affichage de messages sur l'interface et de quitter cette interface
    def Apropos():
        tkinter.messagebox.showinfo("A propos","")
     
    def Règles():
        tkinter.messagebox.showinfo("Règles","Un sudoku classique contient neuf lignes et neuf colonnes, donc 81 cases au total. Le but du jeu est de remplir ces cases avec des chiffres allant de 1 à 9 en veillant toujours à ce qu'un même chiffre ne figure qu'une seule fois par colonne, une seule fois par ligne, et une seule fois par carré de neuf cases.\nAu début du jeu, Des chiffres sont déjà placés et il vous reste à trouver les autres. En effet, une grille initiale de sudoku correctement constituée ne peut aboutir qu'à une et une seule solution.", justify=tkinter.RIGHT)
     
    def Résolution():
        tkinter.messagebox.showinfo("Résolution","VOIR AVEC PIERRE-FRANCOIS")
    def Quitter():
        Mafenetre.destroy()
     
     
    Cadre=Frame(Mafenetre)
    TexteC=Text(Mafenetre,height=25,width=25)
    Can=Canvas(Cadre,height=500,width=500,bg="white")
     
    Cadre.grid(row=1,column=0)
    Can.grid(row=2, column=0)
    TexteC.grid(row=1, column=3)
    Can.bind( '<KeyPress>', jouer)
    Can.focus_set()
     
    # Création d'un widget Menu
    menubar = Menu(Mafenetre)
     
    menuNouvellePartie = Menu(menubar,tearoff=0)
    menubar.add_command(label="Nouvelle Partie...", command=grille)
     
    menuRésolution = Menu(menubar,tearoff=0)
    menuRésolution.add_command(label="Grille Personelle",command=grille)
    menuRésolution.add_command(label="Grille Actuelle",command=Résolution)
    menubar.add_cascade(label="Résolution", menu=menuRésolution)
     
    menurègles = Menu(menubar,tearoff=0)
    menurègles.add_command(label="Règles", command=Règles)
    menubar.add_cascade(label="Règles", menu=menurègles)
     
    menuaide = Menu(menubar,tearoff=0)
    menuaide.add_command(label="A propos",command=Apropos)
    menubar.add_cascade(label="A propos de", menu=menuaide)
     
    menuQuitter = Menu(menubar,tearoff=0)
    menuQuitter.add_command(label="Quitter", command=Quitter)
    menubar.add_cascade(label="Quitter le jeu", menu=menuQuitter)
     
    # Affichage du menu
    Mafenetre.config(menu=menubar)
     
    # Utilisation d'un dictionnaire pour conserver une référence
    gifdict={}
     
    Mafenetre.mainloop()

Discussions similaires

  1. rs 232 et assemblage de deux codes C
    Par ahmednaess dans le forum C
    Réponses: 4
    Dernier message: 01/07/2013, 19h46
  2. Diviser un code trop long en deux parties
    Par CHARLI BONGO dans le forum VBA Access
    Réponses: 2
    Dernier message: 11/10/2012, 16h41
  3. [Toutes versions] [VBA] Assemblage de deux codes
    Par hunter76 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 06/01/2012, 17h16
  4. une partie du code a disparu
    Par recup dans le forum Balisage (X)HTML et validation W3C
    Réponses: 9
    Dernier message: 08/03/2005, 10h08
  5. Indenter une partie du code
    Par KooX dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 23/05/2004, 17h38

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