Git Product home page Git Product logo

othello's People

Contributors

capnp avatar jpnelson avatar nelfin avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

othello's Issues

Prob-Cuts

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:

  • Dunno yet

PROBLEMS:

  • Potential huge overhead in minimax
  • Potential to lose some pretty a-ok states.

Slide detail and clicky-ness factor

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.

Switch to negamax?

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 α

Performance improvements?

Where could they go? I'm currently trying to work on simple move ordering to help alpha-beta cutoffs.

Non-optimal play

Minimax seems to be losing more than it should against a random player, about 15-20% loss (minimal draws, win % was around 80%).

Meta player

A meta player could use lots of different plays to be amazing and awesome at Othello and own everyone in the tournament.

Final Report

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.

Minimax doesn't pick optimal moves?

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.

FML

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.

I have risen!

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)

Priorities

A priority list for next tuesday. Please comment and add stuff.

MUST HAVERS:

  1. More features
  2. Meta player enhancements
    • Time awareness
    • Game stage awareness
  3. Opening book player
  4. Even more features

NICE TO HAVERS:

  1. Not sure/Forgot

Compiling

I can't figure out how to compile the code to steal all your sekrits. Serious issue.

Also I am a gay.

Unavailable tomorrow

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.

Tim so damn busy

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.