[Question]
  [
This:
[![enter image description here](https://i.stack.imgur.com/x5VNu.png)](https://i.stack.imgur.com/x5VNu.png)
is a *Glider*.
In Conway's Game of Life, the [glider](https://en.wikipedia.org/wiki/Glider_(Conway%27s_Life)) is a famous pattern that rapidly traverses across the board. For today's challenge, we are going to draw an ASCII art Game of Life Board, and place a glider on it.
The board we are starting with is this:
```
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
```
This board is made up entirely of pipes `|` and underscores `_`, and is 10x10. You must write a program or function that takes in two integers, 'x' and 'y', and outputs this same board with a glider at those coordinates. For example, if you had a glider at position `(1, 1)` (0-indexed), you must output the following:
```
|_|_|_|_|_|_|_|_|_|_|
|_|_|*|_|_|_|_|_|_|_|
|_|_|_|*|_|_|_|_|_|_|
|_|*|*|*|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
```
You can assume that the glider will never be placed out of bounds, so both x and y will always be in the `[0-7]` range. You may also choose to take the coordinates 1-indexed, but you must specify this in your answer. In this, case the inputs will always be in the `[1-8]` range. Here are some examples (all 0-indexed):
```
0, 0:
|_|*|_|_|_|_|_|_|_|_|
|_|_|*|_|_|_|_|_|_|_|
|*|*|*|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
7, 7:
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|*|_|
|_|_|_|_|_|_|_|_|_|*|
|_|_|_|_|_|_|_|*|*|*|
7, 4:
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|*|_|
|_|_|_|_|_|_|_|_|_|*|
|_|_|_|_|_|_|_|*|*|*|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
5, 2:
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|*|_|_|_|
|_|_|_|_|_|_|_|*|_|_|
|_|_|_|_|_|*|*|*|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|
```
As usual, you may take your IO in any reasonable format. This includes, but is not limited to a string with newlines, an array of strings, a 2d array of strings, or writing to a file/STDOUT. You may also choose what order to take *x* and *y* in.
Since this is [code-golf](/questions/tagged/code-golf "show questions tagged 'code-golf'"), standard loopholes are banned, and make the shortest code that you can!
  
[Answer]
# [MATL](https://github.com/lmendo/MATL), ~~35~~ ~~32~~ 30 bytes
```
20*+'|_'5E:21:I$)42b' 34'Q+(
```
The code contains unprintable chars. Input is 0-based. **[Try it online!](https://tio.run/##y00syfn/38hAS1u9Jl7d1NXKyNDKU0XTxChJnUdOwdhEPVBb4/9/cy4TAA "MATL – TIO Nexus")**
[Answer]
# [V](https://github.com/DJMcMayhem/V), ~~31~~, 30 bytes
```
10O±°_|ÀGjjÀ|3r*kr*kh.Í*ü_/|&
```
[Try it online!](https://tio.run/##K/v/39DA/9DGQxvia6QPN7hnZR1uqDEu0soGogy9w71ah/fE69eo/f//3@i/EQA "V – Try It Online")
Hexdump:
```
00000000: 3130 4fb1 b05f 7c1b c047 6a6a c07c 3372  10O.._|..Gjj.|3r
00000010: 2a6b 722a 6b68 2ecd 2afc 5f2f 7c26       *kr*kh..*._/|&
```
This takes input as program arguments, and 1-indexed.
Explanation:
```
10O                         " On the following 10 lines, insert:
   ±°_                      "   10 '_' characters
      |                     "   And a '|'
       <esc>                " Return to normal mode
            ÀG              " Go to the a'th line
              jj            " Move down two lines
                À|          " Go to the b'th column
                  3r*       " and replace the next 3 characters with asterisks
                     k      " Move up a line
                      r*    " And replace this char with an asterisk
                        kh  " Move up a line and to the left
                          . " And repeat the last change we performed (replace with asterisk)
                            "
Í                           " On every line, substitute:
 *                          "   An asterisk
  ü                         "   OR
   _                        "   An underscore
    /                       " With:
     |&                     "   A bar followed by the matched pattern
```
[Answer]
# Java 10, ~~165~~ ~~144~~ ~~138~~ ~~135~~ ~~129~~ ~~127~~ 125 bytes
```
x->y->{var r="";for(int i=0,j;++i<11;r+="|\n")for(j=0;j<10;)r+=i==x&j==y|i==x+1&++j==y|i==x+2&j<y+3&j>=y?"|*":"|_";return r;}
```
1-indexed.
-14 bytes thanks to *@ceilingcat*.
**Explanation:**
[Try it here.](https://tio.run/##lY9NT4MwHMbvfIp/eiDUjgZmNMZSvJl48LSjGlMZW1qhkFLIyOCzY4kTE2Myvf2el8PzKNGJUG3fJ1nWlbGgnKatlQXdtTqzstL0/gTM87JCNA08CqmPHkBjhZUZfOXJg7b5PjerX5yNNVLv0xQy4DAdwrQP02MnDBiOENtVJpDaguTRSjFCZBLHzBCOhmeN8JwqHjGVxBHDzpacH3zFeT/MRGKfkG@19lXSk0tfpby/Q8MFukXDK2Imt63RYNg4uR8AdftWuO2nC10lt1C6W8Hn0KcXgeeHAJu@sXlJq9bS2iW20EFGRV0XfbDGC2B2rhzjBc6Xb/AC/yhf/aF8/WPz6I3TBw)
```
x->y->{               // Method with two integer parameters and String return-type
  var r="";           //  Result-String, starting empty
  for(int i=0,j;i<10  //  Loop over the rows:
      ;               //    After every iteration:
       r+="|\n")      //     Append a "|" and newline to the result-String
    for(j=0;++j<11;)  //   Inner loop over the columns:
      r+=i==x&j==y|i==x+1&++j==y|i==x+2&j<y+3&j>=y?
                      //    If this coordinate should contain a '*'
        "|*"          //     Append "|*" to the result-String
       :              //    Else:
        "|_");        //     Append "|_" to the result-String
  return r;}          //  Return the result-String
```
[Answer]
# [Perl 5](https://www.perl.org/), 67 bytes
```
sub{map{($_-join('',@_)~~[1,12,20..22]?"|*":"|_")."|\n"x/9$/}0..99}
```
[Try it online!](https://tio.run/##K0gtyjH9r5Jm@7@4NKk6N7GgWkMlXjcrPzNPQ11dxyFes64u2lDH0EjHyEBPz8go1l6pRkvJSqkmXklTT6kmJk@pQt9SRb8WKGlpWfvfmqugKDOvREFNJU3DQMdAU0dBCagEWdRcxxyLqAlWUVMdI5jofwA "Perl 5 – Try It Online")
Input Parameters: y, x
[Answer]
# [Jelly](https://github.com/DennisMitchell/jelly), ~~37~~ 35 bytes
```
ȷ2b1
Ḍ+“£Æßæç‘Ṭ+¢s⁵j3;0$€Fṭ0ị“_*¶|”
```
[Try it online!](https://tio.run/nexus/jelly#AUYAuf//yLcyYjEK4biMK@KAnMKjw4bDn8Omw6figJjhuawrwqJz4oG1ajM7MCTigqxG4bmtMOG7i@KAnF8qwrZ84oCd////Niwz)
**How it works**
```
ȷ2b1                             - the literal [1,1,1,1,...,1,1,1] with 100 elements
Ḍ+“£Æßæç‘Ṭ+¢s⁵j3;0$€Fṭ0ị“_*¶|”   - input (x,y)
Ḍ                                - convert (x,y) to 10*x+y
 +                               - add, to get the five "*" positions,
  “£Æßæç‘                        - the literal [2,13,21,22,23]
         Ṭ                       - return an array with those positions as truthy elements
          +¢                    - Now we format: pad to length 100 with the above literal
            s⁵j3                 - add newlines (represented by 3) to each set of 10
                ;0$€F            - add pipes (represented by 0) to each
                     ṭ0          - add a 0 to the beginning
                       ị“_*¶|”   - index into the string “_*¶|”
```
[Answer]
# [Python 2](https://docs.python.org/2/), 151 bytes
Will golf more.
```
def f(x,y):r,x=[list('|_'*10+'|')for i in[1]*10],x*2;r[y][x+3]=r[y+1][x+5]=r[y+2][x+1]=r[y+2][x+3]=r[y+2][x+5]='*';print'\n'.join(''.join(i)for i in r)
```
[Try it online!](https://tio.run/nexus/python2#Tc1NCsIwEAXgfU@R3eRnkCS1FCw9SQxuNBCRVGIXKfTuMdWiWc33Hg8mX2@OOJpwYaeIaTQP/5oprBfgSgpYgbkpEk98MMqWymLieohmsSaJ1o5FQm3uvtabVeW2ctkAh@EZfZjhHOBwn3ygsF//e0Uiy45KlKz5bBtHe@zrcPwHjd0e8hs "Python 2 – TIO Nexus")
[Answer]
# [Ruby](https://www.ruby-lang.org/), 87 bytes
```
->x,y{[a=(b='|_')*10+?|]*y+%w(|_|*|_ |_|_|* |*|*|*).map{|r|b*x+r+b*(7-x)+?|}+[a]*(7-y)}
```
[Try it online!](https://tio.run/##KypNqvyfZvtf165Cp7I6OtFWI8lWvSZeXVPL0EDbviZWq1JbtVyjJr5GqyZeAUgBGQpANhBq6uUmFlTXFNUkaVVoF2knaWmY61ZoAvXUakcnxoJ4lZq1/wtKS4oV0qINdAxidexj8rigfHMdcxS@iY4Jmjwq30jHFMz/DwA "Ruby – Try It Online")
[Answer]
# [Perl 6](http://perl6.org/), 88 bytes
```
->\x,\y{(^10 »*»i X+ ^10).map:{<|* |_>[$_!=
(1-2i|2-i|0|1|2)+x+y*i+2i]~"|
"x(.re==9)}}
```
* Complex numbers are used to represent the coordinates.
* `^10 »*» i X+ ^10` generates the grid of all complex numbers with integer components from zero through nine.
* Returns a list of strings, each one holding one line.
[Answer]
# JavaScript (ES6), 99 bytes
```
x=>y=>eval('for(i=0,o="";i<101;o+=((d=i-x-y*10)==1|d==12|d>19&d<23?"|*":"|_")+(++i%10?"":`|\n`))o')
```
Takes input via currying: `f(5)(2)` for x=5, y=2. Coordinates are zero-indexed.
## Test Snippet
```
f=
x=>y=>eval('for(i=0,o="";i<101;o+=((d=i-x-y*10)==1|d==12|d>19&d<23?"|*":"|_")+(++i%10?"":`|\n`))o')
xi.oninput=yi.oninput=_=>O.innerHTML=f(xi.value)(yi.value)
O.innerHTML=f(xi.value=5)(yi.value=2)
```
```
<style>*{font-family:Consolas;}input{width:2.5em;}</style>
x: <input id="xi" type="number" min="0" max="7">,
y: <input id="yi" type="number" min="0" max="7">
<pre id="O">
```
[Answer]
# [APL (Dyalog Extended)](https://github.com/abrudz/dyalog-apl-extended), 40 bytes
```
'*'@((⍳2)∘×¨⎕∘+¨⍸⊤1 5 3)⊢'|',⍨10 20⍴'|_'
```
[Try it online!](https://tio.run/##SyzI0U2pTMzJT9dNrShJzUtJTfn/qKM97b@6lrqDhsaj3s1Gmo86ZhyefmjFo76pQJY2kNG741HXEkMFUwVjzUddi9Rr1HUe9a4wNFAwMnjUu0W9Jl4dZMT/NC5zBXMA "APL (Dyalog Extended) – Try It Online")
A full program, accepting x and y as input.
Calculate coordinates, and uses `@` to modify them.
[Answer]
# [Python 3](https://docs.python.org/3/), 97 bytes
```
def f(x,y):
 b=(["|_"]*10+["|\n"])*10
 for c in[1,13,22,23,24]:b[c+11*y+x]="|*"
 return"".join(b)
```
[Try it online!](https://tio.run/##VcdBCsMgEEDRvaeQWTlmKGpSAoGcJJWCaaTpQoNYiJC722wK7ebz31byM4a21sfiuRc7FRwYd6OY4LiDlVo1590CWDyfcR8Tn/kaJk26JWPInO3s4Ka50VqWZrcjHBIYT0t@pwBwecU1CId1S2vIwgtFCpF91VP/p@5Hhq6I9QM "Python 3 – Try It Online")
[Answer]
# [Haskell](https://www.haskell.org/), 96 bytes
```
r=[0..9]
x#y=['|':(r>>=(\i->[last$'_':['*'|elem(i-x,j-y)$zip[1,2,0,1,2][0,1,2,2,2]],'|']))|j<-r]
```
Takes in two integers (`x` and `y`) and returns a list of `String`s, i.e. a 2D list of type `[[Char]]`.
---
**Test suite:**
```
import System.Environment
main :: IO ()
main = do
    args <- getArgs
    let (x, y) = (read $ args !! 0, read $ args !! 1)
    mapM_ putStrLn (x#y)
```
[Answer]
## Mathematica, ~~115~~ 113 bytes
```
x(a="|_"~Table~10~Table~10;(a[[##]]="|*")&@@(#+x)&/@({{0,1,2,2,2},{1,2,0,1,2}});""<>Riffle[#<>"|"&/@a,"\n"])
```
where
This takes input in `{row, col}` format, and is 1-indexed, but can be turned into 0-indexed without adding bytes.
Some notes:
1. `\n` is a newline character, takes 1 byte.
2. `` is `\[Function]`, takes 3 bytes.
3. `` is `\[Transpose]`, takes 3 bytes.
Note that "array of string" is allowed, so I can just remove `Riffle`, gives
## Mathematica, ~~98~~ 97 bytes
```
x(a="|_"~Table~10~Table~10;(a[[##]]="|*")&@@(#+x)&/@({{0,1,2,2,2},{1,2,0,1,2}});#<>"|"&/@a)
```
[Answer]
# [Python 2](https://docs.python.org/2/), 133 bytes
```
x,y=input()
a=[[z for z in'_'*10]for o in'|'*10]
b=a[y+2]
a[y][x+1]=a[y+1][x+2]=b[x]=b[x+1]=b[x+2]="*"
for b in a:print o+o.join(b)+o
```
[Try it online!](https://tio.run/##JYzNCsMgEITvPsWSS34MpUqhUPBJlqXoodQeXAkGNPTdbbSXmfm@w8SS3hx0rXktxoe4p2kW1iAe8OINDvBhfI6LulJDbvjtKJyxWKQmcRZhloq6UG1rMg5zj@bdXw3LINqLO1/APuLmQwKWfPmwD5ObJdd6X28/ "Python 2 – Try It Online")
[Answer]
# [Zsh](https://zsh.sourceforge.io/), 85 bytes
[try it online!](https://tio.run/##qyrO@P8/Lb9IIVNBw0jB0FjByFDByEjByFjTPTpTW8VQxSjWVosLqqDaUE/P0MCgVrOgKDOvJE0hpkalGqgs1ko3vlZNTUMjU9XQQFOzpsbGxiam5v///2b/zQA)
```
for i (2 13 21 22 23)G[i+$1$2]=*
for i ({1..100})printf \|${G[i]:-_}&&((i%10))||<<<\|
```
*Saved 12 bytes by moving the glider char `*` assignments to a function.
Saved another 4 bytes by removing the function and adding a ternary to the `printf` stuff (at the expense of readability!). Saved another 7 by inlining some data instead of constructing an array. Saved another 10 by simplifying some expressions. Removed `{}` for another -1. Saved 11 by using [parameter expansion](https://zsh.sourceforge.io/Doc/Release/Expansion.html#Parameter-Expansion) `${name:-word}` instead of convoluted ascii logic.*  
~~[130 bytes](https://tio.run/##qyrO@P8/Lb9IIUNBo9pQT8/QwKBW0z06I9Y2nivFVsVQxUjBPdpIOyXWVgvIMDSGsYwM4Sy4rBFElgtkXCaScdUFRZl5JWkKMTUq7tGZsdYaGpmqhgY2hpqaamo2NjYxNda1////N/lvCgA)~~ ~~[118 bytes](https://tio.run/##qyrO@P8/Lb9IIUNBo9pQT8/QwKBW0z06I9Y2nitXA8hSMdROibXV4kqxVTFUMbLOVQBhQ2MQwxBEgIWMuUBGZCIZUV1QlJlXkqYQU6PiHp0Za62hkalqaGBjqKmppmZjYxNTY137//9/k/@mAA)~~ ~~[114 bytes](https://tio.run/##LckxDsIwDADAnVdYqqlskKrYASFICurUR6RZK7IAKkykeXtYuPW@73utQ08KYkEFVEEtu/m5QALCgceAIe1RUGPsd5t/ZOk6MaZwfi3p8ZlhWjFTw0iEzRhSvJrbQS/nI3NxRGkrxgtz23rvp9WVWqutpx8)~~ ~~[107 bytes](https://tio.run/##LcoxDsIwDADAnVdYqqlskKrYASFogLGPSLNWZCmoMJHm7Wbh5vu@H2bTc4EMpCAeVEAV1PMQMeY9CmpK193mf4p0nThXubyWPH8mGFcs1DASYTPEnG7uftDL@chce6K8FReEuW1DCOPaVzPzdvoB)~~ ~~[97 bytes](https://tio.run/##LcoxDoMwDADAnVdYIpVsIaHYgaEQxMgjgBU1C1S0U5O83WXg5vt9XqrbcUIAFGAHwiAC4miaQ2XYyDpwcYfIdc3WZorvM@zfDZZkIpZkEK@9jo10z5Yo94jhwZYoJe/9krKqNur@)~~ ~~[96 bytes](https://tio.run/##qyrO@P8/Lb9IIVNBw0jB0FjByFDByEjByFjTPTpTW8VQxSjW1pALqqDaUE/P0MCgVrOgKDOvJE0hpkalWkNZU0VDA6g41t7EyMrSVFOzVk1NQyNT1dBAU7OmxsbGJqbm////Zv/NAA)~~
[Answer]
# JavaScript, 98 bytes
Based on [this answer](https://codegolf.stackexchange.com/a/124047/116593)
```
x=>y=>eval('for(i=0,o="";i<101;o+=(d=i-x-y*10)==1|d==12|d>19&d<23?"|*":"|_",o+=++i%10?"":`|\n`)o')
```
We can save 1 byte if use `o+=a,o+=b` instead of `o+=(a)+(b)`
Try it:
```
f=
x=>y=>eval('for(i=0,o="";i<101;o+=(d=i-x-y*10)==1|d==12|d>19&d<23?"|*":"|_",o+=++i%10?"":`|\n`)o')
xi.oninput=yi.oninput=_=>O.innerHTML=f(xi.value)(yi.value)
O.innerHTML=f(xi.value=5)(yi.value=2)
```
```
<style>*{font-family:Consolas;}input{width:2.5em;}</style>
x: <input id="xi" type="number" min="0" max="7">,
y: <input id="yi" type="number" min="0" max="7">
<pre id="O">
```
# JavaScript, 101 bytes
This answer may be more efficient with another pattern
```
x=>y=>eval("for(i=0,s='';i<101;s+=[1,12,20,21,22].includes(i-x-y*10)?'|*':'|_',s+=++i%10?'':`|\n`)s")
```
Try it:
```
f=
x=>y=>eval("for(i=0,s='';i<101;s+=[1,12,20,21,22].includes(i-x-y*10)?'|*':'|_',s+=++i%10?'':`|\n`)s")
xi.oninput=yi.oninput=_=>O.innerHTML=f(xi.value)(yi.value)
O.innerHTML=f(xi.value=5)(yi.value=2)
```
```
<style>*{font-family:Consolas;}input{width:2.5em;}</style>
x: <input id="xi" type="number" min="0" max="7">,
y: <input id="yi" type="number" min="0" max="7">
<pre id="O">
```
[Answer]
# [SOGL](https://github.com/dzaima/SOGL), 23 [bytes](https://github.com/dzaima/SOGL/blob/master/chartable.md)
```
LIΖ|_ΟL∙.«."¾'┼ΞΧ⌠²‘5nž
```
note: this expects input to be 1-indexed
Explanation:
```
LI                       push 11
  Ζ|_                    push "|" and "_"
     Ο                   make an altrenates string [with 11 separators, which are "|" and parts "_"]
      L∙                 get an array of 10 of those
        .«               take input and multiply by 2 (x pos)
          .              take input (y pos)
           "¾'┼ΞΧ⌠²‘     push "_|*|__|_|**|*|*" - the glider in the map
                    5n   split into an array with items of length 5
                      ž  replace in the 1st [grid] array at positions [inp1*2, inp2] to 2nd array [glider]
```
[Answer]
# [Charcoal](https://github.com/somebody1234/Charcoal), 28 bytes
```
ＵＯ²¹χ|_Ｊ×Ｎ²Ｎ“ "}ＩyE%%mＬＢＭφ/”
```
[Try it online!](https://tio.run/##S85ILErOT8z5/98/KSc/L13DyFBHwdBAR0GpJl5J05rLqzS3ICRfQ0vDM6@gtMSvNDcptUhDU0fBCIhRhIBqA4oy80o0gBprtGriY/KANJAFpLVAEGjY///mXOb/dcv@6xbnAAA "Charcoal – Try It Online") Link to verbose mode for description.
[Answer]
# [Python 2](https://docs.python.org/2/), 97 bytes
```
def f(x,y):
 b=(["|_"]*10+["|\n"])*10
 for c in[1,13,22,23,24]:b[c+11*y+x]="|*"
 return"".join(b)
```
[Try it online!](https://tio.run/##VcdBCsMgEEDRvaeQWTlxKGpTAoGcJJVC0kjThQYxECF3t24K7ebz35bTK3hTynNx3ImDMvaMT4MY4XyAbbSS9e4eLNZn3IXIZ776UZO@kjFkalvbT@MstW6yPOwAZwOMxyXt0QNc3mH1YsKyxdUn4YQihci@6qj7U/sjQzfE8gE "Python 2 – Try It Online")
[Answer]
# [QBasic](https://en.wikipedia.org/wiki/QBasic), ~~113~~ 107 bytes
Uses 0-indexing.
```
INPUT x,y
s=11*y+x
FOR i=1TO 110
?"|"+CHR$(95+53*((i=s+2)+(i=s+14)-(i>s+22)*(i<s+26))+85*(i/11=i\11));
NEXT
```
We model the grid as 110 `|`s each followed by some character, for which we calculate the ASCII code:
* Every 11th character is a newline (character code 95 - 85 = 10)
* If we calculate the start index of the glider as `s = 11 * y + x`, then indices `s + 2`, `s + 14`, `s + 23`, `s + 24`, and `s + 25` are asterisks (character code 95 - 53 = 42)
* The rest are underscores (character code 95)
---
Original version using `LOCATE` (1-indexed):
```
INPUT x,y
CLS
FOR i=0TO 9
FOR j=0TO 9
?"|_";
NEXT
?"|
NEXT
LOCATE y,2*x+2
?"*
LOCATE,2*x+4
?"*
LOCATE,2*x
?"*|*|*
```
[Answer]
# [Canvas](https://github.com/dzaima/Canvas), 24 [bytes](https://github.com/dzaima/Canvas/blob/master/files/chartable.md)
```
|_Ａ×|＋Ａ＊ *¶  *¶***∙＊┘«╶╋
```
[Try it here!](https://dzaima.github.io/Canvas/?u=JTdDXyV1RkYyMSVENyU3QyV1RkYwQiV1RkYyMSV1RkYwQSUyMColQjYlMjAlMjAqJUI2KioqJXUyMjE5JXVGRjBBJXUyNTE4JUFCJXUyNTc2JXUyNTRC,i=NiUwQTM_,v=8)
Takes 1-indexed position in form
```
x
y
```
as input.
Only beaten by [dzaima](https://codegolf.stackexchange.com/users/59183/dzaima)['s SOGL answer](https://codegolf.stackexchange.com/a/124048/78186) at time of writing.
[Answer]
# [05AB1E](https://github.com/Adriandmen/05AB1E/wiki/Commands), 25 (or 24?) [bytes](https://github.com/Adriandmen/05AB1E/wiki/Codepage)
```
„|_ти„|*•A|,•₂вI+ǝTôJ€Ć»
```
0-based indexing.
[Try it online](https://tio.run/##yy9OTMpM/f//UcO8mviLTRd2gBhajxoWOdboAMlHTU0XNnl6aR@fG3J4i9ejpjVH2g7t/v8/2lDHMBYA) or [verify all test cases](https://tio.run/##yy9OTMpM/V@m5JlXUFpipaBkX6nDpeRfWgLh6fx/1DCvJv5i04UdIIbWo4ZFjjU6QPJRU9OFTZVe2sfnhhze4vWoac2RtkO7/@sc2mb/PzraQMcgVifaUMcQSJrrmINJEyBpqmMUGwsA).
Could be 1 byte less (the `J`) if we could take the input-coordinates joined together as single integer:  
[Try it online](https://tio.run/##yy9OTMpM/f//UcO8mviLTRd2gBhajxoWOdboAMlHTU0XNnlqH58bcniL16OmNUfaDu3@/9/QEAA) or [verify all test cases](https://tio.run/##yy9OTMpM/V@m5JlXUFpipaBkX6nDpeRfWgLh6fx/1DCvJv5i04UdIIbWo4ZFjjU6QPJRU9OFTZXax@eGHN7i9ahpzZG2Q7v/6xzaZv8/2sBAx9BQx9xcx9xEx9QoFgA).
**Explanation:**
```
„|_            # Push string "|_"
   ти          # Repeat it 100 times as list of strings
„|*            # Push string "|*"
   •A|,•       # Push compressed integer 681976
        ₂в     # Convert it to base-26 as list: [1,12,20,21,22]
          IJ   # Push the input-pair, and join it together to an integer
            +  # Add it to each value in the list [1,12,20,21,22]
„|*          ǝ # Insert the "|*" string at those (0-based) indices to the list of "|_"
Tô             # Split the list into 10 parts of 10 strings each
  J            # Join each inner list together to a string
   €           # Map over each line:
    Ć          # Enclose; append its own head (the "|")
     »         # Join the list of strings by newlines
               # (After which the result is output implicitly)
```
[See this 05AB1E tip of mine (sections *How to compress large integers?* and *How to compress integer lists?*)](https://codegolf.stackexchange.com/a/166851/52210) to understand why `•A|,•` is `681976` and `•A|,•₂в` is `[1,12,20,21,22]`.
]