« first day (1887 days earlier)      last day (2958 days later) » 

12:04 AM
@Downgoat Yeah, but that has a "return" expression and therefore is just a function.
This would be a body: -> (a, b) { a += c; a + b }
 
@mınxomaτ got it.
Should I allow spaces around decimals? e.g. 12. 34, 12 .34, 12 . 34?
 
I'm pretty sure that would break other things.
 
@Sparr how did ToD deal with players that joined midgame?
aka, the fundamental problem is that player A would be growing his empire for X weeks and then when player B joins, either he is stomped by player A, or he gets bonuses to compensate (which are notoriously hard to balance)
most servers only support a limited number of languages, right?
 
@mınxomaτ How?
Also
wait
-> should be for Actions (don't return) and => for functions (implicit return)
Also, someone should make a Cheddar chat
 
12:24 AM
@NathanMerrill ToD didn't have mid-game joins. 64 players got together and then the game ran. same thing that Triton does now.
hence the sorta-massive description
 

 Cheddar

For discussion of the design and development of the Cheddar pr...
 
games like Atlantis / Eressea / Lorenai / Overlord are open ended and players join mid-game with some frequency. a core part of those games is that the world grows at the edges over time, and traversing the whole map takes a prohibitive amount of time.
a player making all possible speed towards the edge of the map will barely keep abreast of new players joining, and that unit is unlikely to ever return to that player's original territory
I think the last time I saw a world map for eressea it would take the fastest ships (fantasy setting) something like 2 years of real time to cross the map
 
there's a slight problem with that: the radius growth slows over time
 
no one ever pushed hard enough for that to matter
investing that much effort into getting to the edge of the map would be expensive and disastrous for whatever other plans you might have
very vague recollection: the fastest ships moved 7 hexes per turn. the map was a few hundred hexes wide and tall, and turns ran once a week. the ocean path from side to side was not at all straight.
 
sure, but say there are 3 players, who start on days 0, 100, and 200
 
12:30 AM
that didn't happen
 
at the nadir of the time I was playing, a handful of players were joining every turn/week.
most players didn't play long and gave up, so there were small abandoned towns and villages and such across most of the world to be found
it was likely you would play for a month or two before encountering another player for the first time
that was eressea. lorenai was different. in lorenai you could choose to start in the most populated part of the world, or in a less populated city. in overlord you got the choice of city or village or wilderness, so you might see a dozen other players on your first turn, or a few, or go a dozen turns before finding anyone.
overlord and lorenai had smaller maps than eressea. again vaguely recalling, but I think they might have been closer to 100x100 or even 50x50, but also with slower travel
all of this was via email
I think that if someone made a web/mobile game of this sort, it might be just barely financially viable today.
I'd go back to paying a dollar a week to play a modern version of the old games I loved
 
@trichoplax I think ideally it would be 50-50.
 
Hard to guess how to set that balance without knowing what strategies will emerge...
 
I don't want the ideal strategy to be "taking everything one turn at a time" but also not "fill up the entire program with random movement, and sit back and watch"
 
12:38 AM
so, aside from the MMORTS concept, back to codebots style KOTHs...
I mentioned earlier a torus world that expands
another option would be to not expand the world, but have bots respawn, and the proportion of bots spawning would go down as more competitors enter
 
So, idea: limit program size to something much smaller, like 8 instructions or so, but include some kind of unconditional jump.
 
every turn, X old bots randomly despawn and X new bots spawn, evenly split between all entrants so far
 
That's actually a pretty nice idea.
 
make X something large like 1000 and the split would stay quite proportional through hundreds of entrants
 
Sorry, I was absent for most of the MMORTS discussion.
 
12:41 AM
you'd probably limit it to N entries per person, to avoid one person continually adding new versions of their bots and filling up the list
Food Chain's "solution" to that problem was to have a relatively small number of possible entrants and not allowing duplicates of a certain subset of entry features. The actual game was to be the first person to come up with the best combination of features for the current game state
(and the game state mostly asymptotically approached a particular equilibrium between certain optimal entries)
I'd be interested to see the despawn/respawn approach applied to codebots 3 (or 2?)
one arena with 5000 bots in it, every hundred(?) ticks you despawn 1000 of the bots at random and replace them with an equal number of copies of every entrant. keep running until the populations stabilize, and that's the "end" condition of the contest.
or it could just keep going, after stability is reached new entrants could be contributed.
 
I do like the regular despawn idea, but we still need a "core" idea
 
Core Wars KOTH simply ran a 1v1 match between a new entry and every entry already on the top 100, and then put the new bot in the spot for its score and kicked the #100 bot off
or maybe that was the C++ Robots KOTH?
 
@Sparr Are you talking about the Core Wars hosted on PPCG?
 
err, no? Is there one?
 
yeah, there was one
17
Q: The Nano Core War

PhiNotPiThis is an adaption of Core War, a programming KOTH dating back to the 20th century. To be more specific, it is using an incredibly simplified instruction set primarily based off of the original proposal. Background In Core War, there are two programs battling for control over the computer. Th...

 
12:47 AM
Well, it was kinda a stretch from official core wars. I assumed you were talking about "the real thing" but wasn't sure.
 
oh, cool. I wasn't describing that one.
although the way that one is scored, it could definitely run forever
 
that does beg a question:
do challenges on codegolf need to be terminal?
I mean, if there is a forever-running KoTH, then we'd intentionally plan on never selecting a winner
 
Answer chaining challenges don't end.
 
some of them will, eventually
like the "fewer characters every time" one
 
I think, there just has to be a way to pick the current winner at any given moment.
 
12:53 AM
that one is only ever going to have 96(?) answers, at most
and yeah, knowing the current leaderboard works for me. I don't need there to be a winner.
 
I agree
hmmm,I need a server with lots of processing power, but don't need lots of bandwidth
 
What's the proper Stack Exchange site to ask about a colloquialism for something?
 
ELU?
 
That's what I was thinking but I wasn't sure if that was the place to talk about colloquialisms. Considering not all ELU users are from the USA
 
Well.. that would do it for me ;)
Thanks!
 
