How to resolve the algorithm The Name Game step by step in the UNIX Shell programming language

Published on 12 May 2024 09:40 PM

How to resolve the algorithm The Name Game step by step in the UNIX Shell programming language

Table of Contents

Problem Statement

Write a program that accepts a name as input and outputs the lyrics to the Shirley Ellis song "The Name Game".

The regular verse Unless your name begins with a vowel (A, E, I, O, U), 'B', 'F' or 'M' you don't have to care about special rules. The verse for the name 'Gary' would be like this: At the end of every line, the name gets repeated without the first letter: Gary becomes ary If we take (X) as the full name (Gary) and (Y) as the name without the first letter (ary) the verse would look like this: Vowel as first letter of the name If you have a vowel as the first letter of your name (e.g. Earl) you do not truncate the name. The verse looks like this: 'B', 'F' or 'M' as first letter of the name In case of a 'B', an 'F' or an 'M' (e.g. Billy, Felix, Mary) there is a special rule. The line which would 'rebuild' the name (e.g. bo-billy) is sung without the first letter of the name. The verse for the name Billy looks like this: For the name 'Felix', this would be right:

Let's start with the solution:

Step by Step solution about How to resolve the algorithm The Name Game step by step in the UNIX Shell programming language

Source code in the unix programming language

#!/usr/bin/env bash
namegame() {
  local name=$1 b=b f=f m=m
  local rhyme=${name#[^AaEeIiOoUu]}
  while [[ $rhyme == [^AaEeIiOoUuYy]* ]]; do
    rhyme=${rhyme#?}
  done
  if [[ "$rhyme" == [AEIOU]* ]]; then
    rhyme=$(tr A-Z a-z <<<"$rhyme")
  fi
  if [[ $name == [Bb]* ]]; then
    b=
  fi
  if [[ $name == [Ff]* ]]; then
    f=
  fi
  if [[ $name == [Mm]* ]]; then
    m=
  fi
  printf '%s, %s, bo-%s%s\n' "$name" "$name" "$b" "$rhyme"
  printf 'Banana-fana fo-%s%s\n' "$f" "$rhyme"
  printf 'Fee-fi-mo-%s%s\n' "$m" "$rhyme"
  printf '%s!\n' "$name"
}


for name in Gary Earl Billy Felix Mark Frank; do
  namegame "$name"
  echo
done


  

You may also check:How to resolve the algorithm A+B step by step in the Modula-2 programming language
You may also check:How to resolve the algorithm Dot product step by step in the Mercury programming language
You may also check:How to resolve the algorithm Guess the number step by step in the GML programming language
You may also check:How to resolve the algorithm Determine if a string has all the same characters step by step in the OCaml programming language
You may also check:How to resolve the algorithm Variadic function step by step in the REALbasic programming language