Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Conversation started 11 November
- Mathew Campbell
- 11/11/2015 10:49
- Mathew Campbell
- I think it would be a good idea if we meet up sometime this week or at the start of next week to decide how we're going to organise the project. It would also be good to get any tools set up well before we need to start work.
- I'll be free from 1500 on Thursday and Friday this week. If you want to go and get a meal while we meet I'm up for that.
- 11 November
- Mathew Campbell named the conversation: Optimistic.
- Shane Booth
- 11/11/2015 10:59
- Shane Booth
- if we're doing food, I'd like to vote for this
- Red's true BBQ
- Let there be meat
- truebarbecue.com
- Shane Booth
- 11/11/2015 11:03
- Shane Booth
- Shane Booth
- 11/11/2015 11:04
- Shane Booth
- that is not helpful fb
- Matthew Todd
- 11/11/2015 11:05
- Matthew Todd
- Wont be able to do this week. Not in tomoz and seminar on Friday so don't want to do something other than that
- Shane Booth
- 11/11/2015 11:06
- Shane Booth
- I also have seminar friday at 4:30 tongue emoticon
- monday after ai & games then?
- Matthew Todd
- 11/11/2015 11:07
- Matthew Todd
- Would be best
- Mathew Campbell
- 11/11/2015 11:12
- Mathew Campbell
- That works for me.
- And always remember, I'm the one with the phonetically (hence correctly wink emoticon ) spelt name.
- Matthew Todd
- 11/11/2015 11:39
- Matthew Todd
- gasp emoticon excuse me I think you'll find mine is the correct way
- Mathew Campbell
- 11/11/2015 11:57
- Mathew Campbell
- But it's not the correctest way tongue emoticon Wouldn't you prefer English to be phonetic?
- 16 November
- Shane Booth
- 16/11/2015 12:13
- Shane Booth
- so what are we doing?
- throw me your github usernames and I'll add you to the private repo
- Shane Booth
- 16/11/2015 12:16
- Shane Booth
- if you're on linux use public/private keys, if you're on windows, use the github client thing
- GitHub Desktop
- Simple collaboration from your desktop
- desktop.github.com
- Matthew Todd
- 16/11/2015 12:26
- Matthew Todd
- Not sure what you mean by github username. And sorry guys. Just seen this, on train back cry emoticon completely forgot about the keep. Keep me up to date and I'll talk to you guys sometime this week so I don't fall behind. Sorry again T-T
- Shane Booth
- 16/11/2015 12:27
- Shane Booth
- if we're not doing the meeting, then today is a fallout day grin emoticon
- create a github account, throw me your username
- Matthew Todd
- 16/11/2015 12:28
- Matthew Todd
- I have one on home laptop. I'll throw out your way when I get chance to view it
- Shane Booth
- 16/11/2015 12:28
- Shane Booth
- Mathew Campbell
- 16/11/2015 12:32
- Mathew Campbell
- https://github.com/curiousinternals
- What do you mean by a fallout day?
- Shane Booth
- 16/11/2015 12:34
- Shane Booth
- fallout 4 colonthree emoticon
- Mathew Campbell
- 16/11/2015 12:35
- Mathew Campbell
- Oh, of course. I forgot that had come out.
- When's the next opportunity for everyone to meet?
- Shane Booth
- 16/11/2015 12:36
- Shane Booth
- I'm back home tomorrow/weds so thurs?
- Mathew Campbell
- 16/11/2015 12:38
- Mathew Campbell
- Most of my free time to work on AI is gone by the end of Thursday unsure emoticon
- Shane Booth
- 16/11/2015 12:40
- Shane Booth
- I should be back earlyish on weds, maybe we could meet after the cssoc meeting?
- Mathew Campbell
- 16/11/2015 12:40
- Mathew Campbell
- Are you going to be in for the AI lecture today?
- Shane Booth
- 16/11/2015 12:41
- Shane Booth
- it's not a lecture, it's a lab, iirc
- Mathew Campbell
- 16/11/2015 12:42
- Mathew Campbell
- What was meant to be happening in the lab? Is it like graphics where it's just an opportunity to ask questions?
- Shane Booth
- 16/11/2015 12:42
- Shane Booth
- yeah and an opportunity to work, other than the 2 mandatory labs, afaik
- Mathew Campbell
- 16/11/2015 12:42
- Mathew Campbell
- Are you going to be there?
- Matthew Todd
- 16/11/2015 12:42
- Matthew Todd
- I'm good anytime this week. Don't usually come in on Thursday though
- Shane Booth
- 16/11/2015 12:44
- Shane Booth
- I can be, but I wasn't planning on being tongue emoticon
- weds after the cssoc meeting is probably the earliest we can all meet up, then tongue emoticon
- Mathew Campbell
- 16/11/2015 12:46
- Mathew Campbell
- I was going to suggest we just have a short meeting and sort out what we can on our own. That way we might be able to sort everything out over fb and avoid a late meeting. I'd just like to be in a position to get a little work done and learn the tools in the free slots I have early in the week.
- Matthew Todd
- 16/11/2015 12:48
- Matthew Todd
- I can probs do something tomorrow with you if you want. Cant do 1-3 though
- Mathew Campbell
- 16/11/2015 12:48
- Mathew Campbell
- That meeting can easily be in spoons (you live right next to it right?)
- I'm also free at times other than 1-3 tomorrow.
- Shane Booth
- 16/11/2015 12:49
- Shane Booth
- I can't do tomorrow at all, I'm going home home to get my clothes washed unsure emoticon
- Mathew Campbell
- 16/11/2015 12:53
- Mathew Campbell
- Shall we just do something over Skype?
- Matthew Todd
- 16/11/2015 12:55
- Matthew Todd
- Cant do today though. frown emoticon
- Shane Booth
- 16/11/2015 12:56
- Shane Booth
- ok, so today let's identify what we need to sort out
- brb
- Mathew Campbell
- 16/11/2015 13:01
- Mathew Campbell
- tbh, we can probably sort this stuff out over fb. It's just not as fast as speaking.
- Matthew Todd
- 16/11/2015 13:03
- Matthew Todd
- That's fine. Should be done by today right
- Mathew Campbell
- 16/11/2015 13:04
- Mathew Campbell
- I'll have an initial list of things we need to sort out within a few minutes.
- Mathew Campbell
- 16/11/2015 13:10
- Mathew Campbell
- First let's get an idea of what everyone's skills and preferences are:
- - What are you good at? (languages, general skills etc)
- - What kind of work would you prefer not to do?
- - What kind of work would you like to do? (Whether you're good at it or just want to try it and learn something)
- Shane Booth
- 16/11/2015 13:11
- Shane Booth
- good at java, up for anything, shall we use trello or something?
- Matthew Todd
- 16/11/2015 13:12
- Matthew Todd
- I'm good with data based and such Things. Even my project its about handling complex data structure so things like that
- Bases
- Mathew Campbell
- 16/11/2015 13:13
- Mathew Campbell
- For me:
- - General programming and design, organisational stuff and I'm most experienced with Java.
- - At the moment, I'd prefer not to work on anything that requires extreme concentration, as I'm afraid I may not do a good job. Not sleeping properly right now.
- - I'd like to do some proper testing.
- Shane Booth
- 16/11/2015 13:14
- Shane Booth
- would you be up for writing the junit tests?
- Mathew Campbell
- 16/11/2015 13:15
- Mathew Campbell
- If you're willing to give me a bit of help (i.e. answer any questions and review my initial attempts), then sure. Though ideally we'd all familiarise ourselves, even if I end up doing the majority of that.
- To the next thing to worry about is tools: obviously, git. I recommend we stick with Java. Trello: I'm not aware of the advantages as I've never used it. How much set up will it require, and how much time will we need to dedicate to learning how to use it properly.
- Shane Booth
- 16/11/2015 13:18
- Shane Booth
- it's supposed to be an agile note board tool thing so supposedly not much
- Mathew Campbell
- 16/11/2015 13:20
- Mathew Campbell
- If you set it up, we can trial it this week.
- I've noted down junit. Any other tool suggestions?
- Shane Booth
- 16/11/2015 13:21
- Shane Booth
- nope
- I'd suggest java 8, but don't think it's on kb
- Mathew Campbell
- 16/11/2015 13:23
- Mathew Campbell
- Let's play it safe and stick with 7 for now.
- Anyone have any idea how many hours we're supposed to have on this project per week?
- Shane Booth
- 16/11/2015 13:26
- Shane Booth
- >0
- Mathew Campbell
- 16/11/2015 13:26
- Mathew Campbell
- >= 2 (scheduled labs)
- Is there an official figure for hours outside of those scheduled per module?
- I guess the better question is: How long are you both prepared to work per week beyond the two scheduled hours?
- Shane Booth
- 16/11/2015 13:30
- Shane Booth
- dunno, I'll usually pick a task and work till it's done tongue emoticon
- Mathew Campbell
- 16/11/2015 13:30
- Mathew Campbell
- In that case, what's the maximum amount of time you actually have free to do that? Then at least there's an upper bound.
- Feel free to ass-pull a number.
- Shane Booth
- 16/11/2015 13:31
- Shane Booth
- a shit load tongue emoticon
- call it 8h a week
- no way that'll end up happening but still tongue emoticon
- Mathew Campbell
- 16/11/2015 13:34
- Mathew Campbell
- Alright. I've actually got exactly 8h worth of slots to work on assignments. I'm going to say an average of 2h on top of the scheduled labs, based off the fact agile gives us two hours of extra project time.
- So 4h each per week on average.
- Of course, we'll see what actually happens and adapt tongue emoticon
- Next up: How are we going to organise ourselves (any special roles/responsibilities, structure of the week, that stuff)
- I'm happy to take care of the organisational stuff: Arranging meetings, taking notes and pushing that data onto a wiki/issue tracker. That stuff.
- Shane Booth
- 16/11/2015 13:38
- Shane Booth
- someone should identify tasks that need doing and put them on trello or github issues or whatever
- Mathew Campbell
- 16/11/2015 13:39
- Mathew Campbell
- We should all do that. That ought to be part of our meeting. That way we can all give our input on how long we think something will take and what needs work first. I can take care of actually entering the data after the meetings though.
- Shane Booth
- 16/11/2015 13:40
- Shane Booth
- well the first tasks we need are game state storing and ensuring we can interact with the game controller
- I'm happy with doing game state tongue emoticon
- Mathew Campbell
- 16/11/2015 13:42
- Mathew Campbell
- I'm happy to take care of dealing with the game controller (which I assume is the interface between our code and the game engine).
- Shane Booth
- 16/11/2015 13:42
- Shane Booth
- yeah
- requires me to get stuff done first I suppose tongue emoticon
- Mathew Campbell
- 16/11/2015 13:44
- Mathew Campbell
- Toddy mentioned that he's good at working with data structures, so I feel like he'd be a good choice for setting up the code for the game tree.
- Since you have experience with all the tools, it would be a good idea for you to set aside some time under the assumption that you will be needed to fix problems with the tools and provide a bit of tutoring.
- Mathew Campbell
- 16/11/2015 13:44
- Mathew Campbell
- > requires me to get stuff done first I suppose
- Have you ever heard of wishful programming?
- Shane Booth
- 16/11/2015 13:45
- Shane Booth
- I've already started on the game state stuff tongue emoticon
- Mathew Campbell
- 16/11/2015 13:48
- Mathew Campbell
- Might as well stick with it then. The other major task is the agent. For now I propose we just make the simplest possible agent. Something that just chooses randomly. As soon as that's done, any remaining time this week can be spent on designing a better agent.
- Are you happy to work on the agent Toddy?
- Mathew Campbell
- 16/11/2015 13:49
- Mathew Campbell
- My earlier question applies to everyone: Have either of you heard of wishful programming?
- Matthew Todd
- 16/11/2015 13:49
- Matthew Todd
- Sorry was driving for last 30 mins. I'm sure ill manage with it yeah. Probs get asked quite a few questions haha
- Nope
- Mathew Campbell
- 16/11/2015 13:55
- Mathew Campbell
- Wishful programming is where you write code that calls functions that don't exist yet. In other words, you write the code you wish you could write. We all need to work on our own components, but most of us need to call code from each other's components. Since we don't want to do our tasks sequentially and wait for each other, we can instead do wishful coding.
- If you need to get your code compiling, just create the necessary stub classes that do nothing. At various points in the week (when some code has bee pushed), we can merge our code, renaming method and class names to meet everyone's expectations.
- Mathew Campbell
- 16/11/2015 13:57
- Mathew Campbell
- Any questions so far?
- Shane Booth
- 16/11/2015 13:58
- Shane Booth
- nope
- Mathew Campbell
- 16/11/2015 14:07
- Mathew Campbell
- Next up: How should we organise our week?
- I think we should have a brief planning meeting at the start of each week. We should also dedicate a portion of our time at the end of the week to make sure everything gets integrated successfully. I'd like to end each week with something that successfully compiles and ideally, can be submitted as an actual working version of our project.
- Shane Booth
- 16/11/2015 14:09
- Shane Booth
- well we can meet in collab from 1-2 on monday, before the lab, because it's not in use
- Mathew Campbell
- 16/11/2015 14:09
- Mathew Campbell
- I'm okay with that.
- Matthew Todd
- 16/11/2015 14:19
- Matthew Todd
- Good with me as well
- Mathew Campbell
- 16/11/2015 14:24
- Mathew Campbell
- Ace.
- With regards to integration, we should have a deadline before the week ends. On that deadline we'd have to stop caring about further functionality and switch to making sure our code works together.
- When would it be convenient for both of you to schedule this deadline? Keep in mind we may need an additional hour to fix problems when we integrate our code.
- Mathew Campbell
- 16/11/2015 14:24
- Mathew Campbell
- So basically, when will you be doing your last hour of AI code for the week?
- Whoever has the earliest 'last hour', the start of that hour would be the deadline.
- Shane Booth
- 16/11/2015 14:26
- Shane Booth
- might as well be just before the lab, so we can spend the lab integrating
- Mathew Campbell
- 16/11/2015 14:26
- Mathew Campbell
- Good point
- I'll record the deadline as 14h then, and we can integrate while we're all together. Perfect.
- Which lab do you want to meet in? We're scheduled for the collab, but it's not exactly equipped for coding.
- Shane Booth
- 16/11/2015 14:32
- Shane Booth
- 2.25?
- i.e. the msc lab
- Mathew Campbell
- 16/11/2015 14:32
- Mathew Campbell
- The best lab. I'm fine with that.
- Shane Booth
- 16/11/2015 14:36
- Shane Booth
- k, code commited and pushed, will have bugs
- Mathew Campbell
- 16/11/2015 14:39
- Mathew Campbell
- Nice!
- Next week we have a submission to make explaining our approach. I think we should deal with this next week. If we're lucky, we'll already be ahead before we even submit our approach tongue emoticon
- I think we should use this week to get the simplest system working and sort out problems/learn tools. If that spills into next week a little it shouldn't be a big deal. After that, we can use the remaining weeks to try out different implementations of the agent and make our code faster (e.g. parallelise it).
- Any comments? Anything I've missed?
- Shane Booth
- 16/11/2015 14:41
- Shane Booth
- don't think so
- Matthew Todd
- 16/11/2015 14:46
- Matthew Todd
- Nothing I can see
- Mathew Campbell
- 16/11/2015 14:47
- Mathew Campbell
- The tasks we have to complete are pretty clear this week, so let's take a look at Trello after we've done our code integration so we can perhaps use it next week. For now, I'll enter our current tasks into github's issue tracker. I'll also drop notes from this meeting onto the github wiki.
- Shane Booth
- 16/11/2015 14:51
- Shane Booth
- cool smile emoticon
- Mathew Campbell
- 16/11/2015 14:51
- Mathew Campbell
- My current understanding of the tasks is as follows (please confirm):
- - Me: Game controller
- - Shane: Game model (States, Actions, Players)
- - Toddy: Basic Agent
- I'm also assuming everyone will try and write some basic tests, if only just one to see how junit works and so we can confirm that the tools work. We can review those on Friday when we're together.
- Shane Booth
- 16/11/2015 14:52
- Shane Booth
- if you are, do them in the kalah.test package smile emoticon
- Mathew Campbell
- 16/11/2015 14:52
- Mathew Campbell
- Got it.
- Everyone clear on what they need to do and for when?
- Shane Booth
- 16/11/2015 14:54
- Shane Booth
- https://github.com/DarkholmeTenk/Optimistic/tree/master/kalah/game/board
- done, board state keeps soft references of all board states that you try to reach dependant on Configuration.cacheBoardStates tongue emoticon
- Shane Booth
- 16/11/2015 15:00
- Shane Booth
- I'll write some tests and relevant toStrings in a bit, time to sort out food smile emoticon
- Mathew Campbell
- 16/11/2015 15:01
- Mathew Campbell
- Nice work.
- Meeting notes will be attached to the repo shortly.
- Shane Booth
- 16/11/2015 15:19
- Shane Booth
- Mathew Campbell
- 16/11/2015 15:28
- Mathew Campbell
- A summary of our meeting is up on the project wiki, as well as a short list of deadlines and places to be: https://github.com/DarkholmeTenk/Optimistic/wiki
- I've also entered our tasks into the issue tracker. Toddy, when you get an account and gain access to the repo, please take a brief look through it to familiarise yourself. Also, please assign yourself to your task while you're doing that.
- I never asked, but have you used git before?
- Mathew Campbell
- 16/11/2015 15:30
- Mathew Campbell
- I'm going to take care of my food now.
- 18 November
- Mathew Campbell
- 18/11/2015 14:57
- Mathew Campbell
- Toddy, do you have a GitHub account yet? I don't see you on the repo.
- Shane Booth
- 18/11/2015 16:13
- Shane Booth
- k, automated build and testing system setup
- Shane Booth
- 18/11/2015 16:18
- Shane Booth
- url is http://darkcraft.io:8080/job/Kalah/ usernames are mtodd and mcampbell and passwords are the same as usernames
- *should* build every time something is commited to master
- if you're running linux, you can build/test everything just by installing and running "gradle build"
- tests should be in test/whatever not in source/whatever now
- 18 November
- Mathew Campbell
- 18/11/2015 19:28
- Mathew Campbell
- Nice. I was going to ask about better build tools. Gradle looks relatively painless.
- If I'm supposed to see something at that URL, I can't. It's just a 404.
- Shane Booth
- 18/11/2015 19:29
- Shane Booth
- go to http://darkcraft.io:8080 and login and then it'll work tongue emoticon
- Dashboard [Jenkins]
- darkcraft.io
- Mathew Campbell
- 18/11/2015 19:33
- Mathew Campbell
- Yup, it's working.
- We should spend some time on Friday talking about the tools. There's a bunch of stuff not taught by the uni regarding tools so it's worth sharing whatever knowledge we have.
- Shane Booth
- 18/11/2015 19:38
- Shane Booth
- are we meeting up in the msc lab before the lab lab?
- Mathew Campbell
- 18/11/2015 19:41
- Mathew Campbell
- I can be in for that. I need to write up some project related notes, but they might be done pretty quickly, so I'll hang around the MSc lab from 13:00.
- Shane Booth
- 18/11/2015 19:42
- Shane Booth
- gdgd
- Mathew Campbell
- 18/11/2015 19:44
- Mathew Campbell
- I'll have a little more time to work of AI tomorrow evening, so the changes I mentioned on github won't appear for a while.
- Shane Booth
- 18/11/2015 19:46
- Shane Booth
- well as long as we can communicate with the game engine and our board state is consistent, I'll be happy
- I can probably link in the jar for the game engine as a dependency but I'm not sure how we're gonna get tests working with it tongue emoticon
- Mathew Campbell
- 18/11/2015 19:53
- Mathew Campbell
- Same here.
- It's not really a build dependency. We can build and test without it. The protocol is the only point of interaction, and it's pretty well defined. I can create test cases for that. I still have to wait and see how exactly they want us to set up communications (e.g. do they want to be able to choose a socket? I assume so, but we'll see).
- Mathew Campbell
- 18/11/2015 19:55
- Mathew Campbell
- It's a little worrying that the provided code was labelled 2014 rather than 15. I'm hoping there aren't going to be significant changes all of a sudden.
- Shane Booth
- 18/11/2015 19:55
- Shane Booth
- indeed
- well as long as the code actually interacting with the engine is just a send method and a receive, it shouldn't matter much, unless the protocol itself changes
- also, can I advocate for allman style parentheses?
- well, braces not parentheses
- Mathew Campbell
- 18/11/2015 20:02
- Mathew Campbell
- I'm happy I kept the parsing separate from the sending and receiving. Should save me a lot of effort if anything needs to change. The internal code shouldn't have to change if my part does.
- You can. I'm not too bothered what style is used. I'm not even too bothered if it's consistently used (I can imagine some functions are so simple they are best condensed onto one line, things like that). I'm just used to dealing with javascript where that style of braces sometimes leads to annoying bugs (which aren't even consistent across browsers) when automatic semicolon insertion comes into play.
- Is there any particular advantage to allman style? I haven't thought about this for very long.
- Shane Booth
- 18/11/2015 20:03
- Shane Booth
- if you need to comment out the control statement for testing, it means you only need to comment one line
- Mathew Campbell
- 18/11/2015 20:03
- Mathew Campbell
- That's very neat.
- Shane Booth
- 18/11/2015 20:03
- Shane Booth
- also, I find it a lot easier to keep track of opening and closing blocks tongue emoticon
- but that's a personal preference colonthree emoticon
- and java doesn't do automatic semicolon insertion because it's not silly tongue emoticon
- Mathew Campbell
- 18/11/2015 20:07
- Mathew Campbell
- Thank goodness it doesn't.
- Mathew Campbell
- 18/11/2015 20:12
- Mathew Campbell
- Wow. I had to look up Allman style and what I'm reading on Wikipedia seems crazy. It seems like people have crazy specs on exactly what style they want. I'm looking at some of the examples and they'd be more readable in one format over the other.
- Surely the chosen style should be picked based on readability. I can see cases where blowing up a tiny if statement into four lines makes for a horrendous time, and others where an if with loads of conditions becomes difficult to read if you try and sneak the brace in on the same line as the last condition.
- Shane Booth
- 18/11/2015 20:12
- Shane Booth
- if it's an if with 1 statement, I wouldn't put the braces
- I might put it on a separate line if it was annoying
- but if it's just like if(condition) return false; I'd keep it on one line tongue emoticon
- more concerned with the keeping the braces on their own lines colonthree emoticon
- and if(a) if(b) c(); I'd probably put on 3 lines
- Mathew Campbell
- 18/11/2015 20:18
- Mathew Campbell
- Hmm. Take a look at the set of ifs starting on line 16: https://github.com/DarkholmeTenk/Optimistic/blob/master/source/kalah/Agent.java
- So for those, it would be best if I just dropped the braces.
- Now imagine that instead of one statement per if, I had a pair of statements. For a large block of branching code like that would it be better to stick with the js style braces or still go with allman?
- My personal feelings are that something like that is a case where keeping the braces on a seperate line will lead to the code getting less readable as it spreads (depending on the number of branches) across several pages. It's a case where I think the more compact form is easier to scan.
- Opinions?
- Shane Booth
- 18/11/2015 20:23
- Shane Booth
- I see your point tongue emoticon
- Shane Booth
- 18/11/2015 20:28
- Shane Booth
- well, there's no need to be uber strict, I'd say try to stick to allman unless it reduces readability?
- Mathew Campbell
- 18/11/2015 20:29
- Mathew Campbell
- (I was half way through saying that in a more drawn out way :P)
- I think a good strategy is to leave the final say up to the programmer. After all, as you write code, you're in a good position to decide what the least confusing way to lay everything out is. So no hard rules.
- If a second programmer comes along and ends up being confused by a particular layout, then they should change it and notify the original author as to what the problem was so that they learn how to improve their readability.
- I'll give the allman style a good run.
- Mathew Campbell
- 18/11/2015 20:30
- Mathew Campbell
- The important thing is that we actually do take the time to think about readability and do some formatting. I don't think that'll be a problem.
- (though in the past with some people it was :|)
- Shane Booth
- 18/11/2015 20:31
- Shane Booth
- smile emoticon yeah, at least we're thinking about it, suggests we care enough that we'll try to make it readable
- Mathew Campbell
- 18/11/2015 20:32
- Mathew Campbell
- I certainly care. I'm trying very hard not to go off on a rant about how readability to others is really damn important.
- Don't get me excited!
- Shane Booth
- 18/11/2015 20:32
- Shane Booth
- lol, I'll try smile emoticon
- Mathew Campbell
- 18/11/2015 20:35
- Mathew Campbell
- Well, I think this is a group project I will enjoy. After all, I'm already enjoying it. It's been a long time since I did any vanilla software development like this, and certainly in a team. Pretty fun.
- 19 November
- Matthew Todd
- 19/11/2015 12:33
- Matthew Todd
- ok this is my git thing ( i think it's what you want) https://github.com/Tt-dude909
- so whats the repository for the project??
- Shane Booth
- 19/11/2015 12:39
- Shane Booth
- Github.com/DarkholmeTenk/Optimistic
- Matthew Todd
- 19/11/2015 12:39
- Matthew Todd
- thank you tried running through past ones and just found a set of links that sent me no where haha
- Shane Booth
- 19/11/2015 12:40
- Shane Booth
- Nice tongue emoticon
- The build system is at darkcraft.io:8080 but you need to login to see it
- Matthew Todd
- 19/11/2015 12:44
- Matthew Todd
- so i just need to clone project on laptop correct??
- Shane Booth
- 19/11/2015 12:44
- Shane Booth
- Yep, but you'll need GitHub private keys sorted out unless you're using githubs client
- Looks like you forked the repo rather than clone it?
- Matthew Todd
- 19/11/2015 12:48
- Matthew Todd
- yeah i know .... wrong fucking button
- hold on i'll delete it
- Shane Booth
- 19/11/2015 12:48
- Shane Booth
- Lul colonthree emoticon
- Matthew Todd
- 19/11/2015 12:54
- Matthew Todd
- there we go think i've got it. where it is on my computer though is another story ...
- found it alls good
- Shane Booth
- 19/11/2015 15:18
- Shane Booth
- gdgd smile emoticon
- 19 November
- Shane Booth
- 19/11/2015 18:35
- Shane Booth
- so, I was thinking we should treat the game engine as just another player
- Mathew Campbell
- 19/11/2015 18:41
- Mathew Campbell
- My first impression is that it would be confusing as the game engine is certainly not a player. Please explain your suggestion.
- Shane Booth
- 19/11/2015 18:42
- Shane Booth
- but from our point of view the game engine takes moves from the other thing and makes moves
- Mathew Campbell
- 19/11/2015 18:46
- Mathew Campbell
- The game engine doesn't make any moves, it just informs us of moves. It can be viewed as a referee who has the final say on the state of the game.
- Shane Booth
- 19/11/2015 18:46
- Shane Booth
- it could be, but since it's also telling us what moves have been made and needs telling of what moves have been made, it could also be represented as a player
- so I did this https://github.com/DarkholmeTenk/Optimistic/blob/master/source/kalah/program/TwoAgentGame.java and if one of the AbstractAgents is the game engine, that simplifies our logic, I think
- Mathew Campbell
- 19/11/2015 18:59
- Mathew Campbell
- The logic for the flow of the game should really be left to the controller. The agent's job is to make decisions when it is asked for a move, so it shouldn't be managing the game. So the logic in play() would be moved to the controller, and it would request a move from our agent and then pass that out of our system.
- As for representing the game engine as a player: I think what you mean is representing the game engine as another agent (the Player does nothing, it is just a simple object for the model). If we move the game flow logic to the controller, I don't see a clear benefit from adding an extra class between the controller and the speaker/listener.
- Shane Booth
- 19/11/2015 19:00
- Shane Booth
- yeah, by player I mean agent tongue emoticon
- Mathew Campbell
- 19/11/2015 19:05
- Mathew Campbell
- I'm afraid I won't get any AI done tonight. I've been tired all day. I'll still be around for questions, but I'm going to go to bed in a couple of hours and do some work when I'm better rested.
- I think we shouldn't worry too much about perfecting the design right now. We can spend a moment tomorrow discussing how best to refactor everything over the next week. At the very least, I'd like to draw a diagram and see if my understanding matches everyone else's.
- Shane Booth
- 19/11/2015 19:06
- Shane Booth
- yeah, we meeting at 1 in the msc labs?
- Mathew Campbell
- 19/11/2015 19:08
- Mathew Campbell
- Yeah, I'll be there the hour before the lab. I don't know if Toddy will, but we should all be there by the time the lab starts.
- Shane Booth
- 19/11/2015 19:17
- Shane Booth
- k, I added a simple monte carlo thingum; the test is just to play 10 games against the random agent and if it loses a game, mark the test as failed
- Mathew Campbell
- 19/11/2015 19:48
- Mathew Campbell
- What if by chance the random agent wins? That doesn't necessarily mean there is a problem with the better agent.
- Shane Booth
- 19/11/2015 19:49
- Shane Booth
- it's possible, but I've run a few hundred tests and it hasn't happened yet
- upping to 10000 for one run colonthree emoticon
- the fact it's still going suggests it isn't going to lose imo tongue emoticon
- yeah, I know, but if the chance is less than 1/10000, I'm not too fussed tongue emoticon
- can you think of any other way to unit test it? unless we just had an agent that always picked the first move or sometihing
- Mathew Campbell
- 19/11/2015 19:57
- Mathew Campbell
- I'll have to think about that test a bit more. I'd never considered testing something that relies on probabilities and could give a false positive.
- Even an agent that picks the first move might beat it. I don't know what the full game tree looks like.
- My gut feeling is that the tests shouldn't be making assertions about the performance of a given algorithm, only that the algorithm makes the choices you'd expect it to: You'd play it against a series of known moves, and if it made unexpected moves you'd know there was a problem.
- Mathew Campbell
- 19/11/2015 19:58
- Mathew Campbell
- Let me correct myself: I don't think a test should be kept if it's known that it could give a false positive. I don't see a problem with tests of performance if those tests are reliable.
- Shane Booth
- 19/11/2015 19:59
- Shane Booth
- but what about algorithms with exploration?
- can't guarantee paths with that tongue emoticon
- Mathew Campbell
- 19/11/2015 20:04
- Mathew Campbell
- Couldn't you iron out any of the non-deterministic parts of the code (e.g. using the same seed for a PRNG) and test the deterministic parts. I'm happy to trust that any built in random number generators are reliable.
- Shane Booth
- 19/11/2015 20:05
- Shane Booth
- yeah, that could work, I guess tongue emoticon
- Mathew Campbell
- 19/11/2015 20:05
- Mathew Campbell
- I just wonder how people test PRNGs!
- 19 November
- Shane Booth
- 19/11/2015 23:06
- Shane Booth
- 20 November
- Matthew Todd
- 20/11/2015 11:17
- Matthew Todd
- Just read through chat. I'm in lecture before lab but will be in lab. Gonna be leaving right after so I miss rush hour on trains
- 23 November
- Shane Booth
- 23/11/2015 09:42
- Shane Booth
- we meeting up before the scheduled workshop?
- Mathew Campbell
- 23/11/2015 09:51
- Mathew Campbell
- Aye. Collab right?
- Shane Booth
- 23/11/2015 09:52
- Shane Booth
- shure, what time?
- Mathew Campbell
- 23/11/2015 10:26
- Mathew Campbell
- 1pm wasn't it?
- Matthew Todd
- 23/11/2015 10:28
- Matthew Todd
- Wont make it in today. Got burn on finger and don't want to risk infection. Should be in tomoz I'd you want to go over everything in person with me
- Shane Booth
- 23/11/2015 12:13
- Shane Booth
- since that's all I have today, would it be ok if we rearrange to 1/2 tomorrow?
- Mathew Campbell
- 23/11/2015 12:21
- Mathew Campbell
- 1 is a graphics lecture and 2 is a supervisor meeting for me. I'm happy to do some other time tomorrow.
- It doesn't seem worthwhile meeting today.
- Shane Booth
- 23/11/2015 12:25
- Shane Booth
- well I'm free until 3:30ish tomorrow
- meeting at 2:30/3 saves me a bit of a walk since I need to head to manchester anyways
- Mathew Campbell
- 23/11/2015 12:28
- Mathew Campbell
- I'm happy with that. The length of the supervisor meetings vary, but I can certainly exit by 3. Should have a little more to talk about by then too, since I'm going to make those changes to the controller shortly.
- 23 November
- Mathew Campbell
- 23/11/2015 17:29
- Mathew Campbell
- The changes I'll need to make to get my part done are quite extensive. More than I thought. It may take several days. I should get a little bit of code pushed tonight.
- Shane Booth
- 23/11/2015 17:47
- Shane Booth
- fair enough
- we could do with someone taking a look at what needs to be done for friday
- Mathew Campbell
- 23/11/2015 17:48
- Mathew Campbell
- There's a small form to fill in: https://moodle.cs.man.ac.uk/mod/resource/view.php?id=15510
- We can probably do that tomorrow. Won't take too long.
- Shane Booth
- 23/11/2015 19:20
- Shane Booth
- 24 November
- Mathew Campbell
- 24/11/2015 10:42
- Mathew Campbell
- Where do you want to meet today? MSc lab?
- Matthew Todd
- 24/11/2015 10:50
- Matthew Todd
- Fine with me
- Mathew Campbell
- 24/11/2015 10:51
- Mathew Campbell
- Such a trek colonthree emoticon
- Matthew Todd
- 24/11/2015 10:56
- Matthew Todd
- From our weekly meet. I know a bloody Nathan
- ... Ignore that entire thing
- Shane Booth
- 24/11/2015 10:56
- Shane Booth
- bloody Nathans
- Mathew Campbell
- 24/11/2015 10:56
- Mathew Campbell
- That's what you get for murdering people.
- Matthew Todd
- 24/11/2015 10:57
- Matthew Todd
- Shush. No ones meant to know about it yet
- 27 November
- Mathew Campbell
- 27/11/2015 11:49
- Mathew Campbell
- I'm already in university. If anyone wants to speak to me before the lab, I'll be in the MSc lab.
- 27 November
- Shane Booth
- 27/11/2015 17:19
- Shane Booth
- Shane Booth
- 27/11/2015 17:19
- Shane Booth
- Whoops, did a toddy
- Matthew Todd
- 27/11/2015 17:20
- Matthew Todd
- Holy cow that's not good
- Shane Booth
- 27/11/2015 17:22
- Shane Booth
- Indeed, oil splash, got ice on it
- Matthew Todd
- 27/11/2015 17:24
- Matthew Todd
- Running cold water or submerged would be best
- Shane Booth
- 27/11/2015 17:24
- Shane Booth
- Already done that for 10m
- Got a wet kitchen roll around then ice then more kitchen roll
- Matthew Todd
- 27/11/2015 17:28
- Matthew Todd
- Ah then nevermind grin emoticon
- Mathew Campbell
- 27/11/2015 17:29
- Mathew Campbell
- So that's all of us with some form of burn then. Must be a cursed group!
- Shane Booth
- 27/11/2015 17:29
- Shane Booth
- 27 November
- You named the conversation: The Optimistic Burn Ward.
- 30 November
- Mathew Campbell
- 30/11/2015 10:23
- Mathew Campbell
- Remember that we're meeting at 1300 today. I'll be in the MSc lab at least until the AI lab.
- Shane Booth
- 30/11/2015 11:56
- Shane Booth
- don't think I'm gonna be able to make it, feel like shit and my hand is killing tongue emoticon
- Matthew Todd
- 30/11/2015 11:56
- Matthew Todd
- I'm in now
- Mathew Campbell
- 30/11/2015 12:42
- Mathew Campbell
- That's fine. That looked like a pretty nasty burn.
- I'm probably not going to be free for AI until Thursday. I'll get Toddy up to speed. Otherwise, it's pretty clear what we need doinganyway.
- 4 December
- Mathew Campbell
- 04/12/2015 12:03
- Mathew Campbell
- I'll be in the MSc lab by 13:00 as usual. See you all by 14:00.
- I've finally had time to merge my work back into dev. I still need to test stuff and I'll have to update main to handle the different agent types being read from the command line args.
- Shane Booth
- 04/12/2015 12:05
- Shane Booth
- In London this weekend, mentioned it last time and the the time before I think tongue emoticon
- Sorry guys, I'll make sure to catch up when I get back!
- Mathew Campbell
- 04/12/2015 12:06
- Mathew Campbell
- Will you be in today, or are you packing up now?
- Shane Booth
- 04/12/2015 12:06
- Shane Booth
- I'm on a megabus rn
- Mathew Campbell
- 04/12/2015 12:08
- Mathew Campbell
- Alright. Have a good weekend. We'll figure things out. Might even have a submit-able build by the end of today.
- Shane Booth
- 04/12/2015 12:09
- Shane Booth
- Thanks! Good luck smile emoticon
- Mathew Campbell
- 04/12/2015 12:09
- Mathew Campbell
- kiki emoticon
- Matthew Todd
- 04/12/2015 12:10
- Matthew Todd
- 6 December
- Matthew Todd
- 06/12/2015 16:13
- Matthew Todd
- for testing the with the speaker what should I supply the socket value with ??
- nv doing it the wrong way grin emoticon
- never mind*
- Matthew Todd
- 06/12/2015 16:52
- Matthew Todd
- but can you give me an example of a CHAGNE;SWAP; message please
- Matthew Todd
- 06/12/2015 16:58
- Matthew Todd
- kk added a test file that tests the EngineMessageFactory class
- Mathew Campbell
- 06/12/2015 17:09
- Mathew Campbell
- Example:
- "CHANGE;SWAP;7,7,7,7,7,7,7,0,7,7,7,7,7,7,7,0;YOU\n"
- Matthew Todd
- 06/12/2015 17:09
- Matthew Todd
- can you quickly do one for MOVE as well please thanks. should be that last thing on the tests
- Mathew Campbell
- 06/12/2015 17:10
- Mathew Campbell
- Have you read protocol.txt?
- https://github.com/DarkholmeTenk/Optimistic/blob/master/provided/docs/protocol.txt
- Matthew Todd
- 06/12/2015 17:10
- Matthew Todd
- no I've done it all through the classes grin emoticon
- Mathew Campbell
- 06/12/2015 17:14
- Mathew Campbell
- CHANGE;MOVE;0,8,8,8,8,8,8,1,7,7,7,7,7,7,7,0;YOU\n
- Matthew Todd
- 06/12/2015 17:22
- Matthew Todd
- thank you grin emoticon grin emoticon
- 7 December
- Mathew Campbell
- 07/12/2015 13:01
- Mathew Campbell
- If anyone needs anything, I'll be in the MSc lab until after the AI slot being a zombie.
- 10 December
- Mathew Campbell
- 10/12/2015 22:04
- Mathew Campbell
- Advanced warning: I might be working on graphics until very close to the deadline. After that deadline all I have is my Agile coursework and AI that have hard deadlines, so after that point you pretty much have my full attention for AI.
- We have a presentation to create for Monday. I'll hopefully catch you both in uni to briefly discuss that. We should edit it online (either through Google Drive or some other service with realtime editing that everyone is happy with).
- I'm going to spend this Sunday doing any outstanding AI work so we have a project that definitely builds and definitely plays a game properly for the final week. That's assuming I don't get that done on Friday.
- 11 December
- Matthew Todd
- 11/12/2015 10:28
- Matthew Todd
- Not gonna ma ale it in for 1 today. My trains been cancelled so gonna be an hour late
- Make*
- Shane Booth
- 11/12/2015 12:58
- Shane Booth
- Well I'm in the msc lab for whenever tongue emoticon
- Matthew Todd
- 11/12/2015 12:59
- Matthew Todd
- I'll head straight there then. I'm heading to Salford station now
- Should be there for half past
- Mathew Campbell
- 11/12/2015 13:43
- Mathew Campbell
- I'm not going to make it in. Once this graphics is done I need to sleep for a good day.
- Sunday
- Shane Booth
- 13/12/2015 19:56
- Shane Booth
- sooo..... what's happening for tomorrow?
- Mathew Campbell
- 13/12/2015 20:39
- Mathew Campbell
- I'm not entirely sure. I'm operating on very little sleep right now. Finally got an opportunity to go to sleep and someone decides to do some maintenance work in my building on a Sunday ¬_¬ Give me a moment to wake up.
- Shane Booth
- 13/12/2015 20:42
- Shane Booth
- fun times
- Mathew Campbell
- 13/12/2015 20:43
- Mathew Campbell
- Do you have any idea when our presentation slot is?
- Shane Booth
- 13/12/2015 20:45
- Shane Booth
- no, other than tomorrow
- Matthew Todd
- 13/12/2015 20:45
- Matthew Todd
- not heard anything about anything
- Shane Booth
- 13/12/2015 20:46
- Shane Booth
- like emoticon
- Mathew Campbell
- 13/12/2015 20:47
- Mathew Campbell
- https://moodle.cs.man.ac.uk/mod/forum/discuss.php?d=28826
- Monday 2-3
- Hidden away in the forums...
- :|
- Pass me an email address each and I'll set up a presentation we can all edit on Google Drive.
- Matthew Todd
- 13/12/2015 20:50
- Matthew Todd
- the-todd-matthew@live.co.uk
- oops
- Shane Booth
- 13/12/2015 20:50
- Shane Booth
- shaneybooth@gmail.com
- Matthew Todd
- 13/12/2015 20:50
- Matthew Todd
- the-todd-family-matthew@live.co.uk
- Shane Booth
- 13/12/2015 20:54
- Shane Booth
- as a point, can our thing interact with the game engine yet?
- Mathew Campbell
- 13/12/2015 20:55
- Mathew Campbell
- No. That's what I was hoping to work on fixing tonight. This is going to be a long last week.
- Shane Booth
- 13/12/2015 20:55
- Shane Booth
- what needs doing?
- just the main method?
- Mathew Campbell
- 13/12/2015 20:57
- Mathew Campbell
- I totally forgot to parse the move messages. Also, I need to properly test and fix any problems with the interface.
- I'm going to work on that for a bit. Hopefully I'll have enough time to get my part of the presentation done and finish that.
- Shane Booth
- 13/12/2015 21:03
- Shane Booth
- Fair enough. Toddy, could you do your slides and some frameworks for us to fill in?
- Mathew Campbell
- 13/12/2015 21:05
- Mathew Campbell
- Requirements:
- Apparently the presentation is meant to be 15 minutes long: 10 minutes for slides, 5 for questions. So that's maybe 2-4 slides per person. I don't know why information about the presentations is spread across so many different pages.
- Content expected is described rather vaguely here: https://moodle.cs.man.ac.uk/mod/assignment/view.php?id=15513
- Shane Booth
- 13/12/2015 21:08
- Shane Booth
- I can go into a bit long rant about optimisations and weak/soft references and transientivity and stuff, so we should be good for my slides +- a few
- Mathew Campbell
- 13/12/2015 21:25
- Mathew Campbell
- Toddy, I'm having trouble with the tests you wrote. They do not compile.
- Matthew Todd
- 13/12/2015 21:28
- Matthew Todd
- cry emoticon oh
- Mathew Campbell
- 13/12/2015 21:28
- Mathew Campbell
- Does this surprise you?
- Matthew Todd
- 13/12/2015 21:29
- Matthew Todd
- not really haha whats it saying ?
- Mathew Campbell
- 13/12/2015 21:30
- Mathew Campbell
- Build your code and you'll find out.
- Matthew Todd
- 13/12/2015 21:32
- Matthew Todd
- how do i do that on this system again??
- Mathew Campbell
- 13/12/2015 21:36
- Mathew Campbell
- I am speechless. Let me go get some coffee.
- Matthew Todd
- 13/12/2015 21:39
- Matthew Todd
- when I run it on my laptop it just doesnt recognize the imports
- Shane Booth
- 13/12/2015 21:40
- Shane Booth
- presumably the junit ones? you need to add the junit jar to your classpath tongue emoticon
- Mathew Campbell
- 13/12/2015 21:41
- Mathew Campbell
- When did you learn this was the case?
- Shane Booth
- 13/12/2015 21:41
- Shane Booth
- it's always been the case, eclipse and stuff usually do that for you though tongue emoticon
- Mathew Campbell
- 13/12/2015 21:42
- Mathew Campbell
- I mean Toddy.
- Matthew Todd
- 13/12/2015 21:51
- Matthew Todd
- kk try again, don't get any syntax errors now but can't tell if works and laptop has decided to not want to do anything today
- Mathew Campbell
- 13/12/2015 21:54
- Mathew Campbell
- git push? Nothing has changed on the repo.
- Matthew Todd
- 13/12/2015 21:55
- Matthew Todd
- kk i've sync it now so should be there
- Mathew Campbell
- 13/12/2015 22:02
- Mathew Campbell
- It does not compile.
- Shane Booth
- 13/12/2015 22:02
- Shane Booth
- wut is the branch?
- Mathew Campbell
- 13/12/2015 22:02
- Mathew Campbell
- Client.Todd
- Shane Booth
- 13/12/2015 22:04
- Shane Booth
- just lots of missing imports and a duplicate method tongue emoticon
- Matthew Todd
- 13/12/2015 22:05
- Matthew Todd
- just seen the method, and not sure whyimprts arn't working
- Mathew Campbell
- 13/12/2015 22:08
- Mathew Campbell
- They're not working because they aren't there. The compiler cannot find StartMessage, and there is no import for the StartMessage class. This can't have compiled on your machine unless you are compiling different files to the ones being committed.
- So back to my original question: When did you realise that nothing was compiling?
- Matthew Todd
- 13/12/2015 22:10
- Matthew Todd
- today really
- Mathew Campbell
- 13/12/2015 22:11
- Mathew Campbell
- So today is the first time you attempted to build?
- Matthew Todd
- 13/12/2015 22:13
- Matthew Todd
- yes
- well no, i tried a while ago but was unable to get it compiling properly but that was something slightly different
- Shane Booth
- 13/12/2015 22:20
- Shane Booth
- to be fair, the test can be fixed with 2 imports and adding a single letter to a method tongue emoticon
- 3 imports*
- Matthew Todd
- 13/12/2015 22:21
- Matthew Todd
- which imports?? laptop is having a field day messing with me tonight. cry emoticon
- Mathew Campbell
- 13/12/2015 22:34
- Mathew Campbell
- The ease with which this can be fixed isn't what concerns me.
- Toddy: Why are you only learning how to build now? You've repeatedly stated that you will read through the code, but here we are about to enter our final week and you ask questions about how to build the project. Something that is in the README file: The very first file you are likely to read. This is highly unusual to me.
- Explain your situation and reasoning.
- Matthew Todd
- 13/12/2015 22:46
- Matthew Todd
- honestly, I tried at the start when I got the branch on my computer, but couldn't get it to run so i decided to leave it since it was late.
- Matthew Todd
- 13/12/2015 22:51
- Matthew Todd
- I have asked before if you needed me to do anything on the project but was told not to so I left it, after a while I forgot how to compile it when you first told me and was going to ask when you wanted me to do something. When you asked me to do the tests I had been doing several different things and decided that I'll write it up and tell you I've not compiled it (which I did). My laptop is a mess of a system and doesn't do anything simply, making things that others can do easily a nightmare for me to set up.
- Matthew Todd
- 13/12/2015 22:56
- Matthew Todd
- on top of that I've had to keep up with everything else around me, the journey to uni which takes a chuck out of my day and the various things I do at home. And not too mention with the weather recently and Saturday sport I do, I'm not exactly feeling very well. I'm sorry I've not done anything with the project and I have gone over the code, but was quickly forgotten over the other things I've had to do in the last 2 weeks. I have tried to include myself numerous times with no avail and it has bugged me.
- Mathew Campbell
- 14/12/2015 00:30
- Mathew Campbell
- There are many problems with what you have just posted (for example, the false impression that you were not asked to do anything), but for the sake of communicating the most important details I am going to only cover the most critical ones.
- > I'm not exactly feeling very well
- Neither do I. I have not slept properly for my entire time at university. I have virtually no free time apart from the very end of Saturday. I have no issue with the fact that you have limited time. I do not care whether you do any work on this project. If you have higher priorities for your limited time, then I am in no position to demand you work on a project when your contribution will not affect my final mark. The project could legitimately be done with two people. The marks are scaled by contribution. Your time belongs to you. Use it as you see fit.
- What bothers me is a complete breakdown of communications. If you tell me you have no time, then I can organise my time properly. If I am constantly left with the impression that you are working on something, I will spend my time trying to ensure you are kept up to speed on things you are not in a position to use. That is a waste of my time.
- *You are wasting my time.* How would you like it if I wasted your limited time?
- You cannot sit around failing to notify anyone of the numerous problems you have experienced. Not able to build the project within a couple of weeks? Problem. Don't think you have any work to do? Why not send a message that takes literally seconds to type and milliseconds to arrive? Laptop is a piece of shit and you're having trouble getting everything working? Bring it in and ask a teammate to help you. You can even get hardware on loan from the university if you really need it.
- Leaving the set up of your development environment this late, to me, is insane. Even if you believe you have been assigned no tasks, you can always try to put yourself in a position to contribute in the future. If you don't even have time for this set up, then clearly you have no time for the rest of the project. This is important information that is needed when making decisions as to who does what.
- My advice:
- 1) Determine how much time you really have. Draw a timetable. Fill in the hours you cannot work. Fill in the hours you know you're too tired to work in. Note down anything else you know will take up your free time.
- Look at what is left and evaluate what you really have time for. Not enough time for the AI project? Can't be done? Fine. But you need to know that and accept how much time you have instead of stressing out over it and telling me you're going to do stuff you don't actually have the time to do.
- If you tell me you only have ten minutes a week, at least I can work with that information. There are jobs that take ten minutes. If you don't tell me that, I might spend more than ten minutes explaining stuff to you that you will never have time to use. I'd rather have my ten minutes back and give you something you can realistically fit into your available time. That way more gets done and I don't feel disappointed.
- 2) Communicate. Don't know what you're doing? Don't know how to get something working on your laptop. Ask! Working effectively in a team relies on accurate information being passed around. If you had already been doing this effectively, literally every problem popping up now would have been detected in week one or two.
- If you requested help, I could have walked you through a great deal of set up in very little time and you'd be in a position to commit code whenever you feel like it. Not left with a painful set up time forever blocking your progress.
- Shane Booth
- 14/12/2015 01:25
- Shane Booth
- Slides doneish
- well, mine at least
- Mathew Campbell
- 14/12/2015 01:52
- Mathew Campbell
- Great. I might sleep for a few hours. Not able to concentrate right now. Need to take a moment to organise my life.
- Shane Booth
- 14/12/2015 01:52
- Shane Booth
- Monday
- Mathew Campbell
- 14/12/2015 11:22
- Mathew Campbell
- I'll be in the third year lab from 12:00 onwards. Got graphics to get marked just before AI.
- Partially done with the slides.
- Shane Booth
- 14/12/2015 11:55
- Shane Booth
- @Toddy you should add some slides
- @Mathew, split your game engine section up, slide 7 is part of the agent category, there should be a short mention on how the game engine is being treated like another agent and the gamedriver stuff should be on its own
- Mathew Campbell
- 14/12/2015 12:13
- Mathew Campbell
- Sure, I'll do that.
- Shane Booth
- 14/12/2015 12:13
- Shane Booth
- Shane Booth
- 14/12/2015 12:16
- Shane Booth
- atm, we should go over 10m, I think, which is better than being under
- Mathew Campbell
- 14/12/2015 12:20
- Mathew Campbell
- We can probably cut some. I don't think they will care about the details too much. For example, the fact that we have the GameDriver and why is interesting, or that we can choose which agents to play from the command line, but how we do that (with an AgentFactory) is probably not something we need to explain.
- Matthew Todd
- 14/12/2015 12:21
- Matthew Todd
- Guys i ow
- wont be in today, hav
- thrown up this morning and can't stop shaking, unfortunatly
- Mathew Campbell
- 14/12/2015 12:22
- Mathew Campbell
- That's fine. Take some time off and relax.
- Shane Booth
- 14/12/2015 12:23
- Shane Booth
- Airplane panic attack
- A woman has a panic attack in the movie Airplane, and there's only one way to calm her down.
- youtube.com
- Shane Booth
- 14/12/2015 12:23
- Shane Booth
- but seriously, get well soon
- Matthew Todd
- 14/12/2015 12:23
- Matthew Todd
- sorry again guys, I'll make it up to you guys next semester
- Shane Booth
- 14/12/2015 12:38
- Shane Booth
- K, I'll cover my slides, but could you cover the what we're still working on section, @Mathew?
- Mathew Campbell
- 14/12/2015 12:40
- Mathew Campbell
- I can't really say much about improving the agents.
- Shane Booth
- 14/12/2015 12:41
- Shane Booth
- kk, can you do the misc bit then, maybe add a few extra things to it?
- Mathew Campbell
- 14/12/2015 12:41
- Mathew Campbell
- Yup, already on it wink emoticon
- When will you be in uni?
- Shane Booth
- 14/12/2015 12:42
- Shane Booth
- aiming for 1:40-1:50ish
- since we've pretty much got our own slides, shouldn't need much coordination
- k, so roles allocation: I did the model and some work on the agents, you did some work on the agents and the integration with the game engine and toddy did the unit tests and stuff?
- Mathew Campbell
- 14/12/2015 12:44
- Mathew Campbell
- Yup, that's the way we split it.
- Once you're in, we can streamline the presentation a little.
- Shane Booth
- 14/12/2015 12:52
- Shane Booth
- Mathew Campbell
- 14/12/2015 13:05
- Mathew Campbell
- I've restructured and formatted some stuff, so it's easier to read.
- Shane Booth
- 14/12/2015 13:05
- Shane Booth
- Mathew Campbell
- 14/12/2015 13:15
- Mathew Campbell
- I've just realised, my graphics marking is scheduled for 13:44, so we might only get a few minutes to streamline things before AI.
- Shane Booth
- 14/12/2015 13:20
- Shane Booth
- it should be fine smile emoticon
- Wednesday
- Mathew Campbell
- 16/12/2015 14:33
- Mathew Campbell
- Sleep heavily disrupted by random building. Doing my AI stuff now.
- Mathew Campbell
- 16/12/2015 14:45
- Mathew Campbell
- Also, I've emailed Jon about accessing the tournament machine so we can confirm it works when I'm done.
- Shane Booth
- 16/12/2015 16:15
- Shane Booth
- Mathew Campbell
- 16/12/2015 18:28
- Mathew Campbell
- The interface is now working on dev. However, we seem to have a bug in our model somewhere as playing with the provided game engine leads to an illegal move:
- https://github.com/DarkholmeTenk/Optimistic/issues/33
- I really wish the provided game engine would tell us what move our agent tried to make ¬_¬
- Getting food. Back later.
- Shane Booth
- 16/12/2015 18:58
- Shane Booth
- Shane Booth
- 16/12/2015 19:42
- Shane Booth
- working on my project, any idea what's causing the illegal move?
- also, does it happen if you switch the players around?
- Mathew Campbell
- 16/12/2015 19:45
- Mathew Campbell
- No idea. Swapping the order means that no moves are made at all...
- So you're up to date on the dev branch and there are no problems?
- Oh, sorry, I understand now.
- Derp.
- Shane Booth
- 16/12/2015 20:02
- Shane Booth
- any luck?
- Mathew Campbell
- 16/12/2015 20:04
- Mathew Campbell
- I found one bug, but now sometimes our agent appears to crash.
- Shane Booth
- 16/12/2015 20:04
- Shane Booth
- if it works as player 1, I suspect the house numbers need flipping around for player 2
- what's the crash?
- Mathew Campbell
- 16/12/2015 20:06
- Mathew Campbell
- Swapping around the players leads our agent to lose connection part way through the game (which is pretty much guaranteed to be an exception being thrown).
- The other way around, I'm still getting illegal moves.
- Shane Booth
- 16/12/2015 20:07
- Shane Booth
- kk
- Shane Booth
- 16/12/2015 20:14
- Shane Booth
- I'll write a thing to create a log tongue emoticon
- Mathew Campbell
- 16/12/2015 20:15
- Mathew Campbell
- Ace.
- Shane Booth
- 16/12/2015 20:23
- Shane Booth
- try build 30 once it's built and use the -v switch to turn on verbose logging
- stderr should redirect to the log file and so should moves
- so we should be able to see the exceptions smile emoticon
- Mathew Campbell
- 16/12/2015 20:33
- Mathew Campbell
- I'm very confused. The log says the last move was 4, which was illegal. Here's the board state:
- 15 -- 0 14 15 1 2 3 1
- 0 0 0 4 2 2 15 -- 24
- Surely no matter how you number things, the move is legal :S
- Shane Booth
- 16/12/2015 20:34
- Shane Booth
- is this the south player?
- if it's on the bottom and going r->l then it's a 0
- Mathew Campbell
- 16/12/2015 20:35
- Mathew Campbell
- Hole numbering starts at 1.
- ^ Accoridng to protocol.txt
- *according
- And hole numbering starts furthest from the well.
- So this really baffles me.
- Shane Booth
- 16/12/2015 20:39
- Shane Booth
- ok, changed some stuff
- outputs board state internally then the action itself, also added a flush to the speaker class
- Mathew Campbell
- 16/12/2015 21:59
- Mathew Campbell
- I've made the output format more similar to the game engine's format so it's easier to compare them.
- How are swaps handled by our system?
- Shane Booth
- 16/12/2015 22:00
- Shane Booth
- in what way?
- Mathew Campbell
- 16/12/2015 22:00
- Mathew Campbell
- Do the players stay the same and the board is flipped, or do the players change, or something else?
- Shane Booth
- 16/12/2015 22:02
- Shane Booth
- board is flipped
- is that the invalid action?
- or is it immediately after a flip or something?
- Mathew Campbell
- 16/12/2015 22:03
- Mathew Campbell
- It's not invalid, but the output is quite confusing after a swap. It still breaks even without a swap though. There may be several interacting bugs.
- Shane Booth
- 16/12/2015 22:04
- Shane Booth
- woooh
- Mathew Campbell
- 16/12/2015 22:07
- Mathew Campbell
- Swap seems fine. It's just the fact that we don't have north/south mappings listed that's making it confusing.
- The actual problem seems to be that the moves in our log don't match the game engine's output.
- Shane Booth
- 16/12/2015 22:08
- Shane Booth
- niiiice
- throw one of the log files on pastebin if you could pls
- maybe the corresponding gameengine output too tongue emoticon
- Mathew Campbell
- 16/12/2015 22:11
- Mathew Campbell
- https://gist.github.com/curiousinternals/059488478112dc6cd44d
- Shane Booth
- 16/12/2015 22:14
- Shane Booth
- 3rd move is where we go wrong
- oh, we're missing states
- Mathew Campbell
- 16/12/2015 22:15
- Mathew Campbell
- Missing states?
- Shane Booth
- 16/12/2015 22:16
- Shane Booth
- nevermind
- ok, I think I have an idea of what's happening tongue emoticon
- we count houses from 0, they count from 1
- Mathew Campbell
- 16/12/2015 22:18
- Mathew Campbell
- Yup.
- Shane Booth
- 16/12/2015 22:18
- Shane Booth
- our actions go 2 3 3, theirs go 2 3 4
- Mathew Campbell
- 16/12/2015 22:19
- Mathew Campbell
- I'll check I'm converting them correctly. I was sure I did that.
- Shane Booth
- 16/12/2015 22:19
- Shane Booth
- wait, 2 3 3 4 6 vs 2 3 4 4 1?
- wrong log?
- Mathew Campbell
- 16/12/2015 22:21
- Mathew Campbell
- 2 3 3 4 6? I see 2 3 3 4 4
- And I removed all logs before running this, so this is the only one.
- Shane Booth
- 16/12/2015 22:22
- Shane Booth
- 2 3 3 4 4 6*
- vs 2 3 4 4 1 6 tongue emoticon
- Mathew Campbell
- 16/12/2015 22:24
- Mathew Campbell
- Yeah, that's what confused the heck out of me. It's not consistently off.
- Shane Booth
- 16/12/2015 22:25
- Shane Booth
- pls tell me the game engine outputs all moves both players make and doesn't skip one if they get two moves?
- Mathew Campbell
- 16/12/2015 22:26
- Mathew Campbell
- AFAIK, the provided engine should output all moves.
- I've seen two moves by one side in a row before.
- There are some at the bottom of the log.
- Shane Booth
- 16/12/2015 22:28
- Shane Booth
- kk, just weird that we're getting completely different things out
- throw the output of the game engine where we get the wrong actions into a unit test and make sure we get the right actions
- Mathew Campbell
- 16/12/2015 22:33
- Mathew Campbell
- Doing it.
- Shane Booth
- 16/12/2015 22:33
- Shane Booth
- like emoticon
- Shane Booth
- 16/12/2015 22:44
- Shane Booth
- how'd it go?
- Mathew Campbell
- 16/12/2015 22:47
- Mathew Campbell
- Still working on it.
- Shane Booth
- 16/12/2015 23:29
- Shane Booth
- any luck yet?
- Mathew Campbell
- 16/12/2015 23:30
- Mathew Campbell
- Holy fuck I just worked it out.
- The game engine informs you of all state changes, even your own.
- Shane Booth
- 16/12/2015 23:30
- Shane Booth
- which is why we were seeing double movements
- Mathew Campbell
- 16/12/2015 23:30
- Mathew Campbell
- Yup. I'll fix it and see what happens.
- Shane Booth
- 16/12/2015 23:31
- Shane Booth
- Shane Booth
- 17/12/2015 00:41
- Shane Booth
- do we have success?
- Mathew Campbell
- 17/12/2015 00:44
- Mathew Campbell
- Not yet. The changes necessary because of this retarded protocol are painfully complex.
- Shane Booth
- 17/12/2015 00:44
- Shane Booth
- oh dear, I can probably help tomorrow
- maybe
- Mathew Campbell
- 17/12/2015 00:45
- Mathew Campbell
- Hopefully it won't take much longer.
- The moves appear to be being read correctly, however there is still an illegal move being made. One moment.
- Also, it now freezes after a swap for some reason. Yay. More bugs.
- Shane Booth
- 17/12/2015 00:51
- Shane Booth
- yaaaay
- Mathew Campbell
- 17/12/2015 00:59
- Mathew Campbell
- https://gist.github.com/curiousinternals/6abcd8e43c3be4aff75f
- The board state diverges from what the game engine reports at the marked line
- Shane Booth
- 17/12/2015 01:03
- Shane Booth
- yup, capture rule
- Mathew Campbell
- 17/12/2015 01:06
- Mathew Campbell
- I'm logging off in half an hour. Any remaining bugs I'll be free to fix tomorrow evening. Hopefully I can get Agile done in the morning and have Friday free too.
- Shane Booth
- 17/12/2015 01:07
- Shane Booth
- kk
- pub crawl friday, you should come colonthree emoticon
- Mathew Campbell
- 17/12/2015 01:08
- Mathew Campbell
- I'll have to think about it. I might still be busy with things until Sunday :S
- Shane Booth
- 17/12/2015 01:21
- Shane Booth
- k, fixed
- Mathew Campbell
- 17/12/2015 01:26
- Mathew Campbell
- Cool. Now it just seems to freeze sometimes :|
- Shane Booth
- 17/12/2015 01:27
- Shane Booth
- Shane Booth
- 17/12/2015 01:27
- Shane Booth
- nice; which agent?
- and what's the state of the board?
- Mathew Campbell
- 17/12/2015 01:29
- Mathew Campbell
- Jimmy vs random. Hold on, just trying to figure out which log. It might be Jimmy taking his sweet time. I just had a game complete, so that's good news.
- Shane Booth
- 17/12/2015 01:29
- Shane Booth
- random doesn't have any decision making so I don't know why it'd be that
- protocol doesn't say anything about having to send a "we're done" message or anything?
- Mathew Campbell
- 17/12/2015 01:30
- Mathew Campbell
- Nope. The game engine detects a game over and sends its own message to both players.
- Shane Booth
- 17/12/2015 01:30
- Shane Booth
- kk
- Mathew Campbell
- 17/12/2015 01:31
- Mathew Campbell
- It's freezing on Jimmy's turn >:D
- Shane Booth
- 17/12/2015 01:31
- Shane Booth
- lol
- could overwrite the tostring of Player.java to return south if p1, north otherwise tongue emoticon
- Mathew Campbell
- 17/12/2015 01:34
- Mathew Campbell
- I originally did that, but when the provided engine swaps, it changes player one to north and player two to south, so the output becomes confusing.
- Shane Booth
- 17/12/2015 01:34
- Shane Booth
- ah, we rotate the board, they make everyone get up and switch seats?
- Mathew Campbell
- 17/12/2015 01:35
- Mathew Campbell
- Yup.
- So Jimmy is still frozen. I think he's frozen in awe at how amazingly the random agent is playing.
- Shane Booth
- 17/12/2015 01:35
- Shane Booth
- like emoticon
- can our thing be played against itself?
- randomagent should take effectively no time so game should be practically instantaneous
- Mathew Campbell
- 17/12/2015 01:39
- Mathew Campbell
- It freezes sometimes. Very odd.
- Shane Booth
- 17/12/2015 01:39
- Shane Booth
- indeed
- maybe add a log statement when our thing thinks the game is finished
- Mathew Campbell
- 17/12/2015 01:40
- Mathew Campbell
- Aye. I'm leaving it for tomorrow now.
- *Today
- Shane Booth
- 17/12/2015 01:40
- Shane Booth
- fair enough
- Mathew Campbell
- 17/12/2015 01:41
- Mathew Campbell
- I'll be in uni briefly, then eating Pizza, then online at home. Night.
- Shane Booth
- 17/12/2015 01:41
- Shane Booth
- nn
- Thursday
- Matthew Todd
- 17/12/2015 18:45
- Matthew Todd
- Do we need to be in for the ai lecture tomoz guys??
- Shane Booth
- 17/12/2015 20:56
- Shane Booth
- dunno
- is there anything else that needs doing code wise before we submit? can we reliably play games now?
- Matthew Todd
- 17/12/2015 22:56
- Matthew Todd
- i don't exactly know if we need to be there not seen anything saying we do or don't just says a workshop
- Mathew Campbell
- 17/12/2015 23:33
- Mathew Campbell
- > can we reliably play games now?
- No. We freeze sometimes for unknown reasons.
- Sorry I'm on late. Got maybe two hours of broken sleep.
- Shane Booth
- 17/12/2015 23:34
- Shane Booth
- did you add the logging to when our game engine thinks the game is over?
- Mathew Campbell
- 17/12/2015 23:35
- Mathew Campbell
- Nope.
- Shane Booth
- 17/12/2015 23:35
- Shane Booth
- do that, see if our engine thinks that the game has ended before it actually has tongue emoticon
- Mathew Campbell
- 17/12/2015 23:37
- Mathew Campbell
- Sure. Grabbing some food. Final day starts now tongue emoticon I've still got my Agile coursework to work on, so I'll be swapping between the two tasks.
- Shane Booth
- 17/12/2015 23:37
- Shane Booth
- oh dear, I'm probably gonna grab a few hours of sleep soon, when do we need to submit by?
- Mathew Campbell
- 17/12/2015 23:39
- Mathew Campbell
- Five minutes before midnight tomorrow.
- Shane Booth
- 17/12/2015 23:40
- Shane Booth
- ok, that's not too bad, should definitely be fixable before then
- Mathew Campbell
- 17/12/2015 23:42
- Mathew Campbell
- Yeah. I'll be up all of Friday to work on it. Should have Agile out of the way this morning. Should be able to track down the problem.
- Shane Booth
- 17/12/2015 23:42
- Shane Booth
- cool, do we need to be in the workshop tomorrow? I assume not?
- and make sure you get some sleep, much easier to work on it when we're both awake colonthree emoticon
- Mathew Campbell
- 17/12/2015 23:44
- Mathew Campbell
- There's nothing scheduled. Just the final deadline listed. I'll get a little bit of sleep before the random building work restarts.
- Shane Booth
- 17/12/2015 23:45
- Shane Booth
- Mathew Campbell
- 17/12/2015 23:46
- Mathew Campbell
- I'm going to focus on Agile for now. Then I can concentrate fully on AI later. Speak to you later.
- Shane Booth
- 17/12/2015 23:46
- Shane Booth
- sounds like a plan, I'm off to bed, I think
- Today
- Mathew Campbell
- 13:02
- Mathew Campbell
- Based on my progress with Agile, I should be available from 1500 onwards. If you want to get together in Kilburn to work through bugs I'll be there.
- Shane Booth
- 14:12
- Shane Booth
- Mathew Campbell
- 14:13
- Mathew Campbell
- Make that 15:30. Going to be delayed heading in.
- Shane Booth
- 14:13
- Shane Booth
- well I've just got back to mine, I wouldn't worry about heading to kb as long as you can work tongue emoticon
- Mathew Campbell
- 14:16
- Mathew Campbell
- Alright, I'll just stay here. Less time wasted travelling.
- Shane Booth
- 14:38
- Shane Booth
- Shane Booth
- 15:19
- Shane Booth
- I added some new log statements, can you run it with those and put the log on gist or whatever?
- Mathew Campbell
- 15:27
- Mathew Campbell
- So far it's completed one game fine and the connection to the game engine broke down once. Nothing helpful in the log for that. Hopefully I can get it to freeze again soon.
- Shane Booth
- 15:27
- Shane Booth
- Mathew Campbell
- 15:29
- Mathew Campbell
- Frozen. No indication that our program thinks the game is over. Log incoming.
- Shane Booth
- 15:30
- Shane Booth
- Shane Booth
- 15:30
- Shane Booth
- well not like emoticon but you know what I mean
- Mathew Campbell
- 15:31
- Mathew Campbell
- https://gist.github.com/curiousinternals/7c3fc3558b4a04a2a26b
- Shane Booth
- 15:31
- Shane Booth
- which player is our engine?
- our agent*
- Mathew Campbell
- 15:33
- Mathew Campbell
- Player 2
- /North
- Shane Booth
- 15:35
- Shane Booth
- "Turn: PLAYER1" it should still be player 2's turn at that point, right?
- Mathew Campbell
- 15:38
- Mathew Campbell
- The "Turn: PLAYER1" applies to everything below the line until the next turn is declared. Or do you mean something else?
- Shane Booth
- 15:38
- Shane Booth
- hence the freeze, game engine is still waiting for another go from us
- Mathew Campbell
- 15:39
- Mathew Campbell
- The final move by player two captures a stone, which should result in a second move. Is that what you're saying?
- Shane Booth
- 15:40
- Shane Booth
- the final move by player 2 ends in player 2's store, therefore player 2 gets another move
- Mathew Campbell
- 15:41
- Mathew Campbell
- Alright. The problem is probably in the model then, because the turns are read from the board state.
- Shane Booth
- 15:45
- Shane Booth
- yes, I know where the problem is tongue emoticon
- k, should be fixed once this version builds smile emoticon
- Mathew Campbell
- 15:48
- Mathew Campbell
- Cool. Still one known bug (random loss of connection) left. Hopefully the last if we're lucky tongue emoticon
- Also, I remembered that we have the project wiki stuff to fill in. Shouldn't take long to type a summary of what happened after this.
- Mathew Campbell
- 15:51
- Mathew Campbell
- Another freeze almost immediately:
- shell:
- 0 -- 7 7 7 7 7 7 7
- 7 7 7 7 7 7 7 -- 0
- Move: South - 2
- 0 -- 7 7 7 7 7 7 8
- 7 0 8 8 8 8 8 -- 1
- Move: Swap
- Move: North - 1
- 1 -- 8 8 8 8 8 8 0
- 8 0 8 8 8 8 8 -- 1
- output.log:
- Turn: PLAYER1
- 0 -- 7 7 7 7 7 7 7 : PLAYER2
- 7 7 7 7 7 7 7 -- 0 : PLAYER1
- Action: MOVE 2, PLAYER1
- Turn: PLAYER2
- 0 -- 7 7 7 7 7 7 8 : PLAYER2
- 7 0 8 8 8 8 8 -- 1 : PLAYER1
- Action: SWAP, PLAYER2
- Turn: PLAYER1
- 1 -- 8 8 8 8 8 0 7 : PLAYER2
- 8 7 7 7 7 7 7 -- 0 : PLAYER1
- Shane Booth
- 15:55
- Shane Booth
- looks fine to me?
- game engine doesn't print state after a swap, but we haven't received north's move
- Mathew Campbell
- 15:57
- Mathew Campbell
- Does Jimmy just sit around deciding for ages sometimes then?
- Shane Booth
- 15:57
- Shane Booth
- no, our side doesn't seem to have reacted to the move
- we've called swap, jimmy's said 1, we've not got it?
- it's the right player's turn, but if it's frozen there, external agent doesn't seem to have read the "Move: North - 1"
- Mathew Campbell
- 15:59
- Mathew Campbell
- I see. Because the protocol doesn't just tell you which side made a move, I had to try and figure it out in a way that's probably broken in some cases frown emoticon
- Shane Booth
- 16:00
- Shane Booth
- indeed tongue emoticon
- so keep track of the moves our agent makes and you know you can ignore those moves?
- Mathew Campbell
- 16:02
- Mathew Campbell
- See if the logic makes sense to you. ExternalAgent getNextMove(). It should keep track of whose turn the last move resulted in. So if the last turn resulted in YOU as the turn, it drops the message. If it's OPP or there is no previous message then it keeps it.
- Shane Booth
- 16:05
- Shane Booth
- how bout in the opponent action method, after you've sent the message to the gameengine, you receive the next message from the game engine, because it's guaranteed to be your move?
- should be easier than keeping track of whose turn the last move resulted in tongue emoticon
- Mathew Campbell
- 16:09
- Mathew Campbell
- Good point. Much simpler. Changing.
- Shane Booth
- 16:22
- Shane Booth
- any new freezes or does it look solid?
- Mathew Campbell
- 16:25
- Mathew Campbell
- Having issues with the Listener. There's a NullPointerException thrown and I suspect it's because the Listener is trying to read a line before it exists. Modifying to have to wait until a line becomes available.
- Shane Booth
- 16:26
- Shane Booth
- bufferedreader only returns null on end of stream, iirc
- Mathew Campbell
- 16:27
- Mathew Campbell
- Well the stream is ending then.
- Shane Booth
- 16:27
- Shane Booth
- we don't close anything, though?
- Mathew Campbell
- 16:27
- Mathew Campbell
- Nope.
- Shane Booth
- 16:28
- Shane Booth
- so the gameengine is closing it, so end of game?
- Mathew Campbell
- 16:28
- Mathew Campbell
- Turn: PLAYER1
- 6 -- 15 0 3 7 4 13 1 : PLAYER2
- 5 9 15 5 2 7 0 -- 6 : PLAYER1
- Exception in thread "main" java.lang.RuntimeException: java.lang.NullPointerException
- at kalah.program.Optimism.main(Optimism.java:63)
- Caused by: java.lang.NullPointerException
- at kalah.engine.message.engine.EngineMessageFactory.getMessage(EngineMessageFactory.java:14)
- at kalah.engine.Listener.next(Listener.java:21)
- at kalah.agent.ExternalAgent.getNextMove(ExternalAgent.java:49)
- at kalah.engine.GameDriver.step(GameDriver.java:55)
- at kalah.engine.GameDriver.complete(GameDriver.java:75)
- at kalah.program.Optimism.main(Optimism.java:53)
- Mathew Campbell
- 16:28
- Mathew Campbell
- Doesn't look like the game should be ending.
- Shane Booth
- 16:31
- Shane Booth
- yeah, readline on a buffered reader should only return null when the stream closes
- is it reproducable?
- Mathew Campbell
- 16:37
- Mathew Campbell
- Still checking. Even with the simpler method of dropping duplicate messages I'm still getting freezes.
- Mathew Campbell
- 16:38
- Mathew Campbell
- # shell:
- 0 -- 7 7 7 7 7 7 7
- 7 7 7 7 7 7 7 -- 0
- Move: South - 2
- 0 -- 7 7 7 7 7 7 8
- 7 0 8 8 8 8 8 -- 1
- Move: Swap
- Move: North - 1
- 1 -- 8 8 8 8 8 8 0
- 8 0 8 8 8 8 8 -- 1
- # output.log:
- Turn: PLAYER1
- 0 -- 7 7 7 7 7 7 7 : PLAYER2
- 7 7 7 7 7 7 7 -- 0 : PLAYER1
- Action: MOVE 2, PLAYER1
- Turn: PLAYER2
- 0 -- 7 7 7 7 7 7 8 : PLAYER2
- 7 0 8 8 8 8 8 -- 1 : PLAYER1
- Action: SWAP, PLAYER2
- Turn: PLAYER1
- 1 -- 8 8 8 8 8 0 7 : PLAYER2
- 8 7 7 7 7 7 7 -- 0 : PLAYER1
Add Comment
Please, Sign In to add comment