Rでダーツもどきを作る

進化ゲーム理論のときに@Mishoを引き当てたやつですね。発表のほうのscriptには1時間、こっちには3時間かかっていたりします。いや、ppmとか毎回使い方忘れるんですよw。アイコンを適当にダウンロードして、media-convertというところで、ppmに変換すると、R上からこういう風に呼び出せるようになります。#4以降のネタとしてお使いください。

install.packages("pixmap")
library(pixmap)

ppms <- c("~/Downloads/gerogerobigger.ppm", #twittoru
          "~/Downloads/dsc00338iconbigger.ppm", #negaton
          "~/Downloads/udonge4bigger.ppm", #michey24
          "~/Downloads/nyoro2bigger.ppm", #T_Hash
          "~/Downloads/liosk73bigger.ppm", #LiosK
          "~/Downloads/waraionnagununubigger.ppm", #mmk_chocolate
          "~/Downloads/nagibigger.ppm", #wakuteka
          "~/Downloads/400491829972524bigger.ppm", #bonoho
          "~/Downloads/kaobigger.ppm", #shinsuke_
          "~/Downloads/fukulaughingmanbigger.ppm", #hayamiz
          "~/Downloads/syou6162bigger.ppm", #syou6162
          "~/Downloads/w579198viewsbigger.ppm", #kis
          "~/Downloads/nec0015bigger1.ppm", #isocchi
          "~/Downloads/8xdfietg.ppm", #limit
          "~/Downloads/gunuheebigger.ppm" #Misho
          )
par(mai=c(0,0,0,0))
plot(0:5, 0:5,type="n",axes=F, xlab="", ylab="")
s <- c()
for(i in 0:4){
  for(j in 0:4){
    x <- sample(1:length(ppms),1)
    s <- c(s,x)
    my.logo <- read.pnm(ppms[x])
    addlogo(my.logo,px=c(i,i+1),py=c(j,j+1))
  }
}

is <- 1:10
for (i in is){
  x <- sample(0:4,1)
  y <- sample(0:4,1)
  points(x+0.5,y+0.5,col="red",cex=15,lwd=4)
  if(i != length(is)){
    Sys.sleep(round(abs(rnorm(1,mean=0.5)),digit=1))
    my.logo <- read.pnm(ppms[s[(x*5)+ (y+1)]])
    addlogo(my.logo,px=c(x,x+1),py=c(y,y+1))
  }else{
    Sys.sleep(1)    
    system("say 'finished'")
  }
}