summaryrefslogtreecommitdiffstats
path: root/krebs/5pkgs/simple/krebsdance/default.nix
blob: bcb859a2139d56401c95c5aa3ac9636349f292c1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
{ writers }:
writers.writePython3Bin "krebsdance" {} ''
  import argparse
  import random

  claws = [
      dict(
          up='(\\/)',
          down='(/\\)',
          left='(\\\\)',
          right='(//)',
      ),
      dict(
          up='(V)',
          down='(A)',
          left='>)=',
          right='=(<',
      ),
      dict(
          up='(U)',
          down='(n)',
          left=')==',
          right='==(',
      ),
  ]

  eyes = [
      '°',
      '*',
      '^',
      'ö',
      'o',
      'O',
      'X',
      'x',
      'U',
      'u',
  ]

  bodies = [
      dict(
          left='(',
          right=')',
      ),
      dict(
          left='{',
          right='}',
      ),
      dict(
          left='[',
          right=']',
      ),
      dict(
          left='<',
          right='>',
      ),
      dict(
          left='|',
          right='|',
      ),
  ]

  mouths = [
      ',,,,',
      ',mm,',
      '_mm_',
      '-mm-',
      ';;;;',
      ';mm;',
      ':mm:',
      '::::',
      ':ww:',
      ':<>:',
  ]


  def main():
      parser = argparse.ArgumentParser()

      parser.add_argument(
          'seed',
          nargs='?',
          help='random seed to use for generating the krebs variant',
      )

      parser.add_argument(
          '--dance', '-d',
          dest='dance',
          help='if the krebs should dance',
          default=False,
          action='store_true',
      )

      args = parser.parse_args()

      if args.seed:
          random.seed(args.seed)

      clawstyle = random.choice(claws)
      body = random.choice(bodies)
      eye = random.choice(eyes)
      mouth = random.choice(mouths)
      if args.dance:
          print(f'{clawstyle["down"]} {body["left"]}{eye}{mouth}{eye}{body["right"]}{clawstyle["up"]}')  # noqa
          print(f' {clawstyle["left"]}{body["left"]}{eye}{mouth}{eye}{body["right"]} {clawstyle["right"]}')  # noqa
          print(f'{clawstyle["right"]} {body["left"]}{eye}{mouth}{eye}{body["right"]} {clawstyle["left"]}')  # noqa
          print(f' {clawstyle["down"]}{body["left"]}{eye}{mouth}{eye}{body["right"]}{clawstyle["down"]}')  # noqa
      else:
          print(f'{clawstyle["up"]} {body["left"]}{eye}{mouth}{eye}{body["right"]} {clawstyle["up"]}')  # noqa


  if __name__ == '__main__':
      main()
''