Jump to content

MathieuClem

Members
  • Posts

    765
  • Joined

  • Last visited

Everything posted by MathieuClem

  1. C'est pas un SSD, c'est du stockage flash qui est d'office vu que c'est le Retina 13".
  2. Voilà c'est bien ce que je pensais... Mais du coup pourquoi le Mac swap alors qu'il reste de la RAM libre ... Ça me derange pas que ça swap, mais swap abime le stockage flash non ?
  3. Non, tu y perdrais trop à mon goût. Personne n'achèterait une batterie changée par le vendeur, l'acheteur préfère le faire lui même. Autour de 250€, tu peux le vendre si l'état est bon oui.
  4. Ah pardon je croyais qu'on parlait de la mémoire résidente. Mais vous savez ce qu'est la mémoire virtuelle du coup ?
  5. Beh oui, ça me parait énorme. Je suis à 6,5 avec la même utilisation, mais j'ai la mémoire virtuelle à 8,5 ... Ça swapperai pas quand meme !!?
  6. Mais du coup, j'utilise 7 Go de RAM rien qu'avec Safari et iTunes !? C'est un peu beaucoup non !?
  7. On a beaucoup galéré pour l'algorithme, c'était super redondant !!!
  8. Par contre, j'ai remarqué après l'avoir rendu, que j'avais pas réglé le soucis des nombres négatifs, ça fait crasher le programme ...
  9. import random # ------------------------------------------------------------------------------------------------------------------------------------------------------ labyrinthe = 0 CellulesEnregistrees = 0 globNbrColonnes = 0 globNbrLignes = 0 Entree = 0 Sortie = 0 MursH = 0 MursV = 0 def ChoisirEntreeEtSortie(): """Définition de la cellule d'entrée et de sortie du labyrinthe""" global Entree global Sortie global MursV global MursH a = random.randint(0,1) if a == 0: # On enleve aléatoirement alors un mur, ici le mur est vertical, puis aléatoirement si c'est un mur de gauche ou de droite b = random.randint(0,1) d = globNbrLignes-1 c = random.randint(0,d) if b == 0: # On enlève un mur à gauche et on choisit au hasard lequel MursV[c][0] = False MursV[(d-c)][globNbrColonnes] = False Entree = [c,0] Sortie = [d-c,globNbrColonnes-1] else: # Autrement c'est un mur de droite et on choisit au hasard lequel MursV[c][globNbrColonnes] = False MursV[d-c][0] = False Entree = [c,globNbrColonnes-1] Sortie = [d-c,0] else: # Autrement on enlève un mur horizontal b = random.randint(0,1) d = globNbrColonnes-1 c = random.randint(0,d) if b == 0: # On enlève un mur en haut MursH[0][c] = False MursH[globNbrLignes][(d-c)] = False Entree = [0,c] Sortie = [globNbrLignes-1,(d-c)] else: # Sinon on enlève un mur du bas du labyrinthe MursH[globNbrLignes][c] = False MursH[0][(d-c)] = False Entree = [globNbrLignes-1,c] Sortie = [0,(d-c)] def OuverturedunMurEntre2Cellules(xA, yA, xB, yB): """Destruction d'un mur entre 2 cellules en fonction des cordonnées des cellules A(xA,yA) et B(xB,yB) """ if xA == xB: # Les deux cellules étant sur la meme ligne, on enlève le mur vertical entre elles if yA < yB: MursV[xA][yB] = False else: MursV[xA][yA] = False if yA == yB: # Les deux cellules sont sur la meme colonne, on enlève le mur horizontal entre elles if xA < xB: MursH[xA+1][yA] = False else: MursH[xB+1][yA] = False def AlgoExplorationExhaustive(): """Définition de l'algorithme permettant la création du labyrinthe""" global labyrinthe global CellulesEnregistrees CellulesEnregistrees = [] labyrinthe = [[False]*(globNbrColonnes) for _ in range(globNbrLignes)] a = Entree[0] b = Entree[1] CaseSuivante = 0 labyrinthe[a][b] = True CellulesEnregistrees.append([a,b]) while True: ## On décrit les différentes possibilités d'ouverture entre les cellules, ## Différentes cas sont possibles en fonction de la position des cellules. listeVoisinsVisites = [] if a == 0: if b != 0 and b != (globNbrColonnes-1): # Côté supérieur du labyrinthe excluant les coins if labyrinthe[a+1][b] == False: listeVoisinsVisites.append([a+1,b]) if labyrinthe[a][b-1] == False: listeVoisinsVisites.append([a,b-1]) if labyrinthe[a][b+1] == False: listeVoisinsVisites.append([a,b+1]) else: if b == 0: # Coin supérieur gauche if labyrinthe[a+1][b] == False: listeVoisinsVisites.append([a+1,b]) if labyrinthe[a][b+1] == False: listeVoisinsVisites.append([a,b+1]) else: # Coin supérieur droit if labyrinthe[a+1][b] == False: listeVoisinsVisites.append([a+1,b]) if labyrinthe[a][b-1] == False: listeVoisinsVisites.append([a,b-1]) else: if b == 0: if a == (globNbrLignes - 1): # Coin inférieur gauche if labyrinthe[a][b+1] == False: listeVoisinsVisites.append([a,b+1]) if labyrinthe[a-1][b] == False: listeVoisinsVisites.append([a-1,b]) else: # Côté gauche du labyrinthe en excluant les coins if labyrinthe[a][b+1] == False: listeVoisinsVisites.append([a,b+1]) if labyrinthe[a-1][b] == False: listeVoisinsVisites.append([a-1,b]) if labyrinthe[a+1][b] == False: listeVoisinsVisites.append([a+1,b]) else: if a == (globNbrLignes - 1): if b == (globNbrColonnes - 1): # Coin inférieur droit if labyrinthe[a-1][b] == False: listeVoisinsVisites.append([a-1,b]) if labyrinthe[a][b-1] == False: listeVoisinsVisites.append([a,b-1]) else: # Côté inférieur du labyrinthe en excluant les coins if labyrinthe[a][b-1] == False: listeVoisinsVisites.append([a,b-1]) if labyrinthe[a][b+1] == False: listeVoisinsVisites.append([a,b+1]) if labyrinthe[a-1][b] == False: listeVoisinsVisites.append([a-1,b]) else: if b == (globNbrColonnes - 1): # Côté droit du labyrinthe en excluant les coins if labyrinthe[a+1][b] == False: listeVoisinsVisites.append([a+1,b]) if labyrinthe[a][b-1] == False: listeVoisinsVisites.append([a,b-1]) if labyrinthe[a-1][b] == False: listeVoisinsVisites.append([a-1,b]) else: # N'est pas une case en bordure du labyrinthe if labyrinthe[a+1][b] == False: listeVoisinsVisites.append([a+1,b]) if labyrinthe[a][b-1] == False: listeVoisinsVisites.append([a,b-1]) if labyrinthe[a][b+1] == False: listeVoisinsVisites.append([a,b+1]) if labyrinthe[a-1][b] == False: listeVoisinsVisites.append([a-1,b]) # On vient de créer une liste des voisins que l'on peut visiter if (len(listeVoisinsVisites) > 0): nbrVoisinsNonVisites = 0 if (len(listeVoisinsVisites) > 1): nbrVoisinsNonVisites = random.randint(0,(len(listeVoisinsVisites)-1)) CaseSuivante = listeVoisinsVisites.pop(nbrVoisinsNonVisites) # On choisit un voisin au hasard CellulesEnregistrees.append([a,b]) # On sauvegarde la cellule courante OuverturedunMurEntre2Cellules(a,b,CaseSuivante[0],CaseSuivante[1]) # On ouvre le mur entre les deux cellules else: if (len(CellulesEnregistrees) > 0): CaseSuivante = CellulesEnregistrees.pop() else: break a = CaseSuivante [0] b = CaseSuivante [1] labyrinthe[a][b] = True def printMatrix(NbrLignes, NbrColonnes, MursH, MursV): """Définition du labyrinthe, avec des murs verticaux et horizontaux dans un quadrillage de taille NbrLignes*NbrColonnes""" # var ligne = 0 colonne = 0 # begin for ligne in range(NbrLignes*2+1): string ="" if (ligne%2) == 0: for colonne in range(NbrColonnes*2+1): if (colonne%2) == 0: string += "+" else: if (MursH[ligne//2][(colonne-1)//2]) == True: string += "---" else: string += " " else: for colonne in range(NbrColonnes*2+1): if (colonne%2) == 1: string += " " else: if (MursV[(ligne-1)//2][colonne//2]) == True: string += "|" else: string += " " print (string) # end # ------------------------------------------------------------------------------------------------------------------------------------------------------ def main(): """Programme Main du module Labyrinthe""" # var global globNbrLignes global globNbrColonnes global MursV global MursH global labyrinthe # begin print("%s\n%s\n%s" % ('='*80, __doc__, '='*80)) # begin while True : while True: # Demande de reseignements sur le nombre de colonnes try : NbrColonnes = int(input("Entrez un nombre entier de colonnes du labyrinthe : ")) while NbrColonnes == 0 or NbrColonnes == 1 : NbrColonnes = int(input("Un labyrinthe doit avoir plus d'une colonne, veuillez taper un nombre entier supérieur à 1 : ")) except ValueError : pass else: break while True: # Demande de reseignements sur le nombre de lignes try : NbrLignes = int(input("Entrez un nombre entier de lignes du labyrinthe : ")) while NbrLignes == 0 or NbrLignes == 1 : NbrLignes = int(input("Un labyrinthe doit avoir plus d'une ligne, veuillez taper un nombre entier supérieur à 1 : ")) except ValueError : pass else: break globNbrColonnes = NbrColonnes globNbrLignes = NbrLignes MursH = [[True]*(NbrColonnes) for _ in range(NbrLignes+1)] MursV = [[True]*(NbrColonnes+1) for _ in range(NbrLignes)] ChoisirEntreeEtSortie() AlgoExplorationExhaustive() printMatrix(NbrLignes, NbrColonnes, MursH, MursV) recommencer = input("Voulez-vous générer un nouveau labyrinthe ? Oui ou Non : ") # Demande sur le fait de rejouer ou non while recommencer != "Oui" and recommencer != "Non" : recommencer = input("Voulez-vous générer un nouveau labyrinthe ? Oui ou Non : ") if recommencer == "Oui" : pass elif recommencer == "Non" : break # end # end # ------------------------------------------------------------------------------------------------------------------------------------------------------ if __name__ == '__main__': main() # ======================================================================================================================================================
  10. Programme terminé, ça semble tout bon . J'ai exactement utilisé la fonction append. C'était très redondant, mais ça marchait très bien !!
  11. Salut les gens, comment va la populasse ?! Bon j'ai une petite question : Sur mon MacBook Retina 13", j'ai remarqué ça dans le Moniteur d'activité. Avec Mavericks, j'y comprends plus rien, je trouvais ça beaucoup plus clair avec le camembert. La mémoire virtuelle est de 8 Go ? J'utilise 7,20 Go avec du Safari et iTunes ?!! Merci d'avance pour le petit coup de main
  12. Pas de problème de batterie. C'est lié à Mavericks : problème de codage. Apple répare tout ça en ce moment même pour le MacBook Air et le Pro Retina.
  13. Je possède le Retina, et franchement, c'est devenu une habitude et un réel confort. J'ai du mal à travailler sur le MacBook Pro Classique de mon père. Tout est vraiment plus lisible !
  14. Anonyme veut un MacBook 13", ils ne sont pas configurable avec 1 To de SSD, donc la question des quatres lignes ne se posent pas
  15. LolYang, tu oublies l'écran, clavier et souris aussi :/
  16. Le son de mon MacBook Pro Retina 13" m'a bluffé. Rien à voir avec n'importe quelle chaîne HiFi bien sûr, le son n'est pas extraordinaire, mais ce qui m'a bluffé, c'est la diffusion du son, il sort des 3 côtés, ce qui rend vraiment l'audio agréable à écouter. Au niveau de la qualité du son, rien de transcendant, mais suffisant pour une écoute en fond. J'ai une enceinte JBL Bluetooth quand il faut ambiancer un minimum le salon de l'appart'.
  17. Selon moi, faut opter pour le modèle 2013 dans les 2 cas... La batterie est vraiment impressionnante dans les deux nouvelles machines !
  18. Tu peux prendre le Pro classique si tu le souhaites, mais alors prend le d'occasion, pour 800€ ... Franchement le Air dont tu proposes vaut le coup. Tu achètes un disque dur externe pour 50€, et en plus de cela tu as ton écran externe. Le Air fera laaaargement le travail que tu demandes.
  19. Mout, quand il parle du Pro led, ce n'est simplement le MacBook Pro Classique, et non le Retina ... Pour moi le Air vaut plus le coup que le Pro Classique ..
  20. Essaye de te déconnecter de ton compte iCloud, et de te reconnecter, dans la rubrique iCloud des Réglages
  21. Si tu as accès à l'AOC, tu peux avoir un Air 13", 8Go de Ram et 256 Go de Flash pour 1231€. Je pense que ça serait juste le Mac qu'il te faudrait. Le MacBook Pro est bien trop cher pour ce que c'est. Oublie selon moi.
  22. Beh justement, le prof m'a d'abord demandé de faire 2 matrices booléennes, une avec les murs verticaux, et une avec les murs horizontaux, et ensuite des les joindre pour faire une représentation du labyrinthe. Et ensuite ajouter un algorithme permettant de faire une chemin dans les cellules de la grilles qui sont totalement fermer (def __init__ de départ). Mais bon, créer une matrice booléenne pour représenter des murs j'ai du mal, alors faire un algorithme, je vous raconte même pas... Flok : on a fait de l'ASD pendant 1 mois, maintenant on s'attaque à la programmation pure et dure effectivement ...
×
×
  • Create New...