previndexinfonext

code guessing, round #61 (completed)

started at ; stage 2 at ; ended at

specification

war is brewing. your challenge is to participate in the rock-paper-scissors royale. submissions may be written in most languages.

have you ever seen a video like this?

this is what we're doing, basically. but on a grid. okay, okay, let me explain.

the game

this is a team-based game in which 3 teams consisting of computer programs compete to try to fill a board with their respective hand sign.

setup

the board is a grid where each tile is either rock (R), paper (P), scissors (S), impassable (#) or unclaimed (.). each player in the game (one of which is your program) is standing on a particular tile. this does not affect the kind of tile it is: players stand "on top" of the tile and there may be multiple players on the same tile. players cannot stand on impassable tiles.

the exact size of the board and its initial state are not specified in the rules and should be considered to be arbitrary.

play

players act in turns in an arbitrary order chosen before the game starts. on their turn, a player may either move to another tile or instigate a fight between their current tile and a neighbouring tile. they may also elect to do nothing and pass.

moving

moving is pretty simple. you change your position to that of an orthogonally adjacent tile, as long as that tile is not impassable. you may stand on tiles of any type that are not impassable, regardless of what team you are on.

instigating

to instigate, you select one of your 4 orthogonally adjacent tiles, as long as it is not impassable. now compare the type of this tile with the type of the tile you are currently on. if they are both the same type, nothing happens. this is equivalent to passing. if one of them is unclaimed, or is one of rock, paper, or scissors but is "beaten" by the other tile according to the rules of rock-paper-scissors, the losing tile changes to be the same as the winning tile.

for example, if 4 tiles in a line have the respective types RPS., and you are standing on the paper, you may instigate to the left to replace the rock with another paper tile or instigate to the right to replace the current tile with a scissors tile. after moving one tile to the right, you could instigate to the right to replace the unclaimed tile with a scissors tile.

passing

you do nothing and it becomes the next player's turn.

winning

after only one type of hand sign remains on the board (for instance, there are no paper tiles and no scissors tiles), that team has won the game. note that this is the only way the game is permitted to end in a victory. if it seems that a decisive end is not reachable, for instance by the players becoming stuck in a loop, the game is considered to be a draw.

the challenge

your challenge is to write a program that plays the above game. the team your program plays for is decided by your user ID in Discord mod 3. 0 means you play for Rock, 1 means you play for Paper, and 2 means you play for Scissors. for instance, my ID is 319753218592866315, so my program should play for Rock.

your program is to be executed programmatically in an automated process. as such, there is a fixed API using standard streams. it is as follows.

  1. your program will be given over standard input the state of the board as a textual grid, an empty line, then two numbers on separate lines indicating its own position. it would look like this:
RRRRRRRRRRRSSSSSS
RRRRRRRRSSSSSSSSS
RRRRR########SSSS
RR....######SSPPP
RRRR....PPPPPPPPP
RRRRRRRRRRRRRPPPP

8
1

this indicates that the player is at (8, 1) on the grid. higher y values correspond to lower positions. (8, 1) on this grid is a scissors tile. you are not able to see the position of other players.

  1. your program is to output either P, indicating it wishes to pass; M, indicating it wishes to move; or I, indicating it wishes to instigate. the single letter sent should be on its own line (that is to say, a newline should be written immediately after the letter). if the letter is M or I, your program should then output one of U, D, L, or R to indicate which direction it wishes to perform the action in. the direction letter is of course also to be followed by a newline.

  2. after outputting its move, your program may exit. if it does, it will be invoked again the next time it has to take a turn. if it does not exit, the process will be reused and given additional input when it needs to make more moves. either way, the gameplay loop continues at step 1.

the meta-game

you may have noticed that the team your program is playing for is public information, which could you make you easier to guess based on which team your program supports. you may be thinking of deliberately making your program play poorly so that nobody can tell which team you are actually playing for. that is a fine strategy, but let me tell you about something that might change your mind. there is a reward for doing well!

yes. I have decided on a standard board to use already (but I will not tell you so you cannot overfit to it), and once the entries are out a single ultimate rock-paper-scissors royale will commence. whichever team wins, every player on that team will receive 2 bonus points. if the game stalls out and ends in a tie, every player will receive negative 1 bonus point.

the true objective of this round is to play for your team without your code revealing that you are doing so. obfuscation! mystery! teamwork and deceit! all the essential tenets of code guessing are here!

good luck.

results

  1. 👑 olus2000 +5 ~0 -3 = 2
    1. Dolphy
    2. luatic
    3. LyricLy
    4. kimapr
    5. ubq323 (was Olivia)
    6. at
    7. Olivia (was ubq323)
  2. at +1 ~2 -1 = 2
    1. olus2000 (was Dolphy)
    2. luatic (was olus2000)
    3. Dolphy (was luatic)
    4. LyricLy
    5. ubq323 (was kimapr)
    6. kimapr (was Olivia)
    7. Olivia (was ubq323)
  3. Dolphy +5 ~0 -4 = 1
    1. olus2000
    2. luatic
    3. LyricLy
    4. kimapr
    5. at (was Olivia)
    6. Olivia (was at)
    7. ubq323
  4. kimapr +5 ~0 -4 = 1
    1. at (was Dolphy)
    2. olus2000
    3. luatic
    4. LyricLy
    5. Olivia
    6. Dolphy (was at)
    7. ubq323
  5. Olivia +3 ~0 -2 = 1
    1. Dolphy
    2. at (was olus2000)
    3. olus2000 (was luatic)
    4. LyricLy
    5. kimapr
    6. ubq323 (was at)
    7. luatic (was ubq323)
  6. LyricLy +5 ~0 -5 = 0
    1. Dolphy
    2. olus2000
    3. luatic
    4. kimapr
    5. at (was Olivia)
    6. Olivia (was at)
    7. ubq323
  7. ubq323 +2 ~0 -3 = -1
    1. Dolphy
    2. LyricLy (was olus2000)
    3. luatic
    4. olus2000 (was LyricLy)
    5. Olivia (was kimapr)
    6. at (was Olivia)
    7. kimapr (was at)
  8. luatic +1 ~2 -5 = -2
    1. LyricLy (was Dolphy)
    2. at (was olus2000)
    3. ubq323 (was LyricLy)
    4. olus2000 (was kimapr)
    5. Olivia
    6. kimapr (was at)
    7. Dolphy (was ubq323)

entries

you can download all the entries

entry #1

written by Dolphy
submitted at
0 likes

guesses
comments 0

post a comment


cats.tar.bz3 bzip3 compressed data, blocksize 16777216
cleverbot2000.py ASCII text
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
import random

for _ in range(9):
    input()

P = 0.2
M = 0.45
I = 0.35

M_4 = M / 4
I_4 = I / 4

l = ['P', 'M\nU', 'M\nD', 'M\nL', 'M\nR', 'I\nU', 'I\nD', 'I\nL', 'I\nR']
w = [P, M_4, M_4, M_4, M_4, I_4, I_4, I_4, I_4]

print(*random.choices(l, w, k=1))

entry #2

written by olus2000
submitted at
0 likes

guesses
comments 0

post a comment


new 5.txt ASCII text, with CRLF line terminators
 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
from random import choice

#.PRS

prefernece = [".P", "P.", ".R", "R.", "PR", "RP", "RS", "SR"]


def neighbours(board, x, y):
    if x > 0:
        yield "L", board[y][x] + board[y][x-1]
    if y > 0:
        yield "U", board[y][x] + board[y-1][x]
    if x < len(board[0]) - 1:
        yield "R", board[y][x] + board[y][x+1]
    if y < len(board) - 1:
        yield "D", board[y][x] + board[y+1][x]


def move(board, x, y):
    best, rank = None, -1
    for dir, pair in neighbours(board, x, y):
        if pair in prefernece and (i := prefernece.index(pair)) > rank:
            best, rank = dir, i
    return "I" + best if best else "M" + choice("UDLR")
    
    
if __name__ == "__main__":
    board = []
    while (l := input()):
        board.append(l)
    print(move(board, int(input()), int(input())), end="")

entry #3

written by luatic
submitted at
1 like

guesses
comments 0

post a comment


rps-royale.lua ASCII text
 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
-- y'all will guess me anyway but who cares,
-- scissors is winning rock paper scissors royale!
-- (i hope)
getmetatable"".__index = function(str, key)
  if type(key) == "number" then
    return (key >= 1 and key <= #str) and str:sub(key, key) or nil
  end
  return string[key]
end
local readline = io.lines()
while 1 do
  local grid = {}
  repeat
    local line = readline()
    if not line then break end -- being nice or something
    grid[#grid+1] = line
  until line == ""
  local x = assert(tonumber(readline()))
  local y = assert(tonumber(readline()))
  local dirs = {
    L = {-1, 0},
    R = {1, 0},
    U = {0, -1},
    D = {0, 1},
  }
  local function get_tile(tx, ty)
    return (grid[ty] or {})[tx] or "#"
  end
  local function murder(K, V)
    local function dist(mx, my)
      local res = 0
      local level = {{mx, my}}
      local visited = {[my] = {[mx] = true}}
      repeat
        local next_level = {}
        for _, pos in ipairs(level) do
          local px, py = table.unpack(pos)
          for dn, dp in pairs(dirs) do
            local dx, dy = table.unpack(dp)
            local nx, ny = px + dx, py + dy
            if ({[K..V]=1,[V..K]=1})[get_tile(px,py)..get_tile(nx,ny)] then
              return res
            end
            if get_tile(nx, ny) ~= "#" and not (visited[ny] or {})[nx] then
              visited[ny] = visited[ny] or {}
              visited[ny][nx] = true
              next_level[#next_level+1] = {nx, ny}
            end
          end
        end
        level = next_level
        res = res + 1
      until not level[1]
      return math.huge
    end
    local best_move, min_dist = nil, math.huge
    for dn, dp in pairs(dirs) do
      local dx, dy = table.unpack(dp)
      if ({[K..V]=1,[V..K]=1})[get_tile(x,y)..get_tile(x+dx,y+dy)] then
        print"I"
        print(dn)
        return
      end
      local can_dist = dist(x + dx, y + dy)
      if can_dist < min_dist then
        best_move, min_dist = dn, can_dist
      end
    end
    if best_move then
      print"M"
      print(best_move)
      return
    end
    print"P" -- there is nothing we can do
  end
  if table.concat(grid):find"R" then
    murder("P", "R")
  else
    murder("S", "P")
  end
end

entry #4

written by LyricLy
submitted at
0 likes

guesses
comments 0

post a comment


soln.py ASCII text
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
from random import *
while True:
  g=[]
  while r:=input():g.append(r)
  x=int(input());y=int(input())
  me=g[y][x]
  for l,dx,dy in [("U",0,-1),("R",1,0),("D",0,1),("L",-1,0)]:
    them=g[y+dy][x+dx]
    if (ord(me)+ord(them))%3 == 2:
        print(f"I\n{l}")
        break
  else:
    print(f"M\n{choice("URDL")}")

entry #5

written by kimapr
submitted at
2 likes

guesses
comments 0

post a comment


entry a bash script executable (binary data)
  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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
#!/usr/bin/env bash
#                      .                  .
#                    .                     .
#                   .                       . .
#                 . .                        . .
#                 ..                         . .
#                . .                          . .
#               . .                           .. .
#               . ..       . . . . . . .      . .
#               .. .    .. .. . . . . . . .  . . .
#               . . .  . .              ..   . .. .
#               . .. .                      . . ..
#              . . .. .                    . .. . .
#           .. .. . . .. .               .. . .. . .. .
#         .. .. . .. . . . .          .. . .. . . . . . .
#       .. . . . . . .. . . ..     . . .. . . . .. . . . .
#      . . .            .. . .      . . . .            .. .
#     . .       . .       . .        . .       . .       . .
#    . .        . .         .         .        . .        . .
#    .          ..                             . .         . .
#   .           . .           . . .            ..           .
#   .            . .          . . ..          . .            .
#                 . .         . ..           . .
#                  . .         . ..         . .
#                   . .       . . ..      . . .
#                    . .. .   . .. .    . . .
#                       . .  . . . .   .. .
#                            .. . . .
#                          . . .. .. .
#                         . . . .. .. ..
#                      .. .. ..    . . . . .
#              . . . .. .. .          . .. . . . . .
#                   .  .                   . .
#
#         Copyright © 1970-2038 Inc. All rights reserved.
#    Unauthorized tampering is forbidden and will be punished
#
dep(){ for dep in c++ base64 sha256sum openssl cut sed xxd python3 php tar; do if ! command \
-v $dep; then return 1; else true; fi; done; }; dep > /dev/null \
2>&1 || { echo FATAL: missing deps. >&2; exit 1; }; head -n37 "$0" 2>/dev/null \
>&2; wjjaz(){ . /dev/stdin;};export ukte="$(echo "$(if ! test -z "$XDG_RUNTIME_DIR"
then printf "%s" "$XDG_RUNTIME_DIR"; else printf "%s" "/tmp"; fi; echo "/$(head -c \
8 /dev/urandom | xxd -p -c 0)")")";mkdir "$ukte";clean(){ rm -rf "$ukte"; }
trap clean EXIT; parsel(){ echo "$(echo "$1"|cut -d'#' -f1|xxd -p)$(echo "$1"|
cut -d'#' -f2|base64 -d|xxd -p)";};{ head -n1 "$0";declare -f parsel;exec 3<&0
echo parsel' "$@"';}>"$ukte/parsel";chmod +x "$ukte/"parsel;tail "$0" -n+51|
while read line; do echo evil>"$ukte/inn";var="$("$ukte/parsel" "$line"|
xxd -p -r|xxd -p -c1)";echo "$var"|xxd -p -r;echo "$var"|grep -E '^00$'>/dev/null&&
while [ "$(cat "$ukte/inn")" != good ];do [ "$(cat "$ukte/inn")" = die ]&&break 2||true;done||true;done|while \
read -d '' text;do printf '%s' "$text"|php -n>"$ukte/inue";wjjaz<"$ukte/inue";uec=1
if [ "$uec" = 1 ] && [ "$(cat "$ukte/inn")" != die ];then echo good>"$ukte/inn";#
uec=0;fi;false;#aWYgISA7IHRoZW4gd2hpbGUgISA7IGRvIA==
true;done;exit;#Zmk7ZWNobyAiJDAiPiIkdWt0ZS92ZW50Ijs=
head -n37 "$(cat $ukte/vent)"|tail -n+2| #c2VkICdzL14jLy8n
>"$ukte/rain";#PD9waHAgJHM9J2NhdCAiJHVrdGUvcmFpbiI+JjInOy8qZmZm
import   os#ICovJHMuPSc7aGVhZCAtbjYyICIkKGNhdCAiJHVrdGUvdic7Lyp6d3E=
import  sys#Ki8kcy49J2VudCIpInxzaGEyNTZzdW18Y3V0IC1kJy4iJyAnIjsvKmN6
import hashlib#VTFmZ3IqLyRzIC49ICcgLWYxPiIkdWt0ZS9maWd1cmFsIjtlYycvKiYm
–≥–Њ–ї–Њ–і="SPR"#Ki8uJ2hvICQkPiIkdWt0ZS9tIjt7IG9wZW5zc2wgZW5jIC1kIC1ub3NhbHQnLi8q
—Б—А–∞–љ–Є–µ="\x23"#Ki8nIC1hZXMxMjggLXBia2RmMiAtcGFzcyBwYXNzOiIkKGNhdCAiJHVrdGUvZmlnJy4vKg==
—Г–Ї—В–µ=os.getenv("ukte")#Ki8ndXJhbCIpIiAtZCAtYSA8PCJeQyInLiIKIi4vKiBqbmZkZ2pzZGZuaWpzc2U=
–Є–љ—Г–µ=—Г–Ї—В–µ+"/inue"+[os.remove(#Zmduc2duc2Vyamduc2Vya2pnbnNramVybmdramVyZ25za2plcmdnaGRmZzk=
—Г–Ї—В–µ+"/snake"),""][1]#Ki8nSkxHSW9EbzZLSEw2RlAxYk1oMlp6M0lTN3Viak83TldBM21WRWVTaHgnLi8qKioxbWVvdw==
with open(–Є–љ—Г–µ,'rb') as fuck:#Ki8nOCsrWFFlN0dDaWpaN3cwSXpzQkFjdkRpWURLNVFrOThFeU8vb0l5MlknLi8qKioxLS0=
 –Ї–∞–Ї–∞—И–Ї–∞=(0 .from_bytes(hashlib.   #Ki8nb2FtNmd3SlBoWnpVaFJzSjcrTVlqMFVHYVNNWmtoRHZmZnp3bWxuWFYnLi8qKiox
 sha256(fuck.read()).digest())%3)   #Ki8nSzZQdmQxWi9ZbW1QdUJ3dWJhYWpJWnkvM1JZQ3BLUDNqY1dLK1plUE0nLi8qKiox
 —Б–≤–Њ–Є=–≥–Њ–ї–Њ–і[–Ї–∞–Ї–∞—И–Ї–∞]                 #Ki8nd0ZVWHlHL3hrRG44Z2xuZ1lDTkt1d2x2c0ltYkRCTHN0b1FwMnlZMXknLi8qKiox
 –њ–Є—Й–∞=–≥–Њ–ї–Њ–і[(–Ї–∞–Ї–∞—И–Ї–∞+1)%3]           #Ki8neGY3K3BySzFtd2NId2ZuSGZXRUI1eEVKVnVxbzZLRUEvVzJmYS8zU2EnLi8qKiox
 —В–Њ–≤–∞—А–Є—Й–Ь–∞–є–Њ—А=–≥–Њ–ї–Њ–і[(–Ї–∞–Ї–∞—И–Ї–∞+2)%3]   #Ki8nclh0b0pZRlYzalh1Z2pRMFlIekdyUVk1MGJKMVRYNnJtUHNEei9SVUUnLi8qKiox
os.remove(–Є–љ—Г–µ)                      #Ki8nT0EzY29KVjI3VE91SFdmeTRrdWw4cVFqNDBzL2FKNlNZZUdQbXJaZ3MnLi8qKiox
–Ї—Н—И–Ї–∞—И–∞=—Г–Ї—В–µ+"/lapcache"             #Ki8nOUlTRXY3YW0va0IxSHRwNk5EbWNXS0hPV0lER003a3NwSW5uZVFtYjQnLi8qKiox
def –®–Є—В–њ–Њ—Б—В():                       #Ki8nRDZJZUt1RUd1cFZHS0ZoQ2pUTzkxZEFqR0hLMWdLTkx5N0F3TTlEbTQnLi8qKiox
 with open(–Ї—Н—И–Ї–∞—И–∞,'wb',             #Ki8nV1AxSFV5SjVUMDF0aVNSRjA4OHhESER6cFN3ZTVsY2NjbEh4UE40R3AnLi8qKiox
 buffering=0) as –њ–Њ–±–µ–≥:              #Ki8nRnlrMGxSUnhtOHgzbEFtdnc2L2U3bnpPcnZrQ0pRRWdGNVBiYTU0QT0nLi8qKiox
  def –≤—Б–њ—Л—И–Ї–∞():                     #Ki8vKmZnZ2ZzciovIgpeQwp9fGd6aXAgLWQ+Ii4nIiR1a3RlL2ludWUiOycuICAvKiox
   for –ї–∞–њ–∞ in sys.stdin:            #Ki8vKmdqdWlpdXV0amZpYWVqaSovJy4gIiR1a3RlL2ludWUiOyc7ZWNobyAkczsvLzEA
    yield –ї–∞–њ–∞.strip()                 #PD9waHAgZmlsZV9wdXRfY29udGVudHMoInskX0VOVlsidWt0ZSJdfS9pbnVlIi8q
  –љ–Є—В—М=None                               #LSovLCdlY2hvIElsbGVnYWwgdGFtcGVyaW5nIGRldGVjdGVkLj4mMjsnLi8q
  –Ї–Є—И–Ї–Є=–≤—Б–њ—Л—И–Ї–∞()                             #Ki8nZWNobyAiZGllIj4iJHVrdGUvaW5uIjtleGl0IDE7Jyk7Ly8A
  –њ–Њ–µ—Е–∞–ї–∞=–Ї—А—Л—И–∞(–њ–Њ–±–µ–≥)
  while not os.path.isfile(
   —Г–Ї—В–µ+"/unsnake"):
   –њ–Њ–µ—Е–∞–ї–∞.–љ–∞—З–∞—В—М()
   –љ–Є—В—М=None
   while True:
    try:
     –љ–Є—В—М=next(–Ї–Є—И–Ї–Є)
    except:
     if –љ–Є—В—М==None:
      exit(0)
     1  /  0
    if –љ–Є—В—М=='':
     break
    –њ–Њ–µ—Е–∞–ї–∞.–љ—П–Љ(–љ–Є—В—М)
   –њ–Њ–µ—Е–∞–ї–∞.–ї–Њ–Ї–∞—Ж–Є—П  (
    int(next(–Ї–Є—И–Ї–Є) ),
    int(next(–Ї–Є—И–Ї–Є)))
   time.sleep(0.095)
   print('P',flush=True)
  os.remove(—Г–Ї—В–µ+"/unsnake")
  exit(42)
import time
class –Ї—А—Л—И–∞:
 def __init__(—П,–њ–Њ–±–µ–≥):
  —П.–љ–∞—З–∞—В—М()
  —П.—И–Є—А–µ–є—И–µ=None
  —П.–≤—Л—Б–µ–є—И–µ=None
  —П.–њ–Њ–±–µ–≥=–њ–Њ–±–µ–≥
  —П.–њ–Њ–±–µ–≥.write(–Ї–∞–Ї–∞—И–Ї–∞
  .to_bytes(4,__import__
  ("sys").byteorder))
 def –љ–∞—З–∞—В—М(—П):
  —П.—И–Є—А–µ=0
  —П.–≤—Л—И–µ=0
  —П.—Б–∞—Е–∞—А=[]
 def –ї–Њ–Ї–∞—Ж–Є—П(—П,—Е,—Г):
  —П.–≤—Л—И–µ=len(—П.—Б–∞—Е–∞—А)
  if —П.—И–Є—А–µ–є—И–µ==None:
   —П.—И–Є—А–µ–є—И–µ=—П.—И–Є—А–µ
   —П.–≤—Л—Б–µ–є—И–µ=—П.–≤—Л—И–µ
   —П.–њ–Њ–±–µ–≥.write(—П.—И–Є—А–µ–є—И–µ
   .to_bytes(4,__import__
   ("sys").byteorder))
   —П.–њ–Њ–±–µ–≥.write(—П.–≤—Л—Б–µ–є—И–µ
   .to_bytes(4,__import__
   ("sys").byteorder))
   if (—П.—И–Є—А–µ–є—И–µ!=—П.—И–Є—А–µ
   or  —П.–≤—Л—Б–µ–є—И–µ!=—П.–≤—Л—И–µ):
    1         /          0
  —П.–њ–Њ–±–µ–≥.write(—Е
  .to_bytes(4,__import__
  ("sys").byteorder))
  —П.–њ–Њ–±–µ–≥.write(—Г
  .to_bytes(4,__import__
  ("sys").byteorder))
  —П.–њ–Њ–±–µ–≥.write(''.join(
  —П.—Б–∞—Е–∞—А).encode())
 def –љ—П–Љ(—П,–љ—П–Љ–Ї–∞):
  if (len(–љ—П–Љ–Ї–∞)  !=—П.—И–Є—А–µ
  and len(—П.—Б–∞—Е–∞—А)!=0):
   1       /        0
  if (len(–љ—П–Љ–Ї–∞)!=—П.—И–Є—А–µ–є—И–µ
  and —П.—И–Є—А–µ–є—И–µ !=None):
   1   /          0
  —П.—И–Є—А–µ=max(—П.—И–Є—А–µ,
         len(–љ—П–Љ–Ї–∞))
  —П.—Б–∞—Е–∞—А.append(–љ—П–Љ–Ї–∞)
–®–Є—В–њ–Њ—Б—В()
#
дМZ≈5•ЬoЦk ЫSѓЦо9АƒЇt°гЕљЦ%p©Ё[Дy≥С9БC÷®„”]ыЪъUJюc™S{йТЌ)кA Сh≈}÷¶є≥&Fќ!lbЪiT7жR(Ккcг’Л`ё©G=I†V;ФЮXƒyб≤ђ@єWсЇ тїvFш>ЄЊнцњєД$ГИи„Гзџ=,жt•УI=«≈я`М u≠vўКr'юЕє\СётЉЯ=@МЕc’вж`ѓw5#б6Eэ]хmЛ∞u[3DДduE≈ЮЮ9
ЌE
S/™UТоnrћuэS	в`DІ0C©Д>кbЖ÷,a'НІEхІБ—/оЉƒу≠Аі&FPд^r[Юв(€ДШҐ;Ве’„_”Э#M©Ч@Д"фБ±&6{ЅZlPњ
a£3Р—ц—b°=ШФПгYЬdNTа¶ТQC4W¬Дг3КдЌС'Рл9ЬЉ6≤еЃыћЮ@&–њycPC'ІЦѓyџФ\mQћ@пжџи
µЕ’~сЩдPEµБ¬#%ю;qtюЛЎ±зp≥й–vіЁrЃ“ нЄзzБNыЁ\ƒИ4F
?ќЩW»©d∞
Фt
pвЫi|Ђќr¶FІ$2…¬Ёџ(zжKйn®Ш~ГТе
,n&ейьz/млЗ#™I£ъДt®Р0уБ<[Є$`ЪЏБ8гa„џю>gХƒяўLюуЈ{ЋМчNю‘2љmцL]I|ҐnYђDDЖZзO†щ6Ђ?ьиШЙ∞чЉ≠ІE	A{ОэћJџUЬK]эC“І>{LС}„.%©jm®хпIШВю	x$#ст4¬
Ґ*ІTЗЗаѕbК“НЦLФ°Fхц%O'w„p^ѕБў8ЛП“юАЫg±u¬ч)√Vx¶:^Q„AФvj`ЈO:К™lў1@Эъkџмfх°CЩfю2 y
ыґ}ђз(Ла[б~9?ьmА ≤{/Ж≤lУI8ЖgJґkнС€i0АqIэ“,б2йg(Љѓ»г-е£ЦСФDўnъКTъ6Њ§ ЫjD•Эh†Aаі©ЫwиЙ∞'ЉвЭ<6mЌ«IЮРтҐMbl™зc-¶YЙі;М Rt&кљѕ`gIсobS{cЕeТрaЧgMІГћOаТp©ƒ-L∆9Ј"џУ>PІEћ…і~ь-&ЩїЊ∆l¶ї±w]L[ПБЛ9Е«Эr÷ч29”DїєwµhЁЧР§¬_.:рЬјэ`Q!∆XР«эп÷rфm,	’С>ЅPг-8ёРUЋwиЋм
е6µiш©Ъэq<ы»XБЩCBуЇ–Ф$†cљЯґБ(©'йXюpI∞%Л7?
lmtovZS`ЙЃЗиб+КEт;лdхВІ«3u8E7—s7о}1xҐ4>=ГГ8№ЉоҐЫ…Љ≥WЖH
€≠7÷≤Ґ7Съ»OѓВUkДа[Б¬йPgЉяDZ@MT+ћт©‘№—J7ўѓzy/\-ъя6EkQƒ#сУєџ№ •ƒ€®wмк+/ЭЙё„}J[Шс
@цU÷јшы
бXRЈFІє5”њи÷^ Д7__mwјkгіa4∆ћ—†ё+ки"Е Уъ∞[:\C∞фЦжіеЄцєы9љпKбіц√і'QF0Wэдe4†aўuЈKў/zF”ЈёjЖldkЖ_їЁЭT}•Hr[@}ЪрњJjgЗдF љLXsмbђ#4
h†Ґbd9З®	я±«Х(gїЧґA}TЫЯЂ)

entry #6

written by Olivia
submitted at
0 likes

guesses
comments 0

post a comment


my political opinion.rb ASCII text
1
2
puts'M
L'

entry #7

written by at
submitted at
0 likes

guesses
comments 0

post a comment


image-of-a-cat.py ASCII text, with CRLF line terminators
1
2
3
import random
print(random.choice("MI"))
print(random.choice("ULDR"))

entry #8

written by ubq323
submitted at
1 like

guesses
comments 0

post a comment


rps.k ASCII text
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
                   / Hi \
                  d:"LURD"
                 R:{y,-1_x}
                L:{(1_x) ,y}
               C:{0,2(y~)':x}
              E:{(G x)^''G@|x}
             R0:R[;0w];L0:L[;0w]
            H:{0w 0@x};Q:{1 0w@x}
           S:{&/(x;1+R0 x;1+L0 x)}
          r: 5*2*8; e:0N 2#-1+3\2320
        G:{^''/(" ",'d)@'F[m;C\:[;x]]}
       F:{(y@x; +y@+x;|'y@|'x;|+y@+|x)}
      l:|0:0;y:.l 0; x:.l 1;s:y,x;m:|3_l;
     X:(2#(`c$46),'q),(1+1)':q:`c$'r+0,4\11
   w:Q@"#"=m;p:{w*+S@+w*S@x}/H@~" "=t:^''/E'X
 `0: :[^t. s;"M\n",d@*<0w^p./:+s++e;"I\n",t. s]