DEV Community

Swastik Baranwal
Swastik Baranwal

Posted on

ascii_robot: ASCII Robot Generator in V

ascii robot

ASCII Robot Generator in V

GitHub logo Delta456 / ascii_robot

ASCII Robot Generator in V

ascii robot

ASCII Robot Generator in V

Installation:

  • Via git clone
    • git clone https://github.com/Delta456/ascii_robot
  • Via v install
    • v install ascii_robot
  • Via vpkg
    • vpkg install ascii_robot

Usage

  • random_id() returns a random 5 digit hex number in string.

  • generate(string) returns a string optional. string returns random made ASCII bot depending upon the 5 digit number.

  • must_generate(string) is same as generate() but returns an empty string if the hex number provided is not valid.

  • random_robot() returns a random ASCII robot.

In main.v

import delta456.ascii_robot as robot import rand fn main() { rand.seed([u32(42), 0]) // or use your seeder println(robot.must_generate('1f35a')) for i := 0; i < 5; i++ { println(robot.random_robot()) } } 
Enter fullscreen mode Exit fullscreen mode

Bot Types

Total ASCII Robot Types possible:

 _ _,_,_ _ \( q p )/ \_#_/ .==|>o<|==:=L '=c|___| ]| |[ [_| |_] ,_,_, \O

Installation:

  • Via git clone
    • git clone https://github.com/Delta456/ascii_robot
  • Via v install
    • v install ascii_robot
  • Via vpkg
    • vpkg install ascii_robot

Usage

  • random_id() returns a random 5 digit hex number in string.

  • generate(string) returns a string optional. string returns random made ASCII bot depending upon the 5 digit number.

  • must_generate(string) is same as generate() but returns an empty string if the hex number provided is not valid.

  • random_robot() returns a random ASCII robot.

In main.v

import delta456.ascii_robot as robot import rand fn main() { rand.seed([u32(42), 0]) // or use your seeder println(robot.must_generate('1f35a')) for i := 0; i < 5; i++ { println(robot.random_robot()) } } 
Enter fullscreen mode Exit fullscreen mode

Bot Types

Total ASCII Robot Types possible:

 _ _,_,_ _ \( q p )/ \_#_/ .==|>o<|==:=L '=c|___| ]| |[ [_| |_] ,_,_, \O O/ /_E_\ ()ooo|\=/|ooo() |___| /| |\ [_] [_] T___ |O O| \_^_/ /|(\)|\ d |___| b .'._.'. |_| |_| \.===./ | p q | \_^_/ /| []|\ ()/|___|\() /| |\ (0) (0) T___ |q p| \_`_/ (m9\:::/\ /___\6 // \\ _\\ //_ ,_,_, \b d/ /_@_\ (m9\:::/\ /___\6 [] [] /:] [:\ .---. } n n { \_-_/ .'c ."|_|". n`. '--' /_\ `--' /| |\ [_] [_] \.===./ | O O | \_E_/ ,"|+ |". _\|+__|/_ ]| |[ [_| |_] ,_,_, \p q/ /_-_\ )=o=|L88|=o=( )=o=|___|=o=( [] [] /:] [:\ )_( |0 0| |_A_| (m9\:::/\ /___\6 /| |\ (0) (0) _._._ -)q p(- \_#_/ .'c ."|_|". n`. '--' /_\ `--' ( ) __) (__ Y__ _/p q\_ \_-_/ /|(\)|\ d |___| b ]| |[ [_| |_] .---. } d b { \_r_/ (m9\:::/\ /___\6 /7 [| \/7 [|_ ___T_ | 6=6 | |__o__| >===]__o[===< [o__] .". |_| ___T_ | - - | |__v__| .=[::+]=. ]=' [___] '=[ / | _\ |_ .===./` /.d b.\ "\_v_/" .=(+++)=. o=" (___) "=o . \_/ . . .:::.. . _._._ -)q p(- \_v_/ .=(+++)=. o=" (___) "=o // \\ _\\ //_ |---| |q p| |_O_| }-. /\--o/\ .-{ " |___| " ( ) __) (__ _ _,_,_ _ \( 9 9 )/ \_`_/ /| []|\ ()/|___|\() |_|_| /_|_\ o___o //O O\\ |\_E_/| ,=|x|=. 'c/_\ 'c . \_/ . . .:::.. . .===. //O O\\ \\_@_// ,=|x|=. 'c/_\ 'c |_|_| /_|_\ .===. //- -\\ \\_#_// }-. /\--o/\ .-{ " |___| " [] [] /:] [:\ ,_,_, \- -/ /_n_\ >===]__o[===< [o__] /7 [| \/7 [|_ .=._,=. ' (9 9) ` _)=(_ .==|>o<|==:=L '=c|___| .". |_| T___ |d b| \_=_/ >===]__o[===< [o__] /| |\ (0) (0) T___ |q p| \_A_/ ,"|+ |". _\|+__|/_ ]| |[ [_| |_] __i [o o] ]#[ /|(\)|\ d |___| b .'._.'. |_| |_| T___ |O O| \_O_/ >===]__o[===< [o__] . /___\ . . ..:::::::. . \.===./ | [o] | \_o_/ .'c ."|_|". n`. '--' /_\ `--' .". |_| .===. //9 9\\ \\_n_// )=o=|L88|=o=( )=o=|___|=o=( [] [] /:] [:\ __i [n n] ]-[ /|(\)|\ d |___| b ( ) __) (__ .=._,=. ' (o o) ` _)n(_ ,"|+ |". _\|+__|/_ _// \\_ /_o| |o_\ .---. } q p { \_`_/ 7--|=0=|--< |___| /7 [| \/7 [|_ ___T_ | ooo | |__n__| 7--|=0=|--< |___| . /___\ . . ..:::::::. . ,_,_, \d d/ /_#_\ /| []|\ ()/|___|\() / | _\ |_ |---| |b d| |_u_| }-. /\--o/\ .-{ " |___| " (_|_) (o|o) _._._ -)ooo(- \_v_/ ()ooo|\=/|ooo() |___| / | _\ |_ __i [p q] ]r[ (m9\:::/\ /___\6 /| |\ (0) (0) .===. //O O\\ \\_#_// ,=|x|=. 'c/_\ 'c [] [] /:] [:\ .-. ._(u u)_. (_O_) ,"|+ |". _\|+__|/_ ( ) __) (__ _._._ -)d b(- \_@_/ }-. /\--o/\ .-{ " |___| " // \\ _\\ //_ .=._,=. ' (u u) ` _)u(_ o==|ooo|==o |___| [] [] /:] [:\ .===. //9 9\\ \\_#_// }-. /\--o/\ .-{ " |___| " .". |_| ,_,_, \n n/ /_r_\ ,"|+ |". _\|+__|/_ /| |\ [_] [_] .-. ._(q p)_. (_#_) 7--|=0=|--< |___| ]| |[ [_| |_] |---| |u u| |_n_| >===]__o[===< [o__] /7 [| \/7 [|_ o___o //b d\\ |\_0_/| }-. /\--o/\ .-{ " |___| " |_| (ooo) __i [o o] ]-[ .=(+++)=. o=" (___) "=o |_|_| /_|_\ .===. //q q\\ \\_^_// .=[::+]=. ]=' [___] '=[ |_| (ooo) )_( |d b| |_o_| .=[::+]=. ]=' [___] '=[ .'._.'. |_| |_| |---| |d d| |_=_| .==|>o<|==:=L '=c|___| . /___\ . . ..:::::::. . Y__ _/u u\_ \_^_/ .==|>o<|==:=L '=c|___| / | _\ |_ __i [q p] ]`[ 7--|=0=|--< |___| (_|_) (o|o) .===. //q p\\ \\_-_// .=[::+]=. ]=' [___] '=[ ]| |[ [_| |_] _ _,_,_ _ \( d d )/ \_u_/ /| []|\ ()/|___|\() .". |_| \.===./ | p q | \_-_/ (m9\:::/\ /___\6 /| |\ [_] [_] )_( |p q| |_u_| .==|>o<|==:=L '=c|___| (_|_) (o|o) o___o //p q\\ |\_u_/| o==|ooo|==o |___| .'._.'. |_| |_| o___o //d d\\ |\_r_/| >===]__o[===< [o__] [] [] /:] [:\ .===./` /.p q.\ "\_O_/" o==|ooo|==o |___| // \\ _\\ //_ ___T_ | O O | |__u__| (m9\:::/\ /___\6 |_| (ooo) .=._,=. ' (9 9) ` _)v(_ .-._/___\_.-. ; \___/ ; |_| (ooo) __i [o o] ]E[ .==|>o<|==:=L '=c|___| . \_/ . . .:::.. . .-. ._(9 9)_. (_0_) ,"|+ |". _\|+__|/_ |_|_| /_|_\ |---| |n n| |_-_| /|(\)|\ d |___| b |_|_| /_|_\ _ _,_,_ _ \( b d )/ \_E_/ .=[::+]=. ]=' [___] '=[ . /___\ . . ..:::::::. . \.===./ | - - | \_#_/ 7--|=0=|--< |___| . \_/ . . .:::.. . Y__ _/q p\_ \_O_/ .=(+++)=. o=" (___) "=o /| |\ (0) (0) .===./` /.0 0.\ "\_@_/" 7--|=0=|--< |___| [] [] /:] [:\ .---. } u u { \_r_/ .=(+++)=. o=" (___) "=o /7 [| \/7 [|_ _._._ -)q q(- \_e_/ ,"|+ |". _\|+__|/_ /7 [| \/7 [|_ .=._,=. ' ([o]) ` _)v(_ ,=|x|=. 'c/_\ 'c .'._.'. |_| |_| _ _,_,_ _ \( - - )/ \_-_/ )=o=|L88|=o=( )=o=|___|=o=( /7 [| \/7 [|_ .===./` /.- -.\ "\_n_/" .'c ."|_|". n`. '--' /_\ `--' . /___\ . . ..:::::::. . |---| |- -| |_o_| /|(\)|\ d |___| b ( ) __) (__ ___T_ | O O | |__-__| (m9\:::/\ /___\6 [] [] /:] [:\ .---. } 0 0 { \_#_/ .'c ."|_|". n`. '--' /_\ `--' ]| |[ [_| |_] .---. } q p { \_-_/ }-. /\--o/\ .-{ " |___| " // \\ _\\ //_ _ _,_,_ _ \( - - )/ \_e_/ .=(+++)=. o=" (___) "=o .". |_| .===./` /.[o].\ "\_n_/" /|(\)|\ d |___| b _// \\_ /_o| |o_\ .---. } O O { \_O_/ >===]__o[===< [o__] .". |_| ,_,_, \9 9/ /_r_\ .-._/___\_.-. ; \___/ ; |_|_| /_|_\ |---| |O O| |_@_| ()ooo|\=/|ooo() |___| (_|_) (o|o) ,_,_, \6=6/ /_A_\ ()ooo|\=/|ooo() |___| |_| (ooo) |---| |[o]| |_^_| }-. /\--o/\ .-{ " |___| " (_|_) (o|o) Y__ _/p q\_ \_`_/ .=(+++)=. o=" (___) "=o _// \\_ /_o| |o_\ _ _,_,_ _ \( q q )/ \_e_/ o==|ooo|==o |___| // \\ _\\ //_ \.===./ | o o | \_^_/ 7--|=0=|--< |___| [] [] /:] [:\ \.===./ | n n | \_`_/ .=(+++)=. o=" (___) "=o |_|_| /_|_\ _._._ -)O O(- \_u_/ )=o=|L88|=o=( )=o=|___|=o=( / | _\ |_ ___T_ | n n | |__0__| ,=|x|=. 'c/_\ 'c /7 [| \/7 [|_ )_( |6=6| |_^_| )=o=|L88|=o=( )=o=|___|=o=( .'._.'. |_| |_| )_( |6=6| |_n_| .=(+++)=. o=" (___) "=o .'._.'. |_| |_| \.===./ | b d | \_A_/ o==|ooo|==o |___| . /___\ . . ..:::::::. . .-. ._(q p)_. (_r_) ,"|+ |". _\|+__|/_ .'._.'. |_| |_| )_( |n n| |_e_| }-. /\--o/\ .-{ " |___| " |_|_| /_|_\ ___T_ | n n | |__E__| >===]__o[===< [o__] /7 [| \/7 [|_ T___ |d d| \_O_/ .==|>o<|==:=L '=c|___| // \\ _\\ //_ )_( |n n| |_n_| .=[::+]=. ]=' [___] '=[ .". |_| ,_,_, \p q/ /_0_\ o==|ooo|==o |___| / | _\ |_ 
Enter fullscreen mode Exit fullscreen mode

Custom Bot

This module gives you the ability to make your own ASCII Bot.

 __.--- head: 0, body: 5, legs: 9 ||| ID: "13059" || ''------- mouth: 1, eyes: 3 
Enter fullscreen mode Exit fullscreen mode

where these numbers are the keys for the following maps:

eyes = { "0": "o o", "1": "p q", "2": "q p", "3": "d b", "4": "b d", "5": "ooo", "6": "[o]", "7": "9 9", "8": "6=6", "9": "u u", "a": "n n", "b": "q q", "c": "d d", "d": "- -", "e": "0 0", "f": "O O", } mouths = { "0": "-", "1": "=", "2": "o", "3": "O", "4": "0", "5": "#", "6": "u", "7": "v", "8": "n", "9": "r", "a": "`", "b": "^", "c": "A", "d": "@", "e": "e", "f": "E", } templates = { "0": r" ___T_ \n | o o | \n |__-__| \n /| []|\ \n ()/|___|\() \n |_|_| \n /_|_\ ", "1": r" \.===./ \n | b d | \n \_=_/ \n o==|ooo|==o \n |___| \n .'._.'. \n |_| |_| ", "2": r" o___o \n //0-0\\ \n |\_-_/| \n /|(\)|\ \n d |___| b \n . \_/ . \n . .:::.. . ", "3": r" T___ \n |[o]| \n \_-_/ \n 7--|=0=|--< \n |___| \n // \\ \n _\ //_ ", "4": r" )_( \n |ooo| \n |_#_| \n .-._/___\_.-. \n ; \___/ ; \n ( ) \n __) (__ ", "5": r" |---| \n |6=6| \n |_o_| \n}-. /\--o/\ .-{\n \" |___| \" \n .\". \n |_| ", "6": r" .---. \n } - - { \n \_0_/ \n .=[::+]=. \n ]=' [___] '=[ \n /| |\ \n [_] [_] ", "7": r" Y__ \n _/o o\_ \n \_o_/ \n )=o=|L88|=o=( \n )=o=|___|=o=( \n . /___\ . \n. ..:::::::. .", "8": r" .===. \n //d d\\ \n \_u_// \n ,=|x|=. \n 'c/_\ 'c \n /| |\ \n (0) (0) ", "9": r" _._._ \n -)o o(- \n \_=_/ \n()ooo|\=/|ooo()\n |___| \n |_| \n (ooo) ", "a": r" .=._,=. \n ' (q q) ` \n _)-(_ \n.'c .\"|_|\". n`.\n'--' /_\ `--'\n _// \_ \n /_o| |o_\ ", "b": r" .-. \n ._(u u)_. \n (_-_) \n .=(+++)=. \no=\" (___) \"=o\n (_|_) \n (o|o) ", "c": r" ,_,_, \n \9 9/ \n /_-_\ \n ,\"|+ |\". \n _\|+__|/_ \n / | \n _\ |_ ", "d": r" .===./` \n /.n n.\ \n \"\_=_/\" \n (m9\:::/\ \n /___\6 \n [] [] \n /:] [:\ ", "e": r" __i \n [p q] \n ]-[ \n >===]__o[===< \n [o__] \n ]| |[ \n [_| |_] ", "f": r" _ _,_,_ _ \n \( q p )/ \n \_\"_/ \n .==|>o<|==:=L\n '=c|___| \n /7 [| \n \/7 [|_ ", } 
Enter fullscreen mode Exit fullscreen mode

Acknowledgements

I thank walsh9/asciibots who originally wrote this in JS and mattes/go-asciibot in Go which helped me a lot inorder to port this.

License

Licensed under MIT

Top comments (0)