[R] Génération de texte selon paramètres

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
ultimateheadcenter
Niveau 2
Niveau 2
Messages : 21
Enregistré le : sam. 30 juil. 2016 15:35
Status : Hors ligne

[R] Génération de texte selon paramètres

#1

Message par ultimateheadcenter »

Bonjour, j'ai besoin de générer un texte selon certains paramètres et j'aimerais connaitre une bonne solution pour le faire.
Pour vous donner une exemple
$taille = la longueur des lignes à générer(doit être un nombre inpair) ET la longueur totale en lignes
la première et dernière ligne doivent être constitué que de 1
ensuite chaque ligne du corps doit commencer et finir par 1 et au milieu s'y trouve une suite de 01
et pour finir convertir un "1" en "S" et un autre en "E" au hasard


FONCTIONNEL: (Sans le random pour remplacer S et E car sa c'est particulier à mon script sa servira à personne)
_Gen("9")
Func _Gen($taille)
   Local $TEXT
   #Region START
   For $istart = 1 To $taille
      $TEXT &= "1"
   Next
   $TEXT &= @CRLF
   #EndRegion START
   #Region BODY
   For $LINES = 1 To $taille - 2 ;LINES
;~       $TEXT &= "1"
      For $LENGHT = 1 To $taille - 1 ;LENGHT
         $TEXT &= "0"
      Next
      $TEXT &= "1"
      $TEXT &= @CRLF
   Next
   #EndRegion BODY
   #Region END
   For $iend = 1 To $taille
      $TEXT &= "1"
   Next
   #EndRegion END
   #Region REGEX
   $REG = StringRegExpReplace($TEXT, "00","10")
   #EndRegion REGEX

;~    ConsoleWrite($TEXT & @CRLF)
   ConsoleWrite(@CRLF & $REG & @CRLF)
EndFunc   ;==>_Gen
Modifié en dernier par ultimateheadcenter le mer. 03 août 2016 19:59, modifié 3 fois.
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: Generation texte selon parametres

#2

Message par orax »

Pour vérifier que le nombre est impair (si c'est nécessaire) : BitAND(5, 1)
5 ET 1 = 1 donc 5 est impair
1 0 1 (5)
0 0 1 (1)
-----
0 0 1 (1)
Autre solution : Mod(5, 2) ; = 1
et pour finir convertir un "1" en "S" et un autre en "E" au hasard
Je dirais... StringReplace pour le remplacement, Random pour tirer un nombre au hasard et StringLen pour avoir la longueur de la chaîne.
Modifié en dernier par orax le mar. 09 août 2016 19:27, modifié 2 fois.
Raison : Ajout de la solution avec Mod().
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
ultimateheadcenter
Niveau 2
Niveau 2
Messages : 21
Enregistré le : sam. 30 juil. 2016 15:35
Status : Hors ligne

Re: Generation texte selon parametres

#3

Message par ultimateheadcenter »

Bonjour merci pour la réponse !
Comment faire pour appliquer la regex à tous les 0 présents ?
Le faire dans une loop ligne par ligne ?

Voilà où j'en suis sa me convient mais c'est sur que l'avant dernière lettre de chaque ligne est un 0 sa fait tâche ^^ si vous avez une solution
_Gen("100")
Func _Gen($taille)
   Local $TEXT
   #Region START
   For $istart = 1 To $taille
      $TEXT &= "1"
   Next
   $TEXT &= @CRLF
   #EndRegion START
   #Region BODY
   For $LINES = 1 To $taille - 2 ;LINES
;~       $TEXT &= "1"
      For $LENGHT = 1 To $taille - 1 ;LENGHT
         $TEXT &= "0"
      Next
      $TEXT &= "1"
      $TEXT &= @CRLF
   Next
   #EndRegion BODY
   #Region END
   For $iend = 1 To $taille
      $TEXT &= "1"
   Next
   #EndRegion END
   #Region REGEX
   $REG = StringRegExpReplace($TEXT, "00","10")
   #EndRegion REGEX

;~    ConsoleWrite($TEXT & @CRLF)
   ConsoleWrite(@CRLF & $REG & @CRLF)
EndFunc   ;==>_Gen
Modifié en dernier par ultimateheadcenter le mer. 03 août 2016 19:53, modifié 1 fois.
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: Generation texte selon parametres

#4

Message par orax »

Comment faire pour appliquer la regex à tous les 0 présents ?
J'avais supprimé la regex de mon message pendant que tu devais écrire le tien. J'avais répondu un peu trop vite, elle ne sera pas utile.
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
ultimateheadcenter
Niveau 2
Niveau 2
Messages : 21
Enregistré le : sam. 30 juil. 2016 15:35
Status : Hors ligne

Re: Generation texte selon parametres

#5

Message par ultimateheadcenter »

Ah daccord oui je viens de voir !

Voilà j'ai finit tout fonctionne ^^

Un grand merci
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [R]Generation texte selon parametres  

#6

Message par orax »

J'ai modifié quelques trucs. ^^
ConsoleWrite(_Gen(9) & @CRLF)
Func _Gen($taille)
   If Mod($taille, 2) = 0 Then Return SetError(1) ; si nombre pair
   #Region START
   Local $startEnd
   For $istart = 1 To $taille
      $startEnd &= "1"
   Next
   Local $TEXT = $startEnd & @CRLF
   #EndRegion START
   #Region BODY
   Local $body
   For $LENGHT = 1 To Floor($taille / 2) ;LENGHT
      $body &= "01"
   Next
   For $LINES = 1 To $taille - 2 ;LINES
      $TEXT &= "1" & $body & @CRLF
   Next
   #EndRegion BODY
   #Region END
   $TEXT &= $startEnd
   #EndRegion END
   Return $TEXT
EndFunc   ;==>_Gen
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
ultimateheadcenter
Niveau 2
Niveau 2
Messages : 21
Enregistré le : sam. 30 juil. 2016 15:35
Status : Hors ligne

Re: [R] Génération de texte selon paramètres

#7

Message par ultimateheadcenter »

J'ai pas mal modifié aussi mais je penses que je vais repartir sur ta nouvelle base et rajouté adapté ce que j'ai personnellement ajouté, car c'est plus propre lol ^^.
Merci beaucoup :)
Maintenant mon générateur fonctionne, mon pathfinding aussi pour le moment en mode complètement aléatoire genre random(gauche droite haut bas) sans gestion de direction ou de retour en arrière, je galère justement avec la gestion du retour >.<
je vais surement demander de l'aide dans pas longtemps sur le forum lol ^^
C'est impressionnant comment Autoit est puissant tout en restant simple comparé à d'autres ^^


Pensez vous que le pathfinding sera plus rapide sur une plus grosse machine, ou autoit s’exécute à peu près a la même vitesse peut importe le cpu ?
Car pour le moment je suis a 1000 moves / secondes sur une machine toute pourrie ^^
Répondre