Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 5
Aller à la page: 1, 2, 3, 4, 5  >
Le jeu du code le plus court
Auteur Message
Répondre en citant
Message Le jeu du code le plus court 
Salut,
je vous propose un jeu pour ceux qui s'ennuient et qui ne savent pas quoi programmer Mr. Green

Le principe est simple:
- un membre poste un code source bien détaillé et commenté.
- les participants doivent raccourcir le code.
- au bout de deux semaines, et si il y a au moins deux participants pour un même code, le code le plus court gagne!
- celui qui a gagné lance le prochain code en jeu.

Note: "court" ne désigne pas le nombre de lignes, donc inutile de mettre des "&", mais désigne le nombre d'octets du code, quand on a ôté les commentaires (:: et REM)


Concrètement: je commence, dans deux semaines si il y a au moins 2 participants, le code le plus court gagne le droit de lancer la prochaine édition du jeu, à la suite de ce topic Wink
Et ainsi de suite, jusqu'à ce que ce topic ait au moins 300 pages Hein? j'ai rien dit du tout moi!




Voici le premier code que vous pouvez tenter de simplifier, afin de lancer le jeu:

Le but de ce code est que à partir de ce fichier...: http://pastebin.com/i28jxZm3
...votre batch doit sortir ça: http://pastebin.com/jGBzjhYY

Voici mon code!
http://pastebin.com/QB34MV95



Bonne chance Wink




______________________________________________________
Cordialement,
Hugo, qui adore programmer, jouer à Minecraft, ZT2 et FSX.
Boutons-liens :
Visiter le site web du posteur Skype
Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message Le jeu du code le plus court 
Je me lance avec mon (incroyable) code:
Pourquoi faire compliquer quand on peut faire simple ?

Version commentée: 1039 1020 octects vs 1850 octects soit presque 1/2 du code de référence
Version raccourcie: 514 497 octects

Version commentée:
http://pastebin.com/EarXja6G
Version raccourcie:
http://pastebin.com/yUGGArzK

Je l'ai recodé a la main en reprenant certains petits trucs.




______________________________________________________
Partager permet le savoir. Le savoir permet de partager de nouveau savoirs.
Répondre en citant
Message Le jeu du code le plus court 
Very Happy

Bon je sais pas si j'ai le droit d'y participer en tant que modo, m'enfin.....

373 octets

Code:

@echo off
setlocal enabledelayedexpansion
(for /f  "eol=# delims=" %%a in (fichier_yaml.txt) do (
  set "$=%%a"
  if "!$:~0,1!"=="c" if not "!$:~4!"=="" (echo !$:~4!) else (echo null)
  if "!$:~1,1!"=="s" if not "!$:~5!"=="" (echo ^| !$:~5!) else (echo ^| null)
  if "!$:~2,1!"=="t" echo ^|^| !$:~6!
  if "!$:~0,1!"=="@" echo.
))>output.txt
notepad.exe output.txt


TS ton code ne fonctionne pas....
Apparemment le prefix. Il n'est pas toujours en [0,1]

Okay




______________________________________________________
AffPng.exe , StringBetween.exe , Hex2Png.exe
Répondre en citant
Message Le jeu du code le plus court 
J'ai rapidement bricolé ça, mais c'est trop lourd pour pouvoir gagner le concours x')
Code:
setlocal ENABLEDELAYEDEXPANSION ENABLEEXTENSIONS
set o=output.txt
set e=echo
set in=if not
%e%.>%o%
for /f "tokens=* eol=#" %%L in ('type fichier.yml') do (
for /f "tokens=1,* delims=:" %%S in ('%e% %%L') do (
set str1=%%S
set str=%%T
set s2=!str1:~0,1!
if "!s2!"=="c" %in% "!str:~1!"=="" %e% !str:~1!>>%o%
if "!s2!"=="c" if "!str:~1!"=="" %e% null>>%o%
if "!s2!"=="s" %in% "!str:~1!"=="" %e% ^| !str:~1!>>%o%
if "!s2!"=="s" if "!str:~1!"=="" %e% ^| null>>%o%
if "!s2!"=="t" %in% "!str:~1!"=="" %e% ^| ^| !str:~1!>>%o%
if "!s2!"=="t" if "!str:~1!"=="" %e% ^| ^| null>>%o%
if "!s2!"=="@" %e%.>>%o%
)
)
pause


