« first day (275 days earlier)      last day (967 days later) » 

00:00
so, on to another thing: should you be able to directly read a character?
or just equivalency, or both?
@DestructibleLemon This could be for an entirely different challenge though
@DJMcMayhem stahp
︿ and ﹀
Lol
@WheatWizard b and d, p and q,
@DestructibleLemon I think `/\` should pop from the stack, read from relative location and push the character to the stack.
00:04
I think that spaces should only be available in original programs and around the grid
(trying to write a zero also kills you I guess)
(reading a space doesn't kill you, but it is slow, because one space per step)
also cloning might be a thing
actually that would make many complications
I'm afraid that all of the slashes will be destroyed and the two programs will endlessly loop
well
endless looping was possible in corewar
so we'll deal with it in the same way I guess
Anyway, I really gtg now. Cya later! I'll definitely catch up on the transcript
@DJMcMayhem Thanks for the support and stuff
@DestructibleLemon We can probably run a check to see if a win is possible once there are no write characters and call a draw if it is impossible
00:09
nah
Brainflak is TC
so its probably best to put in draws anyway like corewar
We are checking if there is a syntax error not if the programs will halt
the bots do that themselves
ok
Do you want to start work on a controller?
I would like to get in some test games tonight
hmmm, maybe
but I don't really flak at all
also I already have a game controller I should be testing
also dibs on posting the question
the tasty rep is all mine
ok no problems
00:11
muhahahah
I'll start work on it tonight by myself.
Do you have any prefered languages for the controller
Brainflak >:)
nah just kidding
I pretty much only program python
what is the flak interpreter in?
Good I write mostly in Python myself
@DestructibleLemon There are 3 (at least) in Ruby, C and Python
But the Python one is super buggy rn
I'll probably write a new one from scratch
00:20
also in response to that english name thing
<foo> can be called cancel(lation)
or nullify
@WheatWizard thoughts?
also I imagine a common tactic would be placing a bunch of } at the start of the program, because you can use it to mess up the other guy while you don't get affected by it
possibly more { at the end of the program too
00:38
@DestructibleLemon Sounds good. <...> has the most names, I typically call it zeroer or zero.
cancellation sounds better than cancel though
n - Spiky brackets
Read what? l
This is an Identify scroll
Identify what? n
brackets of cancellation (0:2)
01:06
@WheatWizard what if we use the third stack idea of how the brackets work and combine (, [, and <
We could
It would make programming a bit easier
but it might be confusing for people trying to compete
yeah
but I think it actually kind of works better in a way
(also except for in monads)
ok I'll implement it
do you just program the third stack anyway?
so pretty much just remove all checks for matching stuff
I was also thinking that instead of adding the slashes I could repurpose <...> and []
01:09
because you shouldn't have any anyway
@WheatWizard nah, thats actually rather confusing
@DestructibleLemon Yeah at the low level there actually is a third stack. The check for matches is done before the program starts
{...} doesn't use the Third stack at all
yup
also remember that " " doesn't work like it would in core war
What is that?
How does it work differently?
01:12
in core war the areas with no instructions written are data instructions
they kill the bot
in this, you cannot write spaces
also you will need to change the indexes for brackets
oh Yeah, I thought you said different from Brain-Flak and I was confused
also how many steps takes a nilad?
I'm thinking both brackets are considered separately
I think you mean nilad
in regular brainflak its only one I am writing it as 2 for the controller
01:14
( ) is a nilad like () but takes two more turns
make sure they are considered separately too
oh yeah good thinking
(>) will count > as a monad right?
hmmm
you have made good point
yeah ok don't combine the brackets
rip
just deleted all of my code ;_;
but [()) is the same as (())
@WheatWizard in response to me?
now I'm confused
01:17
me too
should <([ all do the same thing?
no, for the purposes as nilads they are different
also how do you tell the machine (>) is wrong anyway
do you make it check whether you are processing a monad before hand?
no I do that at the end
I check if the last character executed matches the current one
then you end up with (> being drastically different from <>
yes
(> is the same as <()>
01:19
even though the third stack thing says no
This is kind of an edge case for the third stack
mmhm
yeah I guess we'll have to deal with that then
the third stack "concept" treats nilads as single units instead of two braces
(> just does nothing but wait two turns then
currently yes
01:21
it has been decreed
so does [>, (]
I think it is best the way it is even if it is a little weird sometimes
hey you found a way to push zero as short as pushing one
Yay!
shorter even
<)
oh yay!
this is probably going to do really weird things but ok
should we require programs to be balanced to start?
Might fill in some exploits, but exploits might also be fun
@DestructibleLemon Annother thing. Since the third stack is infinitely padded what should the program ()) do? should it push 1 or 0?
01:27
is the third stack infinitely padded?
I'd say () adds 1 to TOS, so it would push 1
so far it seems like the main way to kill is these: {}
so this is actually going to be fairly different from brain-flak isn't it
ok so ()){)} will push 1 forever then?
In practice yes.
hmmm
maybe bottom stack should not be infinitely padded...
what happens when a program attempts to pop from an empty stack then?
ded
though realise you can use ( to add zeroes
or <
etc
I think we might need some test runs before we can determine.
I can make it so the interpreter has a easy switch so we can test and compare the two
01:31
it does tend to be difficult to kill in things like corewar but they have cloning and stuff
I think you could actually do jumping though
I'm going to play some test games tonight with my roommate and we'll see how we like each version
cool
You should call the modified version (without the coresize)
also: remember you should have a core size
also there will be a lot of advanced strategies you can't do. no offence, but I can read up on corewar but still can't make a decent scanner or paper.
@WheatWizard did you implement core size yet? or is it just program sizes + 20
you should have a lot
like maybe 4000 about
or you could have it tiny but probably not
@WheatWizard
01:50
Right now I'm doing 100 for testing it will certainly be an option in the final version
should probably be more than 100
TBH 100 seems more like an upper limit for program size
maybe probably more than 100 for program size
for small testing purposes I just want a number for which programs will halt very quickly
ok
cool
so, do we agree it shouldn't be possible to write space?
01:54
yeah
ok good
if you read space you get a 0
in order of their numbers, the brackets:
(
[
{
<
/
)
]
}
>
\
I got it from the order on esolangs
 
1 hour later…
02:59
what does `/\` do?
well
@WheatWizard I think we decided on it doing the inverse of /foo\; it pops, does the relative locations, and pushes the value of the char there. it is the read command
ok sounds good
03:16
I might help with the controller later if you want
I actually just finished it
I am going to do some testing with my roommate but it should be all done
03:32
BTW it kind of annoys me that you describe Brain-flak as as hard to use as possible
@WheatWizard
@DestructibleLemon where do I say that?
well you being the plural
From the @DJMcMayhem I wrote brain-flak, which is a language supposed to be maddeningly hard to program in.
it kinda trivialises the fact that its more about the fact that it is an interesting language not just one that is hard
03:59
Huh, I never thought of that
@DestructibleLemon Do you have a better summary of it? I feel like saying brain-flak is an interesting language isn't that helpful, cause it's more interesting to say what about it is interesting
I mean I made a really hard language and it kinda sucked
because it was too hard
Turtlèd?
hey!
no woefully
Ooooh, sorry
I mean it could have been good
but it was way too hard to actually work
You can describe it as lisp like
04:02
I think the most interesting part of brain-flak is the way it nests
Lisplike bracket concatenation and nesting language
LiBCaNel
So you can do things, but you can also take the doing of those things and use it for it's value
So for each snippet you have to think about effects and value separately
Is there any word for describing the way it has to be balanced? Symmetrical is almost right, but definitely not
I like the "lisplike bracket concatenation and nesting language" summary
I have to say once again it is a very cool language
Cool! I'm glad you like it :)
I haven't learned it very much but its simplicity means I don't really have to to understand what it is
oh yeah. add minimalist to my summary
04:09
@DestructibleLemon If you want to learn it well, a great entry level task is multiplying two positive integers
do you want a deal?
I will do the brainflak multiplication if you do Turtlèd multiplication
(without stealing the one I did)
In fact I don't even have an answer for the adding numbers
you could do that instead
Oh man... I'm really tired right now >_<
you don't have to do it now :P
is it a deal though @DJMcMayhem?
04:18
Idk, I don't really want to make it a deal or anything, cause I don't really have very much time or energy for PPCG right now (sad, I know)
@DestructibleLemon But I'll definitely look into it
It's actually kinda sad. I keep thinking about things I'd like to do on PPCG but I'm so busy right now I know I'll never get to them
 
11 hours later…
14:55
Can someone double check my logic on the division part of this? If it's all right, it's way shorter than the one one the wiki.
2
A: Division and remainder

RileyBrain-Flak, 168 bytes (({}<(({})<>)>)<>)({}<(({}<>))>((<>))())({<{(({}[()]))<>({}[()])<>{{}(<>)}{}}{}{(({}))(<>)}{}>()}[()]<{}<>{}{}<>>)<>({}(<>))<>{(({})){({}[()])<>}{}}{}<>([{}()]{})({}<>) Format: Input: Output: A (255) remainder (5) B (25) division (10) Try it online! E...

15:12
@Riley as far as I can tell that is fine
but its also not shorter than the one on the wiki
15:30
@WheatWizard Shoot, I was looking at the one that works for negative numbers...
Well on the bright side you can use the one on the wiki to golf your own down
16:01
That got it down to 110
16:46
@WheatWizard Hey, I thought of one more potential bfbdc (brain-flak-birthday-challenge). "Given a string of brackets, append the fewest possible characters to make it a valid brain-flak program"
@DJMcMayhem So complete the braces?
Yeah, pretty much
It's not brain-flak specific, but it's related enough
This is nontrivial because it might be partially matched. Take (((())[]{ for example. The obvious approach to just append the whole thing reversed and flipped would give (((())[]{}[](()))) which is longer than necessary. The correct solution would be (((())[]{}))
It would kinda be this challenge 2.0
Thoughts?
Could be fun. I feel like it is a little simple. It could use a twist
17:01
@WheatWizard Here's the first approach that comes to mind: Try it online!
what about ]
One thing I'm just realizing now that I didn't think about is whether it will always be possible to make it valid just by appending. For example, )) would be an invalid input
Maybe change it so that you may append or prepend?
But then guarantee that the input will be at least partially matched, so something like <} or (] would be invalid
@WheatWizard What do you mean?
Are you asking why [] don't show up in the code?
No I was getting at what you said about appending vs prepending
Oh, I see
There's another potential challenge: Is it possible to make a string valid brain-flak purely by appending?
Or maybe Is it Prependable, Appendable, Both, or Neither?
So ( is appendable, ) is prependable, )( is both, and (] is neither
Thats a more interesting idea
17:23
Title idea: Prepends or Appends? Depends
7
17:44
@DJMcMayhem mod abuses into voice of god
Challenge idea: Convert Brain-Flak to Mini-Flak
18:11
@DJMcMayhem How would you classify ()?
@ГригорийПерельман hmmmmm, that's actually a really hard question. I suppose it's probably both, since you can (ap|pre)pend to it, you just don't need to. It might be better to say the input will not be matched
18:38
Hmmm... What's the shortest stack-clean Positive snippet? (i.e. it pushes 0 for 0 and negative and 1 for positive)
And we really need to add less-than/greater-than to the wiki sometime
@ГригорийПерельман That is really, really hard
Yeah, half of it is trivial, changing <...> into ([...])[{}], and the other half is halting-problem level difficult
Basically it becomes write a Brain-Flak interpreter in Mini-flak
 
4 hours later…
22:44
wait a minute
did I say /\ pushes?
it should probably just evaluate to the thing
@WheatWizard (/\\) should push a char value not /\\
also why do `` not work with /\
there we go now
@DestructibleLemon I already made that change
also
if I do //\\
which pops first, the outer or the inner?
@WheatWizard this is important
moreso because you can also do /(()()())\ or something like that
inner happens first
I have a bunch of stuff to talk to you about based on my testing last night, but I'm in class now.
22:58
I'm definitely not in class >_>
@WheatWizard when is recess?
I get out at 10
eastern time
umm, is it 6 o clock for you right now? thats what timeanddate.com/time/zones/est says
@WheatWizard
you start school at seven and don't get recess until ten?
I'm at Uni so I have late classes

« first day (275 days earlier)      last day (967 days later) »