Juego de numeros aleatorios, no encuentro el error [Script]

Foro para tratar temas diversos, incluso, diferentes al tema general del sitio.

Moderador: doc

Responder
PlateroRock
Forista Nuevo
Forista Nuevo
Mensajes: 8
Registrado: Dom Feb 27, 2011 10:02 pm

Juego de numeros aleatorios, no encuentro el error [Script]

Mensaje por PlateroRock »

Buenas linuxeros, abro un nuevo tema para ver si alguien podria ayudarme con un juego. El juego consiste en lo siguiente: aleatoriamente hay un numero que lo asigna el ordenador y la persona que esta detras del ordenador tiene 5 oportunidades para averiguarlo.

La estructura del script seria la siguiente:

#!/bin/bash

x=random(1,50)
print x
print '<br>'
let op=0;
let acierto=0;
false=1
acierto=0

echo 'Dime un número'
read num
$op=$op+1;
while [ num -lt 0 ]; do
echo 'Dime un número positivo'
read num
done

while [ $acierto -ne 1 ] && [ $op -le 5 ]; do
if [ num -eq n ]; then
$acierto=1;
else
if [ $num -lt $n ]; then
echo 'Introducir un numeo mayor'
read num
$op=$op+1;
else
echo 'Introduce un numero menor'
read num
$op=$op+1;
fi
fi
done

if [ $acierto -eq 1 ]; then
if [ $op -eq 1 ]; then
echo 'Eres un genio, a la primera'
else
if [ $op -eq 2 ]; then
echo 'A la segunda'
else
if [ $op -eq 3 ]; then
echo 'A la tercera'
else
if [ $op -eq 4 ]; then
echo 'A la cuarta'
else
echo 'A la quinta'
fi
fi
fi
fi
fi

Avatar de Usuario
niky45
Forista Ancestral
Forista Ancestral
Mensajes: 9186
Registrado: Jue Abr 12, 2007 7:00 am
Ubicación: tras la pantalla (...)
Contactar:

Re: Juego de numeros aleatorios, no encuentro el error [Script]

Mensaje por niky45 »

serias tan amable de:

a) editar el codigo, meterlo entre tags [ code] (busca en el "editor completo"). y indentarlo
o bien:
b) pasarlo via pastie.org o similares.

digo... a mi me cuesta muchisimo leer codigo asi. :?

asi a primera vista, veo un error de sintaxis:
if [ num -eq n ]; then
#deberia ser:
if [ $num -eq n ]; then
y en el while tienes otro:
while [ $num -lt 0 ]; do
y otros tantos en la asignacion:
$acierto=1; ## NO!! lo correcto es esto:
acierto=1
(las de op estan todas igual, es decir, mal.)

y luego no es un error, pero el jaleo que te has hecho con la comparacion del final, se resuleve con un case mucho mas elegantemente (y eficientemente tambien)
case $acierto in 
1) 
echo "a la primera!! " ;;
2)
echo ... ;;
(...)
esac
mas info:

man bash # imprescindible
http://www.etxea.net/docu/taller_bash/bash.html #una excelente guia sobre scripting. (en serio, yo aprendi con esta. )

:D

EDIT: y corria?? que leches de shell estas usando que eso no te tira 200 errores?? :shock:
#446716
>>"Linux: the operating system with a CLUE... Command Line User Environment".
(seen in a posting in comp.software.testing)

[ DNFD ] - [ F4A ] - [ dotfiles ]

PlateroRock
Forista Nuevo
Forista Nuevo
Mensajes: 8
Registrado: Dom Feb 27, 2011 10:02 pm

Re: Juego de numeros aleatorios, no encuentro el error [Script]

Mensaje por PlateroRock »

Pero el RANDOM esta bien? Es ahi donde tengo el error de sintaxis

Avatar de Usuario
t4rr1t0
Ganador CSEL 2011
Ganador CSEL 2011
Mensajes: 357
Registrado: Dom Dic 12, 2010 6:07 pm
Contactar:

Re: Juego de numeros aleatorios, no encuentro el error [Script]

Mensaje por t4rr1t0 »

lo del random es un copia y pega de algun script que no es bash, cierto?
sino no entiendo que hacen alli los print y el br para el espacio.

Código: Seleccionar todo

let x=$(($RANDOM%50+1))
echo $x
Algo asi deberia ser tu Random (asumiendo que lo que querias era un numero entre 1 y 50.

HTH

PlateroRock
Forista Nuevo
Forista Nuevo
Mensajes: 8
Registrado: Dom Feb 27, 2011 10:02 pm

Re: Juego de numeros aleatorios, no encuentro el error [Script]

Mensaje por PlateroRock »

Sale el siguiente error
3: arithmetic expression: expecting primary: ""

Avatar de Usuario
t4rr1t0
Ganador CSEL 2011
Ganador CSEL 2011
Mensajes: 357
Registrado: Dom Dic 12, 2010 6:07 pm
Contactar:

Re: Juego de numeros aleatorios, no encuentro el error [Script]

Mensaje por t4rr1t0 »

A mi me funcionó ese random, vuelve a pegar el codigo con las modificaciones que hiciste.
Corrige el random.
Corrige los errores de asignación de variables
Revisa los nombres de las variables (si generas el aleatorio como $x ¿¿porque despues en la comparación lo llamas $n??)
Con eso el script funcionará.

Y para la proxima no te pongas a copiar pegar trozos de distintos scripts sin tener meretriz idea de lo que hacen. Programar no es eso.

Responder
  • Temas similares
    Respuestas
    Vistas
    Último mensaje