Vos codes fonctionnent chez moi, bravo Surprised




______________________________________________________
Cordialement,
Hugo, qui adore programmer, jouer à Minecraft, ZT2 et FSX.
Boutons-liens :
Visiter le site web du posteur Skype
Répondre en citant
Message Le jeu du code le plus court 
sachadee a écrit:
Very Happy

Bon je sais pas si j'ai le droit d'y participer en tant que modo, m'enfin.....

373 octets

Code:

@echo off
setlocal enabledelayedexpansion
(for /f  "eol=# delims=" %%a in (fichier_yaml.txt) do (
  set "$=%%a"
  if "!$:~0,1!"=="c" if not "!$:~4!"=="" (echo !$:~4!) else (echo null)
  if "!$:~1,1!"=="s" if not "!$:~5!"=="" (echo ^| !$:~5!) else (echo ^| null)
  if "!$:~2,1!"=="t" echo ^|^| !$:~6!
  if "!$:~0,1!"=="@" echo.
))>output.txt
notepad.exe output.txt


TS ton code ne fonctionne pas....
Apparemment le prefix. Il n'est pas toujours en [0,1]

Okay


C'est a dire ? Mon code fonctionne bien.

Sinon le préfixe est bon, je l'ai pris du code de référence a la ligne 20:
Code:
:: %%L > L comme ligne...   Le traitement de ce FOR ignore TOUS les espaces en début de ligne dans le yml.





______________________________________________________
Partager permet le savoir. Le savoir permet de partager de nouveau savoirs.
Répondre en citant
Message Le jeu du code le plus court 
Il marche très bien ton code Mr. Green
Peut être qu'il n'est pas compatible avec l'OS de Sacha




______________________________________________________
Cordialement,
Hugo, qui adore programmer, jouer à Minecraft, ZT2 et FSX.
Boutons-liens :
Visiter le site web du posteur Skype
Répondre en citant
Message Le jeu du code le plus court 
Et voilà ça fait deux semaines.
Récapitulatif:
TSnake: 497 octets
Sachadee: 373 octets


Sacha à gagné, à lui de proposer un code à raccourcir! Okay




______________________________________________________
Cordialement,
Hugo, qui adore programmer, jouer à Minecraft, ZT2 et FSX.
Boutons-liens :
Visiter le site web du posteur Skype
Répondre en citant
Message Le jeu du code le plus court 
Bon !

Voici un code que j'avais fait en 2013 et que je ferais certainement d'une manière vraiment différente aujourd'hui.

Vu qu'il y plusieurs manière de réduire et/ou d'optimiser un code je vous le passe tel quel et suis curieux de voir
vos idées pour réduire et amèliorer son fonctionnement :

Sortez votre science et votre sorcellerie du placard et Bonne chance !


Code:

::::Par SachaDee
::::06-2013


@echo off&cls&color f9&MODE CON COLS=100 LINES=100&echo.&set $m=
if exist stat.bat del stat.bat
call :sd

::::LA VARIABLE DONT ON VEUT LA LONGEUR OU LA DECOMPOSITION

Set /p $m=ENTRER UNE CHAINE DE CARACTERE OU ENTER : &echo.&set $esp=0
if not defined $m set $m=BATCH.XOO.IT IS GOOD

:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

