[Reto Batch] Letras aleatorias

Iniciado por ELVJop, 5 Mayo 2012, 17:18 PM

0 Miembros y 1 Visitante están viendo este tema.

ELVJop

Reto Nº 8
Nombre:           Letras Aleatorias (ELVJop)
Dificultad:         4/10
Objetivo:          Hacer un generador de letras que cree palabras y si coinciden con las palabras de un Archivo.txt mostrarla.
Si tienen alguna duda la postean
El dia 3 de mayo esta cuenta sera borrada.

BatchianoISpyxolo

#1
Funcionamiento:



@echo off
:: by Batchiano :)
setlocal enabledelayedexpansion
SET CHARS=abcdefghijklmnopqrstuvwxyz
set /p FILE=Archivo:
set /p LENGTH=Longitud de palabra:
set /p NW=Numero de palabras a generar:
set /a c=1
set /a d=1
:GenWord
set /a rand=%random%*99/32767
if !rand! LSS 26 (
set WORD=!WORD!!CHARS:~%rand%,1!>nul
set /a c+=1
)
if !c! LEQ !LENGTH! (goto GenWord)
findstr "!WORD!" !FILE! 1>nul && echo !WORD! FOUND || echo !WORD! NOT FOUND
set "WORD="
set /a c=1
set /a d+=1
if !d! LEQ !NW! (goto :GenWord)
pause>nul
Puede que desees aprender a programar desde 0: www.espascal.es

Binary_Death

#2
Pues aquí dejo lo que hice ahora:


@Echo Off
setlocal enableextensions enabledelayedexpansion

set/p "w_n=Palabras a generar >> "
set/p "l_n=Longitud maxima >> "
set/p "f_n=Fichero a comparar >> "

if not exist "%f_n%" exit /b 1

for /l %%_ in (1,1,%w_n%) do (
set/a "len=(!random! %% %l_n%) + 1"
call :_GenRan !len!
1>nul 2>&1, (findstr /r /i "\<!r_s!\>" "%f_n%") && (
echo. Encontrada: !r_s!.
) || (
echo. No encontrada: !r_s!.
)
)
pause 1>nul & exit /b 0

:_GenRan
set "chr_lst=abcdefghijklmnopqrstuvwxyz" & set "r_s="
for /l %%_ in (1,1,%~1) do (
set/a "pos=!random! %% 26"
call set "r_s=!r_s!%%chr_lst:~!pos!,1%%"
)
goto :eof


Quiero más retos  :-[ y un poco más complicados. Creo que está un poco exagerada la dificultad en muchos casos (me refiero al número).

Por ejemplo el cifrado caesar tiene un 7/10, yo tal vez diría que tendría que tener un 6.
Tened en cuenta que 10 es algo complicadísimo, casi imposible de conseguir. Un 7 se acerca demasiado a ese 10.

Este reto con un 4 creo que va bien. También el de fibonacci, se merece ese 7. Pero otros, como Hex2Dec (¿un 3, y este un 4?) le llega un 2.
Al de GetIP le llega un 3 (vamos, es más complicado este reto que obtener la IP).
Al virus HELLO le llega un 4, como a este.

Lo que quiero decir es que no están en proporción. Hay retos que con un 4 son más fáciles que retos con un 2.

Es una sugerencia al moderador encargado de estos retos. ¿Elektro, are you listening to me?  :P

Eleкtro

Cita de: Binary_Death en 22 Julio 2012, 19:28 PM
Lo que quiero decir es que no están en proporción. Hay retos que con un 4 son más fáciles que retos con un 2.

Es una sugerencia al moderador encargado de estos retos. ¿Elektro, are you listening to me?  :P

Para gente avanzada en Batch, Cualquiera de los retos es sencillo, Pero hay que tener en cuenta que la valoración de la dificultad está más orientada a gente medio iniciada en el tema, Y van a ver los temas con más dificultad del que lo verian personas como tú o yo (Incluso con una valoración más alta de la que ya tienen algunos retos).

Un número abajo o uno arriba, Las valoraciones de dificultad me parecen adecuadas por el momento.

Un saludo!








Binary_Death

Sí, por supuesto que todo depende del nivel al que se llegue. Ahí no hay nada que decir  :P

Lo que ocurre es eso, que si tomamos un 5/10 como algo de nivel medio, todos los 5/10 tienen que ser de nivel medio. Si lo tomamos como nivel básico, pues todos tienen que estar acorde a ese nivel.

También ocurre que cada usuario valora la dificultad de una manera según su nivel, y por eso hay discordancias y desproporciones en los niveles de dificultad. Si todos los códigos los valorara una sola persona (tú, en este caso), eso desaparecería.

Es una sugerencia, pero si crees que ya están bien pues nada que decir ;)