Giter Site home page Giter Site logo

codenames's People

Contributors

aslvrstn avatar gullesnuffs avatar halfvoxel avatar simonlindholm avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

codenames's Issues

Better makefile

Should really do dependency tracking, and build .cpp files into .o files.

Currently we build each file twice, due to calc.cpp; builing .o files would fix that as well.

Normlize norms on board words

Some words on the board are quite vague and far from other words. Can we increase their norms, to give equal consideration to all words on the board?

Use a thesaurus for words on the board

To more explicitly test all possible meanings of them. When you play codenames, you try to give more equal consideration to obscure meanings of words and to common ones than you'd normally do.

Reduce syntactical nature of clues

E.g. verbs are currently similar to other verbs, which is natural, but not what we prefer for codenames clues. Maybe one can do some smart linear algebra thing??

Compile error on MacOS

I get the following error when trying to use the default g++ on my up-to-date version of MacOS.

codenames.cpp:1:10: fatal error: 'bits/stdc++.h' file not found
#include <bits/stdc++.h>

Manual training

Let's say we do a couple of hundred manual rankings of orders for the top 5-10 words for various clues. We could then:

  • use this for parameter tweaking: try to maximize some sort of resulting score
  • maybe use it for finding interesting and uninteresting relations in the underlying vector space

Aron suggests using Mechanical Turk, not so much because it gives good results as because it would be really fun.

Don't use data.bin

We should take the model as a command line argument instead (for both ./calc and ./codenames)

Useless clues in conceptnet

Seems like it ought to weigh more specific words higher, e.g. like how glove uses norms. Or compare nearness with a useless string?

Investigate glove norms

"gotta" is a terrible clue. Maybe it has low norm also, because it doesn't mean very much? Let's make the program print the norms and see if we can make out anything from them.

Lower-case words in glove

For usability we want only lower-case words. But glove contains both upper- and lower-case words, and sometimes with different meaning... Take weighted averages, or just the most common version?

Desperation mode

When the opponent has only one or two clues left:

  • give gray, opponent and assassin the same penalties
  • be more optimistic, and try to give a clue that covers everything not already covered
  • maybe even try to give a clue for the complement

Minimize disk usage

So it fits on a phone, for instance. Currently the word2vec model uses ~50MB, which we could reduce by:

  • using fewer words, winning say a factor of 2
  • using half-floats instead of floats, winning a factor of 2
  • storing similarities between each dictionary word and Codenames word instead of vectors, winning a factor of 300/100=3 (makes it impossible to play with custom words, though)

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.