setlocal enabledelayedexpansion
set af=echo&set #=%$m%&set #$=do&set /a $l=0&echo [OPTION #I]&echo.
:loop
if defined # (set #=%#:~1%&set $l#=!$m:~%$l%,1!
if  "!$l#!" neq " " (%af%  !$l#! %$l% & set $lh=!$lh! !$l#!&%af% set /a !$l#!+=1 >>stat.bat) else (%af%  # %$l% Espace & set $lh=!$lh!

#&set /a $esp+=1)
set /a $l +=1
goto :loop)
set $lh=!$lh:~1!
echo.
echo LONGUEUR = !$l!&echo.&echo.& pause&echo.&echo.&cls
call :sd
%af% [OPTION #II]& %af%.
%af%   1Ä!$lh!        &set $lh=!$lh:~1!&set c$c=2
for /l %%a in (1,1,!$l!) do (set $tir=!$tir! ³)
set $af2=ÄÄ&set count=1
for %%§ in (!$lh!) %#$% (
       set $tir!=
       if !c$c! lss 10 (set $vl=!c$c!Ä) else (set $vl=!c$c!)
       set /a temp=!$l!-!count!-1
       for /l %%a in (1,1,!temp!) do (set $tir=!$tir!³ )
       %af%   !$vl!!$af2!%%§ !$tir!
       set $af2=!$af2!ÄÄ
 
set /a c$c+=1
set /a count+=1)

echo.&echo.&pause&echo.&echo.


:sd
cls&echo.&echo # By SachaDee #&echo.



Okay




______________________________________________________
AffPng.exe , StringBetween.exe , Hex2Png.exe
Répondre en citant
Message Le jeu du code le plus court 
Perso pour compter le nombre de caractère je fait comme ça ^^
Code:
@echo off
set /p "str=Tapez une chaine : "
call :length  "%str%"

cls &echo "%str%" fait %length% caractŠre de long ! &pause &exit


:length
:: Fonction pour conmpter le nombre de caractère.
for /f "tokens=1* delims=[]" %%a in ('
  "%comspec% /u /c echo:%~1|more|find /n /v """
 ') do set /a "length=%%a-4"
goto:eof





______________________________________________________
Visiter le site web du posteur
Répondre en citant
Message Le jeu du code le plus court 
Citation:
Perso pour compter le nombre de caractère je fait comme ça ^^


Mort de Rire

Si il s'agissait seulement de compter les caractères, ta solution aurait encore au
minimum 100 octets de trop pour gagner.

Mr. Green




______________________________________________________
AffPng.exe , StringBetween.exe , Hex2Png.exe
Répondre en citant
Message Le jeu du code le plus court 
En plus j'ai mis une phrase à l'input, un commentaire et des variables à rallonge, si je Zzip le tout ça fait ça Laughing :

Code:
@set /p a=:
@for /f "tokens=1* delims=[]" %%a in ('
"%comspec% /u /c echo:%a%|more|find /n /v """
') do @set /a "l=%%a-4"
@echo %l% de long
@pause


Ça passe de 329 octets à 135 Laughing
A vous de me battre Mr. Green Okay




______________________________________________________
Visiter le site web du posteur
Répondre en citant
Message Le jeu du code le plus court 
Oui, mais comme Sacha l'a dit, son code ne compte pas seulement les caractères Wink




______________________________________________________
Cordialement,
Hugo, qui adore programmer, jouer à Minecraft, ZT2 et FSX.
Boutons-liens :
Visiter le site web du posteur Skype
Répondre en citant
Message Le jeu du code le plus court 
Je sais mais j'ai la flemme de coder le reste pour rien Laughing




______________________________________________________
Visiter le site web du posteur
Répondre en citant
Message Le jeu du code le plus court 
Ouais mais si le code ne sort pas le même résultat, t'es hors sujet Mort de Rire
Ou alors à Sachadee de trancher si il estime que compter le nombre de caractères suffit, alors que son code affiche des statistiques Laughing




______________________________________________________
Cordialement,
Hugo, qui adore programmer, jouer à Minecraft, ZT2 et FSX.
Boutons-liens :
Visiter le site web du posteur Skype
Répondre en citant
Message Le jeu du code le plus court 
Le but du jeu est de raccourcir un code et qu'il soit bien entendu totalement fonctionnel par la suite.
Si tu raccourcis un code en lui enlevant des fonctionnalités, c'est clairement de la triche...

Mr. Green




______________________________________________________
Une question ? N'hésitez pas à me contacter par Message Privé ou via le topique concerné.
Visiter le site web du posteur
Message Le jeu du code le plus court 


Montrer les messages depuis:
Répondre au sujet Page 1 sur 5
Aller à la page: 1, 2, 3, 4, 5  >
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch