Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

/prog/ Challenge -- Hydrocarbons [Heroic]

Name: Anonymous 2010-08-08 17:50

The challenge: Develop a program that takes in the notation of a hydrocarbon in standard form, and outputs a correct ball-and-stick graphical representation of that hydrocarbon.

The Deadline: 2010-08-30 20:00

Your implementation will be judged based on the following guidelines:


1. Accuracy
2. Consistency
3. Run time
4. Clarity of output
5. Code readability
6. Overall functionality


Good Luck!

Name: Anonymous 2010-08-09 0:09

Fuck your ball-and-stick model.

#!/bin/bash

if [ -z $(type -t seq) ]; then
    seq()
    {
        local i
        i=1

        while [ $i -lt $1 ]; do
            echo $i
            let i++
        done

        echo $1
    }
fi

flat_model()
{
    local i

    echo -n " "
    for i in `seq $1`; do echo -n "  H"; done
    echo -en "\n "
    for i in `seq $1`; do echo -n "  |"; done
    echo -en "\nH"
    for i in `seq $1`; do echo -n "--C"; done
    echo -en "--H\n "
    for i in `seq $1`; do echo -n "  |"; done
    echo -en "\n "
    for i in `seq $1`; do echo -n "  H"; done
    echo
}

display_flat()
{
    REGEX="^C([0-9]+)H([0-9]+)$"

    if [[ $1 =~ $REGEX ]]; then
        CARBON=${BASH_REMATCH[1]}
        HYDROGEN=${BASH_REMATCH[2]}
        let EXPECTED_HYDROGEN=$CARBON*2+2

        if [[ $EXPECTED_HYDROGEN != $HYDROGEN ]]; then
            echo -e "Unexpected number of hydrogen atoms: \033[1m$1\033[0m" &2>1
            return
        fi

        flat_model $CARBON

    else
        echo -e "Input is not a hydrocarbon: \033[1m$1\033[0m" &2>1
        return
    fi
}


if [ $# -lt 1 ]; then
    echo "Usage: $0 C2H6" &2>1
    exit 1
fi

while [ 1 ]; do
    display_flat $1
    shift
    [ -z $1 ] && exit
done

Name: Anonymous 2010-08-09 19:59

>>25
#!/bin/bash

DNA[0]="\-|"
DNA[1]=" \ "
DNA[2]="|-\\"

REGEX="^[CGAT]+$"

if [[ $1 =~ $REGEX ]]; then
    i=0

    for gene in `echo $1 | sed 's/[CGAT]/&\n/g'`; do
        let j=$i%3
        echo " ${DNA[$j]} $gene"
        let i++
    done

else
    echo -e "Usage: \033[1m$0 CCGATTCA\033[0m" &2>1
fi

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List