Programowanie w Shellu (index)


Programowanie w Shellu (15) - gry, liczby losowe

ZADANIE 15.1

Stworzyć plik hilow.sh postaci:


#!/bin/bash
#
# hilow.sh
#
# Prosta zgadywanka.
# Jest sprawdzenie, czy gracz cos podal.
# Wersja w jezyku polskim.

MAX=100  # maksymalna dozwolona liczba
TRAF=0      # strzal gracza
LICZBA=0    # liczba strzalow
# Losujemy liczbe miedzy 1 a ${MAX}
let "ZAGADKA=$$%${MAX}"   

while [ ${TRAF} -ne ${ZAGADKA} ] 
do
    read -p "Zgaduj: " TRAF
    if [ -z "${TRAF}" ] ; then
        echo "Trzeba podawac liczby..." >& 2
        exit 1
    fi
    if [ ${TRAF} -lt ${ZAGADKA} ] ; then
        echo "... wiecej!"
    elif [ ${TRAF} -gt ${ZAGADKA} ] ; then
        echo "... mniej!"
    fi
    let "LICZBA=LICZBA+1"
done

echo "OK Zgadłeś ${ZAGADKA} w ${LICZBA} krokach."

Uruchomić grę poleceniem ./hilow.sh

LICZBY LOSOWE (CAŁKOWITE) W SHELLU

Pierwszy sposób to wykorzystanie zmiennej $$ zawierającej PID bieżącego procesu powłoki:
let "LICZBA_LOSOWA=$$%100"

Drugi sposób polega na wykorzystaniu zmiennej systemowej RANDOM, która dostarcza liczby losowej z przedziału 0-32767:
let "LICZBA_LOSOWA=${RANDOM}%100"


Programowanie w Shellu (index)