Java noob question: I have a game map implemented as a 2D array. There can be either empty space, a robot, or a crystal in each spot (no overlap allowed). What's the proper way of organizing my code? Make an interface/superclass to hold crystals and robots? But... that feels hacky, because crystals don't store information (they simply exist).
 
In Rust that would be the perfect use case for an enum Square { Empty, Robot { foo: i32, bar: String }, Crystal } :)
 
@Doorknob what is i32?
 
32-bit integer?
 
1:11 AM
32-bit int, yeah (just an example)
 
@PhiNotPi You need an interface for all methods supported by those
If no methods, just make an IItem interface or something
 
@PhiNotPi I don't know Java, but here's an idea: do an array of ints, where 0 is empty, 1 is crystal, and all other spots are pointers/id numbers of bots.
 
-49
Q: Offering actual money as a bounty?

Elias ZamariaI have an idea for dealing with a question you badly want to be answered, which no one will answer, even after you've offered a large bounty: cash. Users can offer cash, and whoever has the accepted answer can be paid, possibly via PayPal. Does this sound like a good idea?

-49. Woah.
 
@El'endiaStarman No, Java has enums
Enums > JS int hacks
 
@PhiNotPi Have a Location object, which exists at a specific location. Also, you should use a Hashmap instead of a 2D array. it still has O(1) read access, is more space efficient, and allows for easy expansion of the world
then, each location has a boolean that indicates whether it has a crystal or not
 
1:19 AM
@NathanMerrill I'm not doing an expanding world, though. This is just a code-bots-style world that's created at the start of the round.
 
its still more space efficient
if you have a 1000x1000 grid, you'd have to have 1 million "spots" stored in memory
 
