!じゃんけん勝敗判定アルゴリズム
*二人でじゃんけん
**($a - $b + 3) % 3
*複数人でじゃんけん
**[$r |= 1 << $a|https://qiita.com/moriweborz/items/445dc60dbdc907ec4204]
じゃんけんの勝敗なんて考えた事なかった。
二人でじゃんけんを行った時の「グー」、「チョキ」、「パー」の9通りの組み合わせで、「勝ち」、「負け」、「引き分け」の3通りの結果が1行で判断出来るとは…「[じゃんけん勝敗判定アルゴリズムの思い出|https://staku.designbits.jp/check-janken/]」で衝撃を受けて早速じゃんけん判定ページを作ってみた。(やっぱりperlで)
これはもっとすごい($r |= 1 << $a)1行の繰り返しでじゃんけん判定が出来る[【ネタばれ】大は小を兼ねるジャンケンプログラムのアルゴリズム(どんなプログラムでもアルゴリズムは使用可)【注意】|https://qiita.com/moriweborz/items/445dc60dbdc907ec4204]
!ちゃぼ
WebSocketの[ちゃぼ|http://www21051ue.sakura.ne.jp:3001/]にも『じゃんけん機能』を追加したよ
![じゃんけんポン|http://www21051ue.sakura.ne.jp:5000/jankenpon.html]
✊
5人でじゃんけんポン
✊
!ターミナルでじゃんけんぽん
#!/usr/bin/perl
use strict;
use warnings;
my $item = {qw(0 グー 1 チョキ 2 パー)};
my $finish = 'e';
play();
sub play{
while((my $input = prompt('> ')) ne $finish){
my $computer = int(rand()*3);
print "あなた-> $item->{$input} --- $item->{$computer} <-コンピュータ \n\n";
print "@{[qw(あいこ あなたの負け あなたの勝ち)[judg($input,$computer)]]}です\n\n";
}
}
sub judg{
my ($you,$computer) = @_;
return ($you - $computer + 3) % 3;
}
sub prompt{
my $ps1 = shift;
print join("、",message()),"\n";
print $ps1;
while(<>){
chomp();
return $finish if(/^(e|q|exit|quit|999)$/i);
return $_ if(exists $item->{$_});
print $ps1;
}
return $finish;
}
sub message{
map {"$_ :$item->{$_}"} sort keys(%$item);
}
!ERROR
ccess to script at 'https://webperlcdn.zero-g.net/v0.07-beta/webperl.js' from origin 'http://www21051ue.sakura.ne.jp' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.