Add the pictogrammic adventurer generator

This commit is contained in:
Feufochmar 2019-11-08 17:02:58 +01:00
parent 78f45c8766
commit 6b9ec29344
7 changed files with 304 additions and 7 deletions

View File

@ -19,7 +19,9 @@
("AboutMe" weblet pages:about-me)
("Fonts" weblet pages:fonts)
("Generators" weblet pages:other-generators
("ColorScheme" weblet pages:color-scheme-generator))
("ColorScheme" weblet pages:color-scheme-generator)
("PictogrammicAdventurer" weblet pages:pictogrammic-adventurer)
)
))
; Sitemap
(sitemap
@ -27,7 +29,9 @@
("About Me" "/AboutMe" #f)
("Fonts I made" "/Fonts" #f))
("Miscellaneous Generators" "/Generators" #f
("Color Scheme" "/Generators/ColorScheme" #f))
("Color Scheme" "/Generators/ColorScheme" #f)
("Pictogrammic Adventurer" "/Generators/PictogrammicAdventurer" #t)
)
)
; Webcontainer
(define *webcontainer* (make-webcontainer))

View File

@ -0,0 +1,239 @@
#lang racket/base
; Pictogrammic adventurer generator
; Generates a character sheet with all indications replaced by pictograms
(require
racket/string
racket/list
"../base-generation/random.rkt")
(provide
; generative function
pictogrammic-adventurer-generate
; accessors to adventurer structure
adventurer-name adventurer-gender adventurer-species adventurer-class
adventurer-health adventurer-mana adventurer-spells adventurer-status
adventurer-equipment adventurer-inventory adventurer-party adventurer-battle-cry
adventurer-astrological-sign adventurer-living-place adventurer-cards
)
; Adventurer structure
(struct adventurer
(name
gender
species
class
health
mana
spells
status
equipment
inventory
party
battle-cry
astrological-sign
living-place
cards
))
; Datastructure from which the fields are generated
(define *adventurer-data*
(hash
'name
'("" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
"" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
"" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
"" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "🜀" "🜁" "🜂" "🜃" "🜄" "🜅" "🜆"
"🜇" "🜈" "🜉" "🜊" "🜋" "🜌" "🜍" "🜎" "🜏" "🜐" "🜑" "🜒" "🜓" "🜔" "🜕" "🜖" "🜗" "🜘" "🜙" "🜚" "🜛" "🜜" "🜝"
"🜞" "🜟" "🜠" "🜡" "🜢" "🜣" "🜤" "🜥" "🜦" "🜧" "🜨" "🜩" "🜪" "🜫" "🜬" "🜭" "🜮" "🜯" "🜰" "🜱" "🜲" "🜳" "🜴" "🜵" "🜶"
"🜷" "🜸" "🜹" "🜺" "🜻" "🜼" "🜽" "🜾" "🜿" "🝀" "🝁" "🝂" "🝃" "🝄" "🝅" "🝆" "🝇" "🝈" "🝉" "🝊" "🝋" "🝌" "🝍" "🝎"
"🝏" "🝐" "🝑" "🝒" "🝓" "🝔" "🝕" "🝖" "🝗" "🝘" "🝙" "🝚" "🝛" "🝜" "🝝" "🝞" "🝟" "🝠" "🝡" "🝢" "🝣" "🝤" "🝥"
"🝦" "🝧" "🝨" "🝩" "🝪" "🝫" "🝬" "🝭" "🝮" "🝯" "🝰" "🝱" "🝲" "🝳" "💯" "💱" "💹" "🔙" "🔚" "🔛" "🔜" "🔝"
"🔞" "🔟" "🔠" "🔡" "🔢" "🔣" "🔤" "🖎" "🖏" "🖐" "🖑" "🖒" "🖓" "🖔" "🖕" "🖖" "🖗" "🖘" "🖙" "🖚" "🖛" "🖜"
"🖝" "🖞" "🖟" "🖠" "🖡" "🖢" "🖣" "🗤" "🗥" "🗦" "🗧" "🗳" "🗴" "🗵" "🗶" "🗷" "🗸" "🗹")
'gender
'("" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
"" "" "" "" "🜉" "🜍" "🜎" "🜏" "🜐" "🜑" "🜒" "🜘" "🜙" "🜚" "🜛" "🜜" "🜝" "🜞" "🜟" "🜠" "🜡" "🜢" "🜣"
"🜥" "🜦" "🜧" "🜩" "🜪" "🜫" "🜬" "🜭" "🜮" "🜯" "🜱" "🜴" "🜵" "🜶" "🜻" "🜼" "🜿" "🝀" "🝁" "🝂" "🝃" "🝅" "🝈" "🝋" "🝎"
"🝓" "🝔" "🝕" "🝢" "🝤" "🝯" "🝰")
'species
'("" "" "" "" "" "" "😀" "😁" "😇" "😈" "😍" "😎" "😸" "😹" "🙈" "🙉" "🙊" "🌛" "🌜" "🌝" "🌞" "🌬"
"🎃" "🎅" "🎎" "🐀" "🐁" "🐂" "🐃" "🐄" "🐅" "🐆" "🐇" "🐈" "🐉" "🐊" "🐋" "🐌" "🐍" "🐎" "🐏" "🐐"
"🐑" "🐒" "🐓" "🐔" "🐕" "🐖" "🐗" "🐘" "🐙" "🐚" "🐛" "🐜" "🐝" "🐞" "🐟" "🐠" "🐡" "🐢" "🐣" "🐤" "🐥"
"🐦" "🐧" "🐨" "🐩" "🐪" "🐫" "🐬" "🐭" "🐮" "🐯" "🐰" "🐱" "🐲" "🐳" "🐴" "🐵" "🐶" "🐷" "🐸" "🐹" "🐺"
"🐻" "🐼" "🐿" "👯" "👸" "👹" "👺" "👻" "👼" "👽" "👾" "👿" "💀" "🕊" "🕷" "🤖" "🦀" "🦁" "🦂" "🦃" "🦄"
"🦅" "🦆" "🦇" "🦈" "🦉" "🦊" "🦋" "🦌" "🦍" "🦎" "🦏" "🦐" "🦑" "🚹" "🚺" "🛉" "🛊")
'class
'("" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "😍" "😎" "🌛" "🌜" "🌝" "🌞"
"🌬" "🎃" "🎅" "🎣" "🎤" "🎨" "🏂" "🏃" "🏄" "🏇" "🏊" "🏋" "🏌" "🏍" "👤" "👦" "👧" "👨" "👩" "👮" "👯"
"👰" "👱" "👲" "👳" "👴" "👵" "👶" "👷" "👸" "👹" "👺" "👻" "👼" "👽" "👾" "👿" "💀" "💁" "💂" "💃" "💆"
"💇" "💏" "🕴" "🕵" "🕺" "🤓" "🤕" "🤖" "🤠" "🤡" "🤥" "🤦" "🤧" "🤴" "🤵" "🤶" "🤷" "🤸" "🤹" "🤺" "🤻" "🤼"
"🤽" "🤾" "🚣" "🚤" "🚮" "🚴" "🚵" "🚶" "🚸" "🚹" "🚺" "🚻" "🚼" "🛀" "🛂" "🛃" "🛉" "🛊" "🛌")
'health
'("" "" "" "" "🎔" "💓" "💔" "💕" "💖" "💗" "💘" "💙" "💚" "💛" "💜" "💝" "💞" "💟" "🔋" "🖤" "🗲")
'mana
'("" "" "" "" "" "" "" "" "" "🝊" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
"" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "🌌" "🌟" "🌠"
"🎵" "🎶" "💡" "💢" "🔋" "🗲")
'spells
'("" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
"" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
"" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
"" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "😕" "😖" "😝" "😠" "😤" "😨"
"😮" "😱" "😲" "😴" "😵" "😶" "🌀" "🌁" "🌊" "🌋" "🌌" "🌠" "🌢" "🌣" "🌤" "🌥" "🌦" "🌧" "🌨" "🌩" "🌪"
"🌫" "🌬" "🎆" "🎇" "🎉" "🎊" "🎔" "🎜" "🎝" "🎰" "🎲" "🎵" "🎶" "🎼" "🐽" "🐾" "👀" "👁" "👂" "👃" "👄"
"👅" "👆" "👇" "👈" "👉" "👊" "👋" "👌" "👍" "👎" "👏" "👐" "👣" "💀" "💋" "💗" "💘" "💝" "💞" "💟" "💡"
"💢" "💣" "💤" "💥" "💦" "💧" "💨" "💩" "💪" "💫" "💬" "💭" "💱" "📤" "📥" "📲" "📳" "📴" "📵" "📶"
"🔀" "🔁" "🔂" "🔃" "🔄" "🔅" "🔆" "🔇" "🔈" "🔉" "🔊" "🔍" "🔎" "🔏" "🔐" "🔑" "🔒" "🔓" "🔔" "🔕" "🔗"
"🔥" "🕱" "🕲" "🕸" "🖤" "🗚" "🗛" "🗜" "🗢" "🗣" "🗨" "🗩" "🗪" "🗫" "🗬" "🗭" "🗮" "🗯" "🗰" "🗱" "🗲"
"" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
"" "" "" "" "" "🤘" "🤙" "🤚" "🤛" "🤜" "🤝" "🤞" "🤳" "🚨" "🚫" "🚭" "🚯" "🚱" "🚳" "🚷" "🛆" "🛇"
"🛈" "🛑")
'status
'("" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
"" "" "" "" "" "" "" "" "" "😕" "😖" "😝" "😠" "😤" "😨" "😮" "😱" "😲" "😴" "😵" "😶" "🍴"
"🎜" "🎝" "🎰" "💋" "💀" "💡" "💢" "💣" "💤" "💥" "💦" "💧" "💨" "💪" "💫" "💬" "💭" "🔀" "🔃" "🔗"
"🔥" "🕱" "🕲" "🕸" "" "" "" "" "🤧" "🚫" "🛑")
'equipment
'("" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
"" "" "" "" "" "🌂" "🍭" "🍳" "🍴" "🍺" "🍾" "🎀" "🎓" "🎖" "🎗" "🎘" "🎤" "🎧" "🎨" "🎩" "🎱"
"🎲" "🎳" "🎷" "🎸" "🎺" "🎻" "🎽" "🎾" "🎿" "🏅" "🏸" "🏹" "👑" "👒" "👓" "👔" "👕" "👖" "👗" "👘"
"👙" "👚" "👞" "👟" "👠" "👡" "👢" "💐" "💣" "📎" "📏" "📕" "📜" "📣" "🔍" "🔦" "🔧" "🔨" "🔪" "🔫"
"🔮" "🕫" "🕯" "🕶" "🗡" "🥁" "🥄" "🥆" "🥇" "🥈" "🥉" "🥊" "🥋" "🛠" "🛡")
'inventory
'("" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
"" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
"" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "🌂" "🌡" "🌭" "🌮"
"🌯" "🌰" "🌱" "🌲" "🌳" "🌴" "🌵" "🌶" "🌷" "🌸" "🌹" "🌺" "🌻" "🌼" "🌽" "🌾" "🌿" "🍀" "🍁" "🍂"
"🍃" "🍄" "🍅" "🍆" "🍇" "🍈" "🍉" "🍊" "🍋" "🍌" "🍍" "🍎" "🍏" "🍐" "🍑" "🍒" "🍓" "🍔" "🍕" "🍖"
"🍗" "🍘" "🍙" "🍚" "🍛" "🍜" "🍝" "🍞" "🍟" "🍠" "🍡" "🍢" "🍣" "🍤" "🍥" "🍦" "🍧" "🍨" "🍩" "🍪"
"🍫" "🍬" "🍭" "🍮" "🍯" "🍰" "🍱" "🍲" "🍳" "🍴" "🍵" "🍶" "🍷" "🍸" "🍹" "🍺" "🍻" "🍼" "🍽" "🍾"
"🍿" "🎀" "🎁" "🎂" "🎃" "🎄" "🎈" "🎋" "🎌" "🎍" "🎎" "🎏" "🎐" "🎒" "🎓" "🎕" "🎖" "🎗" "🎘" "🎙"
"🎚" "🎛" "🎞" "🎟" "🎤" "🎥" "🎧" "🎨" "🎩" "🎫" "🎬" "🎭" "🎮" "🎯" "🎱" "🎲" "🎳" "🎴" "🎷" "🎸"
"🎹" "🎺" "🎻" "🎽" "🎾" "🎿" "🏀" "🏁" "🏅" "🏆" "🏈" "🏉" "🏎" "🏏" "🏐" "🏑" "🏒" "🏓" "🏱" "🏲" "🏳"
"🏴" "🏵" "🏶" "🏷" "🏸" "🏹" "🏺" "👑" "👒" "👓" "👔" "👕" "👖" "👗" "👘" "👙" "👚" "👛" "👜" "👝"
"👞" "👟" "👠" "👡" "👢" "💄" "💅" "💉" "💊" "💌" "💍" "💎" "💐" "💠" "💡" "💣" "💩" "💮" "💰" "💲"
"💳" "💴" "💵" "💶" "💷" "💸" "💺" "💻" "💼" "💽" "💾" "💿" "📀" "📁" "📂" "📃" "📄" "📅" "📆"
"📇" "📋" "📌" "📍" "📎" "📏" "📐" "📑" "📒" "📓" "📔" "📕" "📖" "📗" "📘" "📙" "📚" "📛" "📜" "📝"
"📞" "📟" "📠" "📡" "📢" "📣" "📦" "📧" "📨" "📩" "📪" "📫" "📬" "📭" "📮" "📯" "📰" "📱"
"📷" "📸" "📹" "📺" "📻" "📼" "📽" "📾" "📿" "🔋" "🔌" "🔍" "🔎" "🔏" "🔐" "🔑" "🔒" "🔓" "🔔"
"🔖" "🔗" "🔘" "🔦" "🔧" "🔨" "🔩" "🔪" "🔫" "🔬" "🔭" "🔮" "🕎" "🕏" "🕫" "🕬" "🕭" "🕮" "🕯" "🕰"
"🕶" "🕸" "🕹" "🕻" "🕼" "🕽" "🕾" "🕿" "🖀" "🖁" "🖂" "🖃" "🖄" "🖅" "🖆" "🖇" "🖈" "🖉" "🖊" "🖋" "🖌"
"🖍" "🖥" "🖦" "🖧" "🖨" "🖩" "🖪" "🖫" "🖬" "🖭" "🖮" "🖯" "🖰" "🖱" "🖲" "🖳" "🖴" "🖵" "🖶" "🖷" "🖸"
"🖹" "🖺" "🖻" "🖼" "🖽" "🖾" "🖿" "🗀" "🗁" "🗂" "🗃" "🗄" "🗅" "🗆" "🗇" "🗈" "🗉" "🗊" "🗋" "🗌" "🗍" "🗎"
"🗏" "🗐" "🗑" "🗒" "🗓" "🗔" "🗜" "🗝" "🗞" "🗟" "🗠" "🗡" "🥀" "🥁" "🥂" "🥃" "🥄" "🥆" "🥇" "🥈" "🥉" "🥊"
"🥋" "🥐" "🥑" "🥒" "🥓" "🥔" "🥕" "🥖" "🥗" "🥘" "🥙" "🥚" "🥛" "🥜" "🥝" "🥞" "🚀" "🚁" "🚂" "🚃" "🚄"
"🚅" "🚆" "🚇" "🚈" "🚊" "🚋" "🚌" "🚍" "🚎" "🚐" "🚑" "🚒" "🚓" "🚔" "🚕" "🚖" "🚗" "🚘" "🚙" "🚚"
"🚛" "🚜" "🚝" "🚞" "🚟" "🚠" "🚡" "🚢" "🚥" "🚦" "🚧" "🚩" "🚪" "🚬" "🚰" "🚲" "🚽" "🚿" "🛁" "🛄"
"🛅" "🛍" "🛎" "🛏" "🛒" "🛠" "🛡" "🛢" "🛥" "🛦" "🛧" "🛨" "🛩" "🛪" "🛫" "🛬" "🛰" "🛱" "🛲" "🛳" "🛴"
"🛵" "🛶")
'party
'("" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "😀" "😁" "😂"
"😃" "😄" "😅" "😆" "😇" "😈" "😉" "😊" "😋" "😌" "😍" "😎" "😏" "😐" "😑" "😒" "😓" "😔" "😕" "😖" "😗"
"😘" "😙" "😚" "😛" "😜" "😝" "😞" "😟" "😠" "😡" "😢" "😣" "😤" "😥" "😦" "😧" "😨" "😩" "😪" "😫" "😬"
"😭" "😮" "😯" "😰" "😱" "😲" "😳" "😴" "😵" "😶" "😷" "😸" "😹" "😺" "😻" "😼" "😽" "😾" "😿" "🙀" "🙁"
"🙂" "🙃" "🙄" "🙅" "🙆" "🙇" "🙈" "🙉" "🙊" "🙋" "🙌" "🙍" "🙎" "🙏" "🌚" "🌛" "🌜" "🌝" "🌞" "🌬"
"🎃" "🎅" "🎎" "🎠" "🏂" "🏃" "🏄" "🏇" "🏊" "🏋" "🏌" "🏍" "🐀" "🐁" "🐂" "🐃" "🐄" "🐅" "🐆" "🐇"
"🐈" "🐉" "🐊" "🐋" "🐌" "🐍" "🐎" "🐏" "🐐" "🐑" "🐒" "🐓" "🐔" "🐕" "🐖" "🐗" "🐘" "🐙" "🐚" "🐛"
"🐜" "🐝" "🐞" "🐟" "🐠" "🐡" "🐢" "🐣" "🐤" "🐥" "🐦" "🐧" "🐨" "🐩" "🐪" "🐫" "🐬" "🐭" "🐮" "🐯"
"🐰" "🐱" "🐲" "🐳" "🐴" "🐵" "🐶" "🐷" "🐸" "🐹" "🐺" "🐻" "🐼" "🐿"
"👤" "👥" "👦" "👧" "👨" "👩" "👪" "👫" "👬" "👭" "👮" "👯" "👰" "👱" "👲" "👳" "👴" "👵" "👶" "👷"
"👸" "👹" "👺" "👻" "👼" "👽" "👾" "👿" "💀" "💁" "💂" "💃" "💆" "💇" "💏" "💑" "🕊" "🕴" "🕵" "🕷"
"🕺" "🤐" "🤑" "🤒" "🤓" "🤔" "🤕" "🤖" "🤗" "🤠" "🤡" "🤢" "🤣" "🤤" "🤥" "🤦" "🤧" "🤰" "🤴" "🤵" "🤶"
"🤷" "🤸" "🤹" "🤺" "🤻" "🤼" "🤽" "🤾" "🦀" "🦁" "🦂" "🦃" "🦄" "🦅" "🦆" "🦇" "🦈" "🦉" "🦊" "🦋" "🦌"
"🦍" "🦎" "🦏" "🦐" "🦑" "🚣" "🚤" "🚮" "🚴" "🚵" "🚶" "🚸" "🚹" "🚺" "🚻" "🚼" "🛀" "🛂" "🛃" "🛉" "🛊"
"🛌" )
'battle-cry
'("" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
"" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
"" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
"" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
"" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
"" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
"" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
"" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
"" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "💯" "💱" "💹" "📈" "📉" "📊"
"🔙" "🔚" "🔛" "🔜" "🔝" "🔞" "🔟" "🔠" "🔡" "🔢" "🔣" "🔤" "🔯" "🔰" "🔱" "🔲" "🔳" "🔴" "🔵" "🔶"
"🔷" "🔸" "🔹" "🔺" "🔻" "🔼" "🔽" "🔾" "🔿" "🕀" "🕁" "🕂" "🕃" "🕄" "🕅" "🕆" "🕇" "🕈" "🕉"
"🕐" "🕑" "🕒" "🕓" "🕔" "🕕" "🕖" "🕗" "🕘" "🕙" "🕚" "🕛" "🕜" "🕝" "🕞" "🕟" "🕠" "🕡" "🕢" "🕣"
"🕤" "🕥" "🕦" "🕧" "🕨" "🕩" "🕪" "🖎" "🖏" "🖐" "🖑" "🖒" "🖓" "🖔" "🖕" "🖖" "🖗" "🖘" "🖙" "🖚" "🖛" "🖜"
"🖝" "🖞" "🖟" "🖠" "🖡" "🖢" "🖣" "🗕" "🗖" "🗗" "🗘" "🗙")
'astrological-sign
'("" "" "" "" "" "" "" "" "" "" "" "")
'living-place
'("" "" "" "" "" "" "" "" "" "🌃" "🌄" "🌅" "🌆" "🌇" "🌈" "🌉" "🌋" "🌍" "🌎" "🌏" "🌐"
"🌑" "🌒" "🌓" "🌔" "🌕" "🌖" "🌗" "🌘" "🌙" "🌲" "🌳" "🌴" "🌵" "🎑" "🎡" "🎢" "🎦" "🎪" "🏔" "🏕" "🏖"
"🏗" "🏘" "🏙" "🏚" "🏛" "🏜" "🏝" "🏞" "🏟" "🏠" "🏡" "🏢" "🏣" "🏤" "🏥" "🏦" "🏧" "🏨" "🏩" "🏪" "🏫"
"🏬" "🏭" "🏮" "🏯" "🏰" "💈" "💒" "💺" "📡" "🕋" "🕌" "🕍" "🕳" "🗺" "🗻" "🗼" "🗽" "🗾" "🗿" "🥅"
"🚉" "🚏" "🚾" "🛋" "🛐" "🛣" "🛤")
'cards
'("🂡" "🂢" "🂣" "🂤" "🂥" "🂦" "🂧" "🂨" "🂩" "🂪" "🂫" "🂬" "🂭" "🂮"
"🂱" "🂲" "🂳" "🂴" "🂵" "🂶" "🂷" "🂸" "🂹" "🂺" "🂻" "🂼" "🂽" "🂾" "🂿"
"🃁" "🃂" "🃃" "🃄" "🃅" "🃆" "🃇" "🃈" "🃉" "🃊" "🃋" "🃌" "🃍" "🃎" "🃏"
"🃑" "🃒" "🃓" "🃔" "🃕" "🃖" "🃗" "🃘" "🃙" "🃚" "🃛" "🃜" "🃝" "🃞" "🃟"
"🃠" "🃡" "🃢" "🃣" "🃤" "🃥" "🃦" "🃧" "🃨" "🃩" "🃪" "🃫" "🃬" "🃭" "🃮" "🃯" "🃰" "🃱" "🃲" "🃳" "🃴" "🃵")
))
; Generate a list of n elements from a category
(define (category-generate-list cat n)
(random:sublist (hash-ref *adventurer-data* cat) n))
; Generate one element from a category
(define (category-generate cat)
(random:from-list (hash-ref *adventurer-data* cat)))
; Generate a name
; Choose random characters from the name category, and a few from other categories
(define (name-generate)
(string-join
(shuffle
(append
(category-generate-list 'name (+ 3 (random 5)))
(map
(lambda (x)
(category-generate x))
(random:sublist
'(gender class health mana spells status inventory party astrological-sign cards)
(+ 1 (random 5))))))
""))
; Generate a battle cry
; Choose random characters from the battle-cry category, and a few from other categories
; Generated like a sentence with the pictograms making words
(define (battle-cry-generate)
(string-join
(build-list
(+ 2 (random 6))
(lambda (_)
(string-join
(shuffle
(append
(category-generate-list 'battle-cry (+ 1 (random 5)))
(map
(lambda (x)
(category-generate x))
(random:sublist
'(name gender class health mana spells status inventory party astrological-sign cards)
(random 3)))))
"")))
"\u2003")) ; use em space between words as symbola's space is too small
; Generator
(define (pictogrammic-adventurer-generate)
(adventurer
(name-generate)
(category-generate 'gender)
(category-generate 'species)
(category-generate 'class)
(string-join (make-list (+ 1 (random 9)) (category-generate 'health)) "")
(string-join (make-list (+ 1 (random 9)) (category-generate 'mana)) "")
(string-join (category-generate-list 'mana (+ 2 (random 8))) "")
(string-join (category-generate-list 'status (+ 1 (random 4))) "")
(string-join (category-generate-list 'equipment (+ 3 (random 3))) "")
(string-join (category-generate-list 'inventory (+ 3 (random 12))) "")
(string-join (category-generate-list 'party (+ 1 (random 4))) "")
(battle-cry-generate)
(category-generate 'astrological-sign)
(category-generate 'living-place)
(string-join (category-generate-list 'cards 5) "")
))

View File

@ -3,11 +3,13 @@
; Pages with minor generators, often written in javascript
(require
"templates.rkt"
racket/string)
racket/string
"../generators/pictogrammic-adventurer.rkt")
(provide
pages:other-generators
pages:color-scheme-generator)
pages:color-scheme-generator
pages:pictogrammic-adventurer)
; About page on the other generators
(define pages:other-generators
@ -61,3 +63,41 @@
"The colors are displayed with their RGB values. "
))
)))
(define pages:pictogrammic-adventurer
(pages:template
#:title "Pictogrammic Adventurer Generator"
#:author "feuforeve.fr"
#:stylesheets '("/css/feuforeve.css" "/css/adventurer-generator.css")
#:content
(lambda (param)
(let ((adv (pictogrammic-adventurer-generate)))
`(article
(section
(a ((href "/Generators/PictogrammicAdventurer")) "New adventurer")
(h3 "Adventurer's statistics")
(table ((class "adventurer-sheet"))
,@(map
(lambda (x)
`(tr (td (strong ,(car x)))
(td ((class "adventurer-stats")) ,((cdr x) adv))))
`(("Name" . ,adventurer-name)
("Gender" . ,adventurer-gender)
("Species" . ,adventurer-species)
("Class" . ,adventurer-class)
("Health" . ,adventurer-health)
("Mana" . ,adventurer-mana)
("Spells" . ,adventurer-spells)
("Status" . ,adventurer-status)
("Equiped" . ,adventurer-equipment)
("Inventory" . ,adventurer-inventory)
("Party" . ,adventurer-party)
("Battle cry" . ,adventurer-battle-cry)
("Astrological sign" . ,adventurer-astrological-sign)
("Home" . ,adventurer-living-place)
("Destiny cards" . ,adventurer-cards)))))
(section
(h3 "About")
(p "This generator makes adventurer characters whose statistics are represented by symbols and pictograms. " (br)
"The font " (a ((href "http://users.teilar.gr/~g1951d/")) "Symbola") " is used to display the pictograms. "))
)))))

View File

@ -28,7 +28,7 @@
(("Feufochmar")
"/images/feufochmar.png")
(("feuforeve.fr")
("/images/feuforeve.png"))
"/images/feuforeve.png")
(else
#f)))

View File

@ -0,0 +1,14 @@
@font-face {
font-family: Symbola_Webfont;
src: url('/fonts/Symbola.ttf');
}
.adventurer-stats {
font-family: "Symbola_Webfont";
font-size: xx-large;
text-align: left;
}
.adventurer-sheet {
background-color: hsla(230, 10%, 90%, 0.90);
}

View File

@ -136,7 +136,7 @@ th {
border-style: solid;
border-width: thin;
border-collapse: collapse;
padding: 1ex;
padding: 0.5ex;
text-align: center;
}
@ -144,6 +144,6 @@ td {
border-style: solid;
border-width: thin;
border-collapse: collapse;
padding: 1ex;
padding: 0.5ex;
text-align: center;
}

BIN
static/fonts/Symbola.ttf Normal file

Binary file not shown.