How slow is it? (what's the constant hidden in the O(1)?)
 
I've never had any problems with slowness on hashmaps
 
okay
 
your other option is to have a generic "MapItem" object
Crystal would extend it
you could even only create 1 crystal, and put it in 1000 different locations
that way, you aren't using up memory for 1000 empty objects
@PhiNotPi you should take a look at my framework
it already has a 2D grid that you can use
(its not all-in or anything. Each of the parts are modular)
 
1:25 AM
I don't know how to use it, though.
Also, it doesn't compile because I assume I'm missing something.
 
hmmm, what does it say you are missing?
You'll want a TilingMap with a Square adjacency set
 
Multiple markers at this line
	- The method map(Function<? super List<Player>,? extends R>) in the type
	 Stream<List<Player>> is not applicable for the arguments (GameManager)
	- Syntax error on tokens, delete these tokens
^ errors like this (from eclipse)
from line 82 in gamemanager
 
are you on Java 8?
 
Yeah, I've tried to hook up jdk1.8.0_77
 
hmmm, I'm on 1.8.0_65
oh, better question, what is your code?
 
1:31 AM
Maybe here's a clue, I'm getting a syntax error on this::runGame
@NathanMerrill I haven't hooked up any of my code to the KOTHcomm.
 
@PhiNotPi is every :: throwing a syntax error?
for example, there's another one at the bottom of the same file
 
actually, yes
 
I know your JDK is 1.8, but what is your project language level?
(you'll find that in your project settings)
 
I don't see anything named language level. Where do I find it?
 
ah, apparently eclipse names it source level:
2
Q: eclipse set source level

user2097804I have a project that I built for jdk 7, but I want to expand its compatibility for jdk 6 users as well. I have set the compiler compilance level to 1.6, but the project compiles normally, and fails running on a 1.6 jre due to the fact that the method revalidate was not added to java until java 7...

wherever you select your JDK, there should be another dropdown that allows you to select language level (its probably set to Java 6 or something)
 
1:45 AM
I honestly don't see any support for Java 8 anywhere.
Okay, I think I need to update Eclipse....
 
I just found a super old Pyth answer: codegolf.stackexchange.com/a/32759/45151
Look how cute it is rofl
 
yeah, you need to be on at least Luna
 
2:05 AM
Aww, it's a cute little Pyth 1.0.2
 
U was uppercase?!
Ok wow this is so unrecognizable as Pyth :P
 
@Doorknob U hasn't changed ...
It's still unary range.
; was e.
V was _
 
> =ZUw: Convert input to uppercase and store in Z.
 
since when are we treating esolangs as babies? :P
 
@Doorknob Oh, wow, you're right. That's so different I didn't even realise what I was saying
 
2:13 AM
haha
 
Can some people please take a look at my sandbox post? I want to post it tonight but have had no feedback yet.
 
@GamrCorps is validation of numbers required?
aka, does the program need to do anything if 1a + 7i is passed?
 
@NathanMerrill Numbers can be assumed to be valid, and only valid inputs will be passed. Will add, thanks
 
also, you said simplifying numbers is allowed, but can I take 3 as input, and return 3.0?
 
@NathanMerrill Yeah, added that as well
 
2:24 AM
@GamrCorps Your third bullet point seems contradictory
 
@trichoplax Well then, let me rewrite than. Didnt notice that :P
 
:)
@GamrCorps Might be worth some zero test cases
 
very good point
 
0
0j+0k
-0j
I assume there will only ever be a maximum of one instance of a given letter? You won't ever have to deal with j-j?
 
nope
 
2:41 AM
bah, I hate writing serializers
 
When you bring in your laundry and get told your one basket is 3 loads. >.<
 
Solution: Wash your own clothes.
 
ಠ_ಠ
Solution: Mail to @Minibits along with $20 for him to wash.
 
Invaluable skill in college and later in life: washing clothes yourself.
2
 
ಠ_ಠ
 
2:51 AM
@EasterlyIrk Actually, yea, that would work. Send along your return address.
 
$20 + sale price of second hand clothes
 
@El'endiaStarman by hand?
 
@trichoplax ಠ_ಠ
@HelkaHomba yeah
 
Well, no. Just doing the work yourself of putting the clothes in the washer and dryer...
 
@Geobits Wait, am I getting these back??.........
And intact?
 
2:57 AM
@trichoplax I hadn't thought of that, but that's even better. @Easter Don't bother with the return address.
 
Without downvote icons silk screened on?
@Geobits D:
Will send and sue.
 
Yea, we'll see how well suing a nine-year-old works out for you.
 
I'm not sure $20 + sale price of second hand clothes is going to be enough to buy Geobits' home address, unless it's a big load of washing
 
"I sent all my clothes to some guy on the internet and he hasn't sent them back. Please award me all the things."
@trichoplax PO Box for life
 
ah...
 
3:03 AM
I leave for 30 minutes and come back to sending clothes and money to Minibits to wash them...
 
@Geobits ಠ_ಠ
 
If you wait a day, I can ask him tomorrow if he'll accept Visa, MC, or maybe even bitcoins (who knows?). He's in bed now though, so it'll have to wait.
 
@Downgoat sowee
@Geobits okai
 
@EasterlyIrk ? Oh
 
He's probably gonna want that cash, though.
 
3:06 AM
BTW, does minibits have an obsession with small animals?
my 9 yr old brother does.
14 mins ago, by Easterly Irk
Solution: Mail to @Minibits along with $20 for him to wash.
 
@NathanMerrill If you are still around, I updated Eclipse.
 
@EasterlyIrk Not unless you include pokemon.
 
okai
 
@PhiNotPi here :)
 
