spacer.png, 0 kB
Tower of Hanoi
User Rating: / 0
Written by regicide666   
Sunday, 13 August 2006
#!/bin/bash
#Tower of Hanoi written for binrev forums programming challenge #4
#by regicide666
#This was a fun little game to make and it is fun to play.
#The object is to move all the peices to the 3rd peg
#without the number on top being greater than the number
#on bottom.
#http://www.binrev.com/forums/index.php?showtopic=22173
#http://www.regicide666.com/cms/content/view/42/9/


discs=$1

peg1space=1
peg2space=0
peg3space=0

peg1[0]=0
peg2[0]=0
peg3[0]=0
win[0]=0
move=0

function firstplace {
    while (( $discs > 0 ))
    do
        let "peg1[$peg1space] = $discs"
        let "win[$peg1space] = $discs"
        ((peg1space++))
        ((discs--))
    done
}


function readboard {
    line=$peg1space
    clear
    while (( $line > 0 ))
    do
        echo "  ${peg1[$line]}      ${peg2[$line]}      ${peg3[$line]}"
        ((line--))
    done
    echo "--------------------"
    echo "peg1    peg2    peg3"
    echo ""
    echo ""
    checkwin
    getmove
}

function getmove {
    echo -n "Frome what peg number: "
    read fmv
    echo ""
    echo -n "   To what peg number: "
    read pmv
    getdisc
}

function getdisc {
    case $fmv in
        1) let " peg1top = ${#peg1[*]} - 1"
            dmv=${peg1[$peg1top]};;
        2) let " peg2top = ${#peg2[*]} - 1"
            dmv=${peg2[$peg2top]};;
        3) let " peg3top = ${#peg3[*]} - 1"
            dmv=${peg3[$peg3top]};;
        esac
    if (( $dmv == 0 ))
    then
        echo "nope try again"
        getmove
    fi
  checkmove
}

function checkmove {
    case $pmv in
        1)     let " peg1top = ${#peg1[*]} - 1"
            if (( $dmv < ${peg1[$peg1top]} || "${#peg1[*]}" == 1 ))
            then
                echo "move ok"
                move
            fi;;
        2)     let " peg2top = ${#peg2[*]} - 1"
            if (( $dmv < ${peg2[$peg2top]} || "${#peg2[*]}" == 1 ))
            then
                echo "move ok"
                move
            fi;;
        3)     let " peg3top = ${#peg3[*]} - 1"
            if (( $dmv < ${peg3[$peg3top]} || "${#peg3[*]}" == 1 ))
            then
                echo "move ok"
                move
            fi;;
        esac
    echo "nope try again"
    getmove
}

function move {
    case $fmv in
        1) peg1=(${peg1[@]:0:$((${#peg1[@]}-1))});;
        2) peg2=(${peg2[@]:0:$((${#peg2[@]}-1))});;
        3) peg3=(${peg3[@]:0:$((${#peg3[@]}-1))});;
    esac
    case $pmv in
        1) peg1=("${peg1[@]}" $dmv);;
        2) peg2=("${peg2[@]}" $dmv);;
        3) peg3=("${peg3[@]}" $dmv);;
    esac
    ((move++))
    readboard
}

function checkwin {
    wincheck="${win[*]}"
    peg3check="${peg3[*]}"
    if [ "$wincheck" == "$peg3check" ]
    then
        
        echo " You Won in $SECONDS seconds!!"
        echo " It took you $move moves"
        exit
    fi
}

firstplace
readboard
Last Updated ( Sunday, 13 August 2006 )
 
True Transparency in Xchat
User Rating: / 0
Written by regicide666   
Monday, 18 June 2007
With all the beryl goodness going around I felt it my IRC window should look nice also. I could use a terminal IRC client but I like Xchat, the only problem is the fake transparency.
Last Updated ( Thursday, 14 August 2008 )
Read more...
 
LOLCODE PLZ!!!!!11
User Rating: / 1
Written by regicide666   
Monday, 18 June 2007
    So I am reading some random things on the web when I stumbled on this very cool and very funny project called lolcode. It is a new computer language that gets its syntax from all those sayings on the lolcat pictures that you see every where lately. I am not a big lolcat fan but after looking at some of the example code I just had to try it out for myself.
Last Updated ( Tuesday, 19 June 2007 )
Read more...
 
<< Start < Prev 1 2 3 4 5 6 7 8 9 10 Next > End >>

Results 5 - 8 of 40
Main Menu
Home
News
Blog
Links
HowTo
Code
Contact Me
Search
News Feeds
Gallery
Google Search
Videos
Login Form





Lost Password?
No account yet? Register
Syndicate
Gallery
template design by joomlashack