nelfin / othello Goto Github PK
View Code? Open in Web Editor NEWCOMP3130 second group project
COMP3130 second group project
Just noting this idea down.
New learnable feature for a player: state-cut lower bound.
Perform simple static evaluations during minimax and cut out trees where we see a VERY poor state.
ADVANTAGES:
PROBLEMS:
Should the slides be a total bare-bone outline or include some level of
explanation?
Oh, also:
One click per slide or one click per dot point?
Personally I kinda like one click per dot point. Stops people from reading ahead.
Just reminding myself, to fix bugs in 7b0c355
Wikipedia Negamax
Basically uses max(a, b) = -min(-a, -b)
function negamax(node, depth, α, β, color)
if node is a terminal node or depth = 0
return color * the heuristic value of node
else
foreach child of node
val := -negamax(child, depth-1, -β, -α, -color)
{the following if statement constitutes alpha-beta pruning}
if val≥β
return val
if val≥α
α:=val
return α
Where could they go? I'm currently trying to work on simple move ordering to help alpha-beta cutoffs.
Needs minimax and alpha-beta to begin with.
Eclipse + Git is not so bad, but I'm kinda fumbling my way through the integration/folder layout bit.
Minimax seems to be losing more than it should against a random player, about 15-20% loss (minimal draws, win % was around 80%).
A meta player could use lots of different plays to be amazing and awesome at Othello and own everyone in the tournament.
Figured we should get a nice early start on the report as soon as possible.
I volunteer! I'll probably start work on it during the week.
I've seen my minimax lose against a greedy player, when playing first and second. Sometimes it loses so badly that the board doesn't even get filled: the greedy player is able to eliminate all of the minimax player's pieces.
This makes me think that it's playing deliberately badly, but flipping the sign of the values returned didn't seem to have any effect. I'll try implementing it again, but I'm on my third attempt now. I think I'll have to modify the server to make the board smaller and do it by hand.
Another random thought that probably is relevant to no-one.
Was wondering how hard-coded features need to be; and considering the possibility of
a Feature Markup Language (FML). Seems like it would be a lot of pointless work though... really only wanna do it for the acronym.
Because we're supposedly professional and whatnot.
This could be done with SGF
Sorry for being MIA so long; but SML finally finished!
I've spent today having a browse through all the code and I gotta say it's looking mighty fine.
Is there anything important left to do before test runs tomorrow?
I could look at doing some code cleaning? (we're supposed to email code to Stephen before the meeting)
A priority list for next tuesday. Please comment and add stuff.
MUST HAVERS:
NICE TO HAVERS:
I can't figure out how to compile the code to steal all your sekrits. Serious issue.
Also I am a gay.
Tomorrow, I have 2 exams and I'm going to be busy pretty much all day. If you guys can think of anything else I should do on the report, best tell me now, I wont be able to do much tomorrow.
Make everything tidy and presentable
I'll get onto this for now. Looks like it'll be a fun holidteaching break.
Also, Josh is not the top-scorer for this repository:
http://github-high-scores.heroku.com/nelfin/othello/high_scores/
No way of evaluating an intermediate state (not that it even has any "intermediate states" at this stage).
Sorry guys but I am gonna be really busy with 4670 over the break... probably can't do much this first week;
but next week I'll try split my time evenly between the two.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.