do you have any documentation anywhere about how I use it?
 
3:07 AM
nope, sorry
that's still on the todo
I can explain the Maps if you'd like
 
@Geobits Does Wifeobits approve of you encouraging child labor?
 
@HelkaHomba There is no Wifeobits ;)
Besides, think of it as, umm, chores, for umm, allowance.
 
I'm getting some new errors:
Access restriction: The type 'Pair<K,V>' is not API (restriction on required library '/home/mclapp/Downloads/jdk1.8.0_77/jre/lib/ext/jfxrt.jar')
 
oooh, that may be my fault
where is that at?
 
TupleSerializer
I also need to figure out how to fix import org.jetbrains.annotations.NotNull;
 
3:14 AM
bah. I'll remove those too
I used to use Kotlin in the project, but removed it to make it easier for developers
and Pair was a Kotlin thing
 
Also, in utils.iterables, Tools has an empty geometricMean() method
 
?
my bad
 
(The geometric mean probably isn't the most important thing.)
 
I looked into Kotlin a while ago but never got into it, is it good?
 
@GamrCorps I like it alot
@PhiNotPi I'm pushing an update right now
I actually removed the mean a while back
 
3:18 AM
0
Q: Parse a Quaternion

GamrCorpsIf you don't know already, a quaternion is basically a 4-part number. For the purposes of this challenge, it has a real component and three imaginary components. The imaginary components are represented by the suffix i, j, k. For example, 1-2i+3j-4k is a quaternion with 1 being the real component...

 
It's alive!
 
ok, take a look?
 
Finally no errors, that was a struggle.
 
sorry :)
 
Okay, so, how would I go about basing my bots KOTH off of this?
 
3:22 AM
well, like I said, its pretty modular
the best part is the maps
so, start with that
create a TilingMap
with a SquareAdjacencySet
 
p.s. I am impressed by the scope of this project
 
thanks :)
Tiling map is your standard map, but can be extended to include triangle tilings, hexagonal, and so forth.
 
Well thats the fastest Ive ever gotten rep
 
:D
 
You have a ShapedGridMap, which basically a fixed shape. Think of a hexagon made up of N other hexagons
and finally, a GraphMap, which is just a graph
 
3:27 AM
Hey @Doorknob, don't you know Lojban fairly well?
 
go'i
 
Ill take that as yes. Would you suggest learning that Lojban?
 
@NathanMerrill How would I go about using stuff such as Tournaments, Game, Player, etc.?
 
@GamrCorps It's certainly interesting. I guess it depends; it's not for everybody :P But I do enjoy it
 
@PhiNotPi Game represents a single round of a game
 
3:30 AM
@GamrCorps Good Job!
 
anyone here know about jane street?
 
@HelkaHomba hahahah
I saw that edit
 
What's a good resource for learning Lojban?
 
@PhiNotPi I just realized I need to change how Players work (because I need to instantiate a new set of them every game)
but a player represents a player within a game
 
@quartata mw.lojban.org/papri/Lojban#Learning_Lojban is what Im looking at now
 
