►
From YouTube: W14 TEC Lab!: ChessCAD Rematch!
Description
🙏 Thank you for watching! Hit 👍 and subscribe 🚩 to support this work
🌱Join the Community🌱
on Discord https://discord.gg/uM4ZWDjNfK
or say hello on Telegram https://t.me/tecommons
Join the conversation https://forum.tecommons.org/
Follow us on Twitter: https://twitter.com/tecmns
Learn more http://tecommons.org/
A
A
Yeah
exactly
we're
trying
at
least
we
tried
last
week
and
it
was.
It
turned
out
to
be
more
difficult
than
we
anticipated
so
we're
back
this
week.
C
A
Cool
cool,
so
I
usually
give
it
a
few
minutes
for
people
to
trickle
in,
but
sometimes
I'm
more
ambitious
than
some
weeks,
I'm
more
ambitious
than
others
so
this
week
I
definitely
want
to
get
a
lot
done,
so
I'll
probably
jump
into
it.
Pretty
quick
here.
A
A
So
the
more
participation,
the
better
lots
of
people
come
and
and
just
watch
and
that's
fine,
but
sometimes
there's
some
interactivity
and
so
to
kind
of
spark
that
off
what
we
do
is
we
have
this,
so
I
get
everyone
at
the
beginning
to
go
to
the
labs
channel
in
discord
and
from
there
you
can
find
the
main
workspace.
It's
a
notion.
A
And
so
lauren,
if
it's
your
first
lab
just
go
ahead
and
add
a
row
with
your
name
and
then
all
the
sort
of
information
is
optional,
but
anything
you
want
to
post
in
there
is
making
kind
of
an
interesting
data
set
that
we
can
analyze
at
a
later
lab.
We
can
do
statistical
analysis
on
emojis.
A
A
B
C
A
A
That's
what
I
was
thinking,
okay,
so
let's
get
okay,
so
I'm
gonna
make
it
a
bit
of
an
agenda.
So,
let's
check
there's
been
a
discrepancy,
so
in
some
places
now
these
labs
are
out
of
sync.
This
is
14.
The
attendance
says
13,
but
that's
okay.
So
this
is
oh.
I
need
to
edit
continue.
B
B
A
I
can
yeah
I
can.
If
you
want
to
watch
my
stream,
I
can
also
stream
so
yeah.
A
A
Yeah,
let
me
know
if
it's
working,
so
let
me
send
the
link
in
the
I'll
just
dm.
It.
C
A
So
we're
gonna
take
the
pre-built
python
chess
pie
game
that
me
and
tonga
found
last
week
instead
of
trying
to
build
it
from
scratch,
so
that'll
save
us
some
time
we're
going
to
just
plug
that
into
cad
cad
and
see
if
we
can
get
that
working.
I
think
it
should
go
all
right
after
that.
We're
going
to
see
if
we
can
visualize
the
chess
board
with
hollow
views
so
we'll
be
able
to
sort
of
play
back
the
simulation
and
see
how
it
went.
A
A
Okay,
so
again,
pretty
ambitious.
Let's
see,
I'm
sure
we
can
get
the
simulator
working
this
week
so
and
for
anyone
wants
to
track
the
code
on
this
is
github
te
commons,
slash
tech
lab.
So
last
week
we
were
in
lab
13,
so
I'm
just
going
to
copy
that
over
into
a
directory
lab
14.
A
To
tec
labs,
cbtec
lab
okay;
okay,
so
let's
make
directory
lab
so
we're
in
the
github
repo
here.
So
let's
make
directory
lab
13
14
lab
14,
okay,
actually
copy
copy
lab
13.
A
A
Let's
see
virtual
fish
activate
tec
lab.
Do
we
have
something
like
that?
Tec
lab
cool
all
right
and
into
jupiter.
A
And
the
the
resolution
is
higher
on
the
resolution
is
higher
on
twitch,
so
you
guys
always
have
that
option.
I
think
that's
pinned
in
the
labs
channel
as
well.
I
think
that's
pinned
in
the
lab's
channel
as
well.
Let's
check
that.
A
Higher
resolution
than
discord
higher
resolution.
A
There's
someone's
got
an
echo
going,
it's
kind
of
neat.
C
A
Okay,
so
no
module
cad
cad.
I
don't
know
what
virtual
environment
we
were
using.
I
don't
know
what
but
anyways
we
should
just
pip
install
cat
cad,
install
okay,
let's
see
okay,
that
seems
to
work
so
the
last
time
we
were,
we
were
setting
up
chess
manually,
hey
jake,
can
you
mute,
hey
jake?
Can
you
mute.
C
C
C
A
Hear
an
echo
I
think
it's
on.
Oh,
I
don't
know
it's
literally,
because
I
have
twitch
open.
Okay,
thanks,
sorry,
guys,
oh
yeah,
so
just
a
little
refresher!
Last
time
we
sort
of
manually
created
this
data
structure
to
represent
the
board.
So
we
had
uppercase
letters
for
black
pieces
and
lowercase
letters
for
white
pieces.
We
were
just
making
this
up
on
the
fly
today,
we're
going
to
skip
all
that.
A
A
B
A
Board
so
for
item
okay,
I
self.gameboard.getij
printstring
okay.
So
what
should
it
look
like?
Where
should
this?
Is
this
one
two
three
in
abc?
Is
that
correct?
If
we
let's
say,
for
example,
we
switch
white,
so
we
turn
the
board
90
degrees
clockwise,
so
that
we're
the
white
pieces
then
are
these?
No,
then,
then
these
should
rotate
as
well.
Is
that
right.
A
Okay,
so
the
numbers
okay,
so
we're
going
to
rotate
this
board
90
degrees
and
the
numbers
should
go
both
of
these
should
be
go
backwards.
I
think
let's
try
that
okay,
so
if
we're
going
to
rotate
the
board
90
degrees,
so
what
we're
doing
now
is
we're
going
for
I
j
in
zero,
eight
for
our
game
pieces.
Okay!
So
it's
here
so
let's
say
I
is
zero
and
j
is
zero.
A
Then
we're
getting
the
rook,
but
we
actually
want
this
rook
to
be
here
like
if.
A
Okay,
so
if
we,
if
we
flip
these
oh
yeah,
if
we
flip
the
pieces-
okay,
let's
see
if
we
can
do
that
so
game
board,
dot
get
ij.
So
we
want
to
flip
on
the
like.
I
is
the
row
and
j
is
the
column,
so
we
actually
want
the
opposite,
so
it
and
this
is
going
from
zero
to
seven.
C
A
Okay,
so
we've
tonga
we
flipped
white
and
black
now,
should
we
rotate
the
board.
A
A
So
so
do
you
guys
see
what
I
did
here?
I
just
since
these
indices
are
going
from
zero
to
seven.
So
remember
in
python
we
have
the
range
so
I
and
j,
which
is
how
we
index
the
board,
are
going
from
zero
to
seven
because
we
get
up
two
but
not
including
eight.
A
A
A
Wait,
no,
we
want
this
piece
to
go
here,
so
we
want
zero,
seven
to
be
shown
first
in
zero
zero,
and
then
we
want
one
seven.
So
I
actually
have
to
write
this
down
on
paper.
So
I
don't
know
if
everyone's
following
me
here,
but
right
now,
this
rook
is
in
position
zero,
seven
and
we
want
it
to
be
displayed
in
position.
A
0
0,
because
we're
doing
this
90
degree
rotation
and
then
this
knight
is
currently
in
1
7
or
you
could
say,
b
8,
but
in
the
computer
program
it's
I'll
stick
to
the
computer
indices
I
and
j.
So
this
is
at
1
7
and
we
want
it
to
be
at
0
1.,
zero,
one
because
we're
zero
indexing
and
it's
always
rows
first,
so
we
count
the
rows
and
then
we
count
the
columns
so.
B
A
A
B
A
A
Let's
rerun,
like,
I
think
it's
from
the
user
input,
it
gets
a
little
glitchy
when
we
rerun
it.
Let's
see,
stop.
A
This
is
getting
pretty
inconvenient,
so
this
is
why
I
want
to
actually
I
want
to
visualize
the
board
with
hollow
views,
so
we
might
try
that
first
so
that
we
can
not
have
to
render
it
this
way.
So
I
wonder
if
we
can
actually
change
the
print,
so
this
print
board,
so
we're
gonna
get
a
game
board
object.
So,
let's
just
take
a
let's:
let's,
let's
not
use
that,
let's
change
that
render
function.
A
So,
let's
see
if
this
works
and
we
have
our
game
object,
but
we,
when
we
instantiate
our
game,
let's
see
where
the
game
is
defined
here
and
here's
its
main
function.
It's
in
this
infinite
loop,
this
so
while
true
print
the
board.
A
C
A
A
A
There
we
go,
we've
got
it
by
itself,
okay,
cool!
So
now
we
can
see
what
like
what
functions
it
has
so
can
see
king.
What
does
that
do
cool?
So
there's
all
these
different
functions
we
could
explore
is
check.
A
B
A
A
Oh
ascertain
where
the
kings
are
check
all
pieces
of
opposing
color
against
those
kings
if
either
get
hit
check,
if
it's
checkmate
cool,
so
we
can
turn
that
into
a
doc
string,
and
so
now,
if
we
put
g
dot,
is
check
question
mark,
then
we
get
the
docs
string
here.
So
it's
always
good
to
include
doc
strings
in
the
code,
so
that
developers
can
get
the
inline
documentations.
So
we
can
add
doc
strings
to
all
these
functions.
Actually,
so
what
else
do
we
have
game
board
cool?
A
This
is
gonna
draw,
I
think,
dick,
not
okay,
it's
just
this!
Oh!
So
this
is
the
data
structure.
Okay,
so
it
just
has
each
piece
and
where
it's
located
on
the
board.
Okay,
that's
kind
of
neat
g
dot.
Player's
turn
is
black,
okay
and
g
dot.
A
Okay,
so
it
sets
up
the
board.
I
guess
for
iron
range,
zero,
eight
pawn,
so
it
places
the
pawns
and
then
for
each
of
the
objects
of
rook
knight,
etc.
It
places
them
as
well
interesting.
A
Okay,
so
let's
see
what
we
can
do
with
this
game
board,
so
it
has
this
print
function.
Let's
check
this
print
function
again:
print
board.
A
A
checkmate
exists
function
which
checks.
If
either
players
are
in
checkmate,
a
check
exists,
function
which
checks.
If
either
players
are
in
check
a
main
loop
which
takes
input,
runs
it
through.
The
parser
asks
the
piece.
If
the
move
is
valid
and
moves
the
piece.
If
it
is,
if
the
move
conflicts
with
another
piece,
then
the
piece
is
removed.
A
A
We're
gonna
need
this
to
plug
in
everything
to
the
simulator.
Let's
see,
8
30
already,
okay,
good,
so
we're
starting
to
understand
this
code
base
and
the
actions
that
we
have
available.
That's
what's
key
in
running
agent-based
simulators
is
knowing
what
the
actions
are.
A
And
we
have
the
game
board:
let's,
let's
check
our
print
function
that
we
were
looking
at.
Did
we
grab
that?
No
okay,
let's
check
our
print.
A
I
don't
see
any
right
here,
but
let's
see
it's
saying
char,
I
plus
97.
Those
might
just.
Oh
those
are
just
letters.
Oh
oh,
this
is
just
converting
numbers
to
letters
actually,
because,
if
anyone's
written
c
code
before
you'll
remember
like
the
char,
you
have
to
end
strings
of
chars
or
how
you
write
words.
A
A
A
Okay,
so
now
we
can
print
our
board
on
demand.
This
is
pretty
cool.
Now,
let's,
let's
see
how
we
can
walk
through
a
game
like
we
need
to.
A
A
A
A
B
A
A
A
Target
dot,
so
this
is
like
a
piece
and
it
has
all
these
functions
so
available.
Moves
cool
requires
three
okay
available
moves,
and
so
we
need
to
know
where
it
is
now.
So
that's
zero
one
and
our
game
board
g.
A
Let's
see
g.game
board,
I
think
dot
game
board
cool.
So
this
is
the
only
move
available.
So
it
looks
like
it's
not
taking
into
account.
C
A
So
again
I
don't
know
if
we
need
any
system
parameters
really,
but
maybe
we'll
find
out,
but
then
this
is
where
it
gets
interesting.
The
initial.
A
A
A
So
standard
cad
cat
goes
something
like
this,
so,
let's
just
say
progress
game,
and
these
are
all
the
parameters
or
the
inputs
that
we
get
to
our
policy.
So
the
system
parameters,
the
current
sub
step,
the
history
of
the
game.
A
Equals
a
previous
state
game.
So
now
we
have
the
game
in
our
simulation
during
a
step
and
we're
basically
going
to
do
what
happened
here
so
now
we
have
to
get
moves
available.
So
this
is
the
interesting
part
we're
turning
because
before
this
thing
had
input,
that's
meant
to
be
from
a
human,
but
now
we
want
to
simulate.
So,
let's
see
if
we
can
start
off
by
choosing
randomly
like
what
what
I
want
to
do
is
based
off
whose
turn
it
is
get
the
set
of
available
moves.
A
A
So
we
have
game
dot,
game
board
and
we're
going
to
have
it's
going
to
be
a
certain
player's
turn,
so
we're
going
to
say
game
dot
players
turn
black
okay.
Now
this
is
where
it
gets
fun.
So
we
can
say,
let's
say
like
position
piece
for
position
piece
in
g
dot
game
board.
A
A
That's
gonna,
give
us
a
piece
and
we
wanna
get
the
color.
I
believe,
okay,
so
we're
itera
we're
iterating
through
all
the
pieces
on
the
board,
and
we
want
to
say
if
peace,
dot,
color
equals
g
dot,
player's
turn
players
turn
piece.
A
A
A
A
I
think
we're
finding
a
lot
of
bugs
that's
okay,
this
this
will
work
or
we
could
say,
does
not
equal.
A
So
that
we
get
all
the
black
pieces,
so
these
are
pieces
available
now
for
each
of
these
pieces,
let's
call
it
current
players,
pieces.
A
We
wanna
for
each
piece.
We
wanna
check
all
the
available
moves,
so
this
might
kind
of
blow
up
computationally.
But
let's
see
so
again,
let's
say
for
position
piece
in
current
pieces
dot
items.
So
this
allows
us
to
iterate
over
this
dictionary
and
then
we
can
do
something
similar
to
what
they
do
with
the
printing.
A
A
A
A
A
A
A
A
Cool
okay,
so
tonga:
do
you
see
what
this
is.
A
So
we're
checking
so
we've
been
able
to
filter
for
a
current
player's
pieces
and
now
we're
just
looping
over
all
of
those
and
for
each
one
we're
checking
the
available
moves.
So
we
can
see
here
that
these
are
all
the
pawns,
and
these
are
the
knights.
A
So
this
is
this:
is
the
action
space
available
to
our
agent
in
an
in
the
agent-based
simulator,
so
we're
making
some
progress
here
so
at
each
step
of
cad
cad,
our
models
are
going
to
be
able
to
run
this
function,
which
is
like
get
available.
Moves
and
they'll
be
able
to
pick
one
of
these
moves
so
we're
going
to
concatenate
these
into
a
list,
so
we're
going
to
say
available
moves
dot
append
each
of
these.
C
B
C
A
So
this
is
the
action
space
available
to
our
agents
and
it
was
just
weird
I
was
just
trying
to
save
that.
Oh,
oh,
I
know
why.
Okay,
we
need
to
go
like
take
this
out.
This
is
called
scope.
B
Zero:
two:
that
is
the
index
of
the
square,
where
it
can
move.
A
A
A
I
think
I'll
just
do
that
and
then,
if
we
want
to
upgrade
it
later,
oops
it
forked
it
to
mine,
it
didn't
give
me
an
option
but
yeah.
We
can
fork
this
right
to
tec
and
and
maintain
a
version
of
it,
because
we
could
definitely
upgrade
this.
A
So,
let's
see
now
we
get
available
moves
okay,
good,
so
we
have
like
nine
minutes.
I
think
I
can
run
a
cad
cad
simulation
just
gonna.
Let's
see
well,
there's
a
bit
left
to
do
yet,
but
I'm
gonna
make
a
function,
get
current
players
available
moves
and
this
basically
needs
the
game
board.
Let's
see
it
takes
like
current
player,
game
board
and
g,
I
guess.
A
Current
players
pieces
equal
this
for
g
in
game
board.
If
p
stuck
color
equals
g
dot,
player's
turn.
Oh,
so
we
don't.
Even
I
think
we
just
need
this
g
get
current
players
available
moves
of
g.
It
doesn't
return
anything.
So,
let's
go
return
available
moves
cool.
So
now
we
can.
If
we
want
to
just
get
a
simulator
going,
we
can.
A
A
A
We
go
dot
values
and
of
zero
oops.
A
Values:
okay,
getting
kind
of
confusing,
but.
A
A
Yes
and
zero,
so
there's
a
lot
of
indexing
here
but
and
then
I
think
I
want
a
random
numpy.random
dot
choice.
C
A
C
C
C
A
It's
complaining
because
it's
a
list
of
tuples,
so
it
thinks
we're
passing
it
a
multi-dimensional
array.
That's
that's
just
a
weird
sort
of
oddity.
Sometimes
we
hit
these
things.
We're
so
close.
My
clock
is
glitching
out.
I
don't
know
what
time
it
is.
A
A
A
A
A
C
A
All
right,
so
that's
a
weird
hack
because
we
hit
a
bug
where
we
can't
take
a
random
choice
because
it
thinks
we
have
a
2d
array
but
anyways
we
solved
that
so
what
we
have
now.
I
know
this
looks
like
a
mess,
but
if
we
put
this
all
together,
we
have
the
ability
to
sample
random
moves
that
are
available
to
us.
A
A
Unless
it's
empty
wait,
how
could
it
be
empty?
Let's,
let's,
what's
our
random
piece
here,
random
piece?
Why
did
it
select
an
empty.
A
In
all
of
this,
if
peace,
dot
values
does
that
work,
no.
A
Dang,
I
think
well
thanks
for
joining
everyone.
I
think
I'll
just
keep
going
on
this
for
anyone
who
wants
to
stick
around.
I
want
to
get
this
simulator
running.
C
A
Yeah,
that's
yeah
this
week.
We
can
take
this
really
far.
I
was
thinking
of
that
too,
because
we
can
oh
yeah.
I
was
thinking
because
I
want
to
train
some
ai
on
this
and
I
was
thinking
what's
the
first,
because
what's
the
reward
function
and
if
the
reward
function
is
just
winning
the
game,
then
that
they
have
to
play
out
a
whole
game
randomly
before
they
get
any
sort
of
reward
signal.
But
then
I
was
thinking
no.
We
can
do
better
because
we
can
make
the
reward
captured
pieces.
A
B
A
B
A
A
Remember
we
just
went
and
looked
for
all
the
cad
cad
resources
and
bonding
curve
resources.
We
could
find.
C
Sean
yeah
because
it
is
after
hours.
I
I
do
have
to
take
this
a
moment
to
ask
you,
because
sims
gonna
have
a
call
with
you
later
yeah
and
he's
gonna.
Ask
you
about
the
abc:
have
you
had
a
chance
to
dive
into
it?
Any.
A
No,
I
haven't.
Where
should
I
start.
C
Well
similar
and
it's
not
any
different
than
how
we
began,
you
know
when
you
got
into
the
js
file
and
then
you
started
looking
at
how
you
could
actually
apply
jupiter
with
building
the
parameters
and
a
scope
that
we
could
see
remember.
A
Right
now,
perfect,
yeah
we're
just
kind
of
going
after
hours,
because
we
didn't
make
us.
Oh
this
chess
stuff
keeps.
I
thought
I
thought
it'd
be
so
easy,
since
we
found
a
pre-made
simulation,
essentially
to
sort
of
deconstruct
it
and
put
it
into
cad
cad,
but
there's
a
lot
of
subtleties.
A
So
what
we've
just
been
doing
is
trying
to
make
a
function
that
gets
all
available
moves
for
each
player
because
actually
how
this
is
set
up.
It's
made
to
be
played
by
humans.
So
at
each
step
of
the
game
it
has
a
a
prompt
to
type
in
where
what
piece
you
want
to
move
where.
But
we
don't
want
to
use
a
prompt.
We
want
to
just
be
able
to
find
the
available
moves
and
hand
them
to
an
ai
system
that
can
just
like
pick
one
of
them.
A
B
I
have
to,
I
have
to
see
you
guys,
bye,
sim
and
bye,
bye.
A
Okay
yeah,
so
jake,
were
you
talking
about
this
tec
hatch.
C
C
And
it
is
the
one
hive
honeypot
which
includes
conviction,
voting
and
celeste
and
all
this
stuff.
We
need
to
remove
some
of
of
it
because
it
is
for
the
main
one
hive
dao
and
we
don't
need
the
right
id
registry,
but
we
will
need
instead
of
the
east
ones
up.
It
creates
honey,
a
certain
great
dynamic
rate.
Instead
of
that,
we
will
have
a
bonding
curve,
so
we
will
be
adding
that
in
this
template
and
the
temp
and
the
and
how
it
is
configured
we
have.
C
We
have
it
in
gardens
the
dice
template
because
it
has
to
install
different
applications
in
order
to
and
it
configures
the
application.
So
the
parameters,
if
you
want
the
parameters
they
can
be
gathered,
that
are
then
template
and
the
script
of
new
thought.
Yes,.
C
Yes,
yes,
because
actually
the
profit
was
part
of
template
and
and
then
it's
a
quadrant
template
was
the
what
we
are
doing
right
now
at
commons,
one
it
had
the
bonding
curve,
but
then
one
hive
just
used
an
issuance
policy
instead
of
the
bonnie
court
and
now
gardens
will
be
in
similar
to
honey
with
each
ones
and
not
with
wondering
curves.
So
this
is
why
we
are
taking
that
idea
and
doing
commons
instead
of
guardians.
A
So
the
gardens
is
going
to
stay
with
the
idea
of
an
issuance
policy
and
we're
going
to
evolve
the
gardens
into
the
commons,
which
is
actually
gonna,
have
a
bonding
curve.
A
C
No,
that
was
celeste,
okay,
all
right,
but
just
how
celeste
works
with
the
tec.
Okay,
because
there's
a
lot
of
tools
of
celeste
that
we're
not
we're
not
using
okay,
it
was
just
for
disputable
voting,
but
this
this
is
a
whole
big
scope
with
all
the
issues
of
the
abc
it
all
starts
right
here.
C
C
I
think
that
it's
it's
better
if
we
see
them
in
another
way,
because-
and
maybe
I
can
share
the
screen
yep-
I
don't
know
if
we're
finishing
the
lab
or
is
it
okay
that
we
continue
it's
entirely
up
to
you
guys,
I
I
don't
mind
hanging
out
but
yeah.
This
is.
This
is
like
yeah.
A
We're
all
just
hanging
out,
so,
let's
roll
with
this.
This
is
awesome
and
I
still
got
the
chess
stuff
open.
We
can
come
back
to
it.
Maybe
lauren
was
so
excited
to
see
the
the
get
player
functions
and
running
through
cad
cat,
but
I'll
leave
it
open.
We
we
can
just
kind
of
flow,
I'm
I'm
honestly
pretty
much
open.
Now
I
think
I
did
have
a
like.
My
schedule
is
open.
I
think,
for
the
day,
so
I'm
down
to
just.
C
Yeah
it'd
be
cool
if
we
could
donate
some
time
right
now
and
just
hack
this
out
and
get
going
on
what
needs
to
be
done
for
it.
This
is
this
would
be
big
because,
as
soon
as
as
soon
as
they
is
sim
and
them
and
gabby
or
whatnot
and
they're
done-
and
we
can
get
the
contracts
over
to
the
auditor-
we're
probably
what
maybe
30
days.
You
know
two
weeks
for
the
auditor
two
weeks
to
fix
stuff
and
then
we
we
need
to
have
this
ready
to
go
so.
A
Okay,
guys!
This
is
awesome
yeah.
So
what
were
you
saying?
Sam,
maybe
you're,
gonna
share
your
screen.