Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/Delta456/ascii_robot
ASCII Robot Generator in V
https://github.com/Delta456/ascii_robot
ascii generator random rng robot terminal v vlang
Last synced: about 1 month ago
JSON representation
ASCII Robot Generator in V
- Host: GitHub
- URL: https://github.com/Delta456/ascii_robot
- Owner: Delta456
- License: mit
- Created: 2020-06-16T04:50:34.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2020-09-28T08:25:38.000Z (about 4 years ago)
- Last Synced: 2024-11-15T19:56:25.774Z (about 1 month ago)
- Topics: ascii, generator, random, rng, robot, terminal, v, vlang
- Language: Coq
- Homepage:
- Size: 9.77 KB
- Stars: 13
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-v - ascii_robot - ASCII Robot generator written in V. (Libraries / Text processing)
README
# 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```v
import delta456.ascii_robot as robot
import randfn 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())
}
}```
## Bot TypesTotal 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
|___|
/ |
_\ |_```
## Custom BotThis module gives you the ability to make your own ASCII Bot.
```
__.--- head: 0, body: 5, legs: 9
|||
ID: "13059"
||
''------- mouth: 1, eyes: 3
```
where these numbers are the keys for the following maps:```v
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 [|_ ",
}```
## Acknowledgements
I thank [`walsh9/asciibots`](https://github.com/walsh9/asciibots) who originally wrote this in JS and [`mattes/go-asciibot`](https://github.com/mattes/go-asciibot) in Go which helped me a lot inorder to port this.
## License
Licensed under [MIT](LICENSE)