3:32 AM
@quartata Level 0, CLL, IRC #lojban
 
So, that said, you need a GameManager. A game manager is basically the "meta" for a game. It lets a tournament know how many players a game supports, and how to create a game
 
@Doorknob tasmi lo nu mi cilre
 
therefore, select a tournament type, give it a game manager, and the set of current players (and any other parameters it wants)
then you can call run() as many times as you'd like, and it'll run a tournament for you
 
@quartata Oh, also, Memrise and Anki are both good for flashcards
 
SamplingTournament is the typical tournament you see on this site: Select N random players, and put them all in a game.
oh, one last thing: Scoreboard is your aggregator.
 
3:36 AM
@quartata Find a daycare filled with kids just under a year old. Listen as they attempt to communicate, and take notes.
 
so, you can run multiple trials of a game with sampling tournament, and then rank the players with the lowest high score if you wanted to :P
 
@NathanMerrill I missed out on this conversation earlier, is this a KOTH controller?
 
Hello
 
The one KOTH controller to rule them all.
 
3:40 AM
@JesterTran It's very well-known in the functional programming crowd, because they mostly run on OCaml.
@NewMainPosts Ooh, I must try this.
 
So, let's say that I want to implement as much of my KOTH as possible with this controller...
So, I'm making a new class with a main method, and the first thing I should do is to make a "tournament"? Let's say that I decide to do a MAM tournament (since this will be a everyone-at-once game).
It looks like I need to make a List<Player> and a Function<List<Player>, Game> first.
 
List<Player> is every player in the game
er...have you pulled?
you need to pull
because Function should be replaced with a GameManager
 
In MamTournament?
 
that said, GameManager does require a Function<List<Player>, Game>
yes
oh, nevermind
 
@NathanMerrill where is this repository?
 
3:48 AM
I didn't update it
my bad
 
It looks like the other tournaments do require a GameManager
 
Thanks
 
I did gamemanager to allow for multiple games to run at once
but I apparently missed MamTournament
anyways, its my bedtime
I'll update the code tomorrow :)
 
Okay, bye!
 
3:50 AM
goodnight!
 
4:14 AM
UK company tax work is so much easier than in Germany...
 
@zyabin101 "ಠ_ಠ" is going to be my first one...
 
It's such a joy to be outgolfed on things I worked hard on. Give some love to proud haskeller's Interleaving golf and quintopia's ABACABA Cities golf!
Let's give later-posted solutions a well-deserved boost.
 
@Downgoat Now select a short title for your reply. "Disapproval"?
 
@zyabin101 just ಠ_ಠ will do
 
I posted two answers today. I realized that it had been 5 days since I last posted an answer. D:
 
4:44 AM
@KennyLau Ping.
 
@ChrisJester-Young Pong.
 
@AlexA. You're not Kenny Lau, lol.
 
Doesn't mean we can't play ping pong
 
@AlexA. D:
 
@Downgoat I keep seeing AvacadOS around. What exactly is it?
 
4:47 AM
@MyHamDJ An operating system powered by jQuery.
 
Is the styling of leaderboard on this question broken for everyone, or is that just me?
 
@Dennis Broken for me too
 
Broken for me too
 
@Dennis Looks fine for me.
 
@Dennis You should use the graduation userscript's leaderboard, that works really well.
 
4:50 AM
@Downgoat You know, you don't have to press enter before proofreading. :P
 
@Dennis Styling's fine, but it displays no results.
 
@Downgoat I'm more concerned about the leaderboard itself than it not showing correctly for me...
@isaacg Um, okay, that's even worse...
Could it be because of the weird characters in user/language names?
 
@Dennis The columns overlap somewhat for me.
 
looks like bad CSS, removing the width: 290px; fixes it for me
 
@Downgoat OK, let's get rid of that then.
 
4:56 AM
@Dennis ok
Oh, I just thought of a pun:
 
Leaderboard fixed. (Dammit, why is Jelly 4th?)
 
Leaderboard? More like leaderborked
 
haha
 
Two toms and a hi-hat fall down a hill.
 

« first day (1887 days earlier)      last day (2958 days later) »