Reglamento general de los foros   •   FAQ   •   Buscar en el foro •  Registrarse | Iniciar sesión 



Foros Linux » Ocio y recreación » El Café


Nuevo tema Responder al tema
 [ 6 mensajes ] 
Patrocinadores

Autor
Buscar:
Mensaje

Desconectado
Forista Nuevo
Forista Nuevo

Registrado: Dom Feb 27, 2011 2:02 pm
Mensajes: 8

Nota Publicado: Dom Feb 27, 2011 2:19 pm 
Arriba  
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

 Perfil Email  

Desconectado
Forista Ancestral
Forista Ancestral
Avatar de Usuario

Registrado: Mié Abr 11, 2007 11:00 pm
Mensajes: 8543
Ubicación: tras la pantalla (...)

Nota Publicado: Dom Feb 27, 2011 2:34 pm 
Arriba  
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

--Not me, guys. I read the Bash man page each day like a Jehovah's Witness reads the Bible. No wait, the Bash man page IS the bible. Excuse me...
(from comp.os.linux.misc)
[ DNFD ] - [ F4A ] - [ dotfiles ]

 Perfil Email WWW  

Desconectado
Forista Nuevo
Forista Nuevo

Registrado: Dom Feb 27, 2011 2:02 pm
Mensajes: 8

Nota Publicado: Dom Feb 27, 2011 6:03 pm 
Arriba  
Pero el RANDOM esta bien? Es ahi donde tengo el error de sintaxis

 Perfil Email  

Desconectado
Ganador CSEL 2011
Ganador CSEL 2011
Avatar de Usuario

Registrado: Dom Dic 12, 2010 10:07 am
Mensajes: 313

Nota Publicado: Dom Feb 27, 2011 6:59 pm 
Arriba  
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:
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

 Perfil Email WWW  

Desconectado
Forista Nuevo
Forista Nuevo

Registrado: Dom Feb 27, 2011 2:02 pm
Mensajes: 8

Nota Publicado: Lun Feb 28, 2011 3:03 am 
Arriba  
Sale el siguiente error

Citar:
3: arithmetic expression: expecting primary: ""

 Perfil Email  

Desconectado
Ganador CSEL 2011
Ganador CSEL 2011
Avatar de Usuario

Registrado: Dom Dic 12, 2010 10:07 am
Mensajes: 313

Nota Publicado: Lun Feb 28, 2011 6:00 am 
Arriba  
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.

 Perfil Email WWW  
Mostrar mensajes previos:  Ordenar por  
 [ 6 mensajes ] 
Nuevo tema Responder al tema

Saltar a:  


¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 invitados

No puede abrir nuevos temas en este Foro
No puede responder a temas en este Foro
No puede editar sus mensajes en este Foro
No puede borrar sus mensajes en este Foro
No puede enviar adjuntos en este Foro

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group :: Style based on FI Subice by phpBBservice.nl :: Todos los horarios son UTC - 6 horas
Traducción al español por Huan Manwë
phpBB SEO