Coder Social home page Coder Social logo

uno-runner's Introduction

uno-runner

This is a little Java simulator for the card game Uno, for investigating fat-tailedness of game-length and other distributions. It will become grist for an upcoming blog post at http://exegetotrope.blogspot.com. It's also an example of my use of Java: I use Java quite a bit on the job but (until now) didn't have any examples of that on Github.

Usage

  • make all
  • make tests
  • java org/johnkerl/unorunner/UnoGameRunner 4
  • java org/johnkerl/unorunner/UnoGameRunner 4 100
  • make clean

To examine

  • Distribution of hand sizes overall; then, conditioned on game length (or, more coarsely, number of reshuffles).
  • Expected next-turn hand size conditioned on current hand size. Try to explain long-term game-length variability in terms of short-term hand-size pressures.
  • Distribution of game lengths (in number of turns, and/or number of reshuffles).
  • Distribution of draw sizes.

Data being printed

Game-details mode ( c2h and other CSV tools are at https://github.com/johnkerl/scripts/tree/master/ntbl ):

$  java org/johnkerl/unorunner/UnoGameRunner 4 | c2h
nturn nshuf c0 c1 c2 c3 ndraw ndeck ndis card          
----- ----- -- -- -- -- ----- ----- ---- --------------
0     1     7  7  7  7  0     79    1    _             
1     1     6  _  _  _  0     79    2    wild/draw-four
2     1     _  11 _  _  4     75    2    _             
3     1     _  10 _  _  0     75    3    red/3         
4     1     _  _  6  _  0     75    4    red/9         
5     1     _  _  _  6  0     75    5    red/5         
6     1     5  _  _  _  0     75    6    red/6         
7     1     _  9  _  _  0     75    7    green/6       
8     1     _  _  5  _  0     75    8    blue/6        
9     1     _  _  _  5  0     75    9    yellow/6      
10    1     4  _  _  _  0     75    10   blue/6        
11    1     _  8  _  _  0     75    11   blue/7        
12    1     _  _  5  _  1     74    12   blue/2        
13    1     _  _  _  4  0     74    13   blue/8        
14    1     3  _  _  _  0     74    14   blue/2        
15    1     _  7  _  _  0     74    15   green/2       
16    1     _  _  4  _  0     74    16   green/9       
17    1     _  _  _  3  0     74    17   yellow/9      
18    1     2  _  _  _  0     74    18   yellow/3      
19    1     _  6  _  _  0     74    19   yellow/2      
20    1     _  _  3  _  0     74    20   yellow/0      
21    1     _  _  _  2  0     74    21   yellow/skip   
22    1     _  5  _  _  0     74    22   green/skip    
23    1     _  _  _  1  0     74    23   green/skip    
24    1     _  4  _  _  0     74    24   green/6       
25    1     _  _  2  _  0     74    25   red/6         
26    1     _  _  _  0  0     74    26   red/4         

Game-summary mode:

$ java org/johnkerl/unorunner/UnoGameRunner 4 10 | c2h
nturn nshuf
----- -----
29    1    
61    1    
52    1    
34    1    
179   2    
75    1    
588   8    
31    1    
73    1    
81    1    

uno-runner's People

Contributors

johnkerl avatar

Stargazers

 avatar

Watchers

James Cloos avatar  avatar

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.