|
| 1 | +# SPDX-FileCopyrightText: 2021 Dylan Herrada for Adafruit Industries |
| 2 | +# |
| 3 | +# SPDX-License-Identifier: MIT |
| 4 | + |
| 5 | +import random |
| 6 | +from adafruit_clue import clue |
| 7 | +import displayio |
| 8 | +from adafruit_display_text import label, wrap_text_to_pixels |
| 9 | +from adafruit_bitmap_font import bitmap_font |
| 10 | +import board |
| 11 | + |
| 12 | +column_1 = [ |
| 13 | + "Champ, ", |
| 14 | + "Fact: ", |
| 15 | + "Everybody says ", |
| 16 | + "Dang... ", |
| 17 | + "Check it: ", |
| 18 | + "Just saying... ", |
| 19 | + "Superstar, ", |
| 20 | + "Tiger, ", |
| 21 | + "Self, ", |
| 22 | + "Know this: ", |
| 23 | + "News alert: ", |
| 24 | + "Girl, ", |
| 25 | + "Ace, ", |
| 26 | + "Excuse me but ", |
| 27 | + "Experts agree: ", |
| 28 | + "In my opinion, ", |
| 29 | + "Hear ye, hear ye: ", |
| 30 | + "Okay, listen up: ", |
| 31 | +] |
| 32 | + |
| 33 | +column_2 = [ |
| 34 | + "the mere idea of you ", |
| 35 | + "your soul ", |
| 36 | + "your hair today ", |
| 37 | + "everything you do ", |
| 38 | + "your personal style ", |
| 39 | + "every thought you have ", |
| 40 | + "that sparkle in your eye ", |
| 41 | + "your presence here ", |
| 42 | + "what you got going on ", |
| 43 | + "the essential you ", |
| 44 | + "your life's journey ", |
| 45 | + "that saucy personality ", |
| 46 | + "your DNA ", |
| 47 | + "that brain of yours ", |
| 48 | + "your choice of attire ", |
| 49 | + "the way you roll ", |
| 50 | + "whatever your secret is ", |
| 51 | + "all of y'all ", |
| 52 | +] |
| 53 | + |
| 54 | +column_3 = [ |
| 55 | + "has serious game, ", |
| 56 | + "rains magic, ", |
| 57 | + "deserves the Nobel Prize, ", |
| 58 | + "raises the roof, ", |
| 59 | + "breeds miracles, ", |
| 60 | + "is paying off big time, ", |
| 61 | + "shows mad skills, ", |
| 62 | + "just shimmers, ", |
| 63 | + "is a national treasure, ", |
| 64 | + "gets the party hopping, ", |
| 65 | + "is the next big thing, ", |
| 66 | + "roars like a lion, ", |
| 67 | + "is a rainbow factory, ", |
| 68 | + "is made of diamonds, ", |
| 69 | + "makes birds sing, ", |
| 70 | + "should be taught in school, ", |
| 71 | + "makes my world go 'round, ", |
| 72 | + "is 100% legit, ", |
| 73 | +] |
| 74 | + |
| 75 | +column_4 = [ |
| 76 | + "24/7.", |
| 77 | + "can I get an amen?", |
| 78 | + "and that's a fact.", |
| 79 | + "so treat yourself.", |
| 80 | + "you feel me?", |
| 81 | + "that's just science.", |
| 82 | + "would I lie?", |
| 83 | + "for reals.", |
| 84 | + "mic drop.", |
| 85 | + "you hidden gem.", |
| 86 | + "snuggle bear.", |
| 87 | + "period.", |
| 88 | + "can I get an amen?", |
| 89 | + "now let's dance.", |
| 90 | + "high five.", |
| 91 | + "say it again!", |
| 92 | + "according to CNN.", |
| 93 | + "so get used to it.", |
| 94 | +] |
| 95 | + |
| 96 | +arial18 = bitmap_font.load_font("/fonts/Arial-18.bdf") |
| 97 | +arial12 = bitmap_font.load_font("/fonts/Arial-12.bdf") |
| 98 | + |
| 99 | +arial18.load_glyphs( |
| 100 | + "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789;,./?><=+[{]}-_" |
| 101 | +) |
| 102 | +arial12.load_glyphs( |
| 103 | + "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789;,./?><=+[{]}-_" |
| 104 | +) |
| 105 | + |
| 106 | +display = board.DISPLAY |
| 107 | +clue_group = displayio.Group() |
| 108 | + |
| 109 | +bitmap_file = open("bmps/background.bmp", "rb") |
| 110 | +bitmap1 = displayio.OnDiskBitmap(bitmap_file) |
| 111 | +tile_grid = displayio.TileGrid( |
| 112 | + bitmap1, pixel_shader=getattr(bitmap1, "pixel_shader", displayio.ColorConverter()) |
| 113 | +) |
| 114 | +clue_group.append(tile_grid) |
| 115 | + |
| 116 | +text = "\n".join( |
| 117 | + wrap_text_to_pixels( |
| 118 | + random.choice(column_1) |
| 119 | + + random.choice(column_2) |
| 120 | + + random.choice(column_3) |
| 121 | + + random.choice(column_4), |
| 122 | + 180, |
| 123 | + arial18, |
| 124 | + ) |
| 125 | +) |
| 126 | +pep = label.Label( |
| 127 | + font=arial18, |
| 128 | + text=text, |
| 129 | + anchor_point=(0.5, 0.5), |
| 130 | + anchored_position=(120, 115), |
| 131 | + line_spacing=0.8, |
| 132 | + color=0x000000, |
| 133 | +) |
| 134 | +clue_group.append(pep) |
| 135 | + |
| 136 | +title = label.Label( |
| 137 | + font=arial12, |
| 138 | + text="Pep talk generator", |
| 139 | + anchor_point=(0.5, 0.5), |
| 140 | + anchored_position=(120, 231), |
| 141 | + color=0x000000, |
| 142 | +) |
| 143 | +clue_group.append(title) |
| 144 | + |
| 145 | +display.show(clue_group) |
| 146 | + |
| 147 | +while True: |
| 148 | + if clue.button_a or clue.button_b: |
| 149 | + pep.text = "\n".join( |
| 150 | + wrap_text_to_pixels( |
| 151 | + random.choice(column_1) |
| 152 | + + random.choice(column_2) |
| 153 | + + random.choice(column_3) |
| 154 | + + random.choice(column_4), |
| 155 | + 180, |
| 156 | + arial18, |
| 157 | + ) |
| 158 | + ) |
0 commit comments