健康=睡眠+栄養+運動の法則に納得している、ユゲタです。
プログラミングスキル=学習+経験+コーディング量
こんな法則も考えられますね。
良い結果=検討+実行+失敗
こんな法則を考えていくのが面白くなってきました・・・
でも、今日はPerlでじゃんけんゲーム作っちゃうよ。
本日のIT謎掛け
「コーディング」と、かけまして・・・
「工事現場の電気配線担当」と、ときます。
そのココロは・・・
コードを打ち込んで行く事です。
Perlでじゃんけんゲーム
#!/usr/bin/perl
@spr_arr = ("グー" , "チョキ" , "パー");
print "じゃんけん : [0:グー 1:チョキ 2:パー] : ";
$my_spr = <STDIN>;
printf "あなたの出した手は、%sです。\n" , $spr_arr[$my_spr];
$com_spr = &get_com_spr();
printf "コンピュータの出した手は、%sです。\n" , $spr_arr[$com_spr];
$result = &spr_mutch($my_spr , $com_spr);
$res_str = &result_str($result);
printf "%s\n" , $res_str;
sub get_com_spr{
return int(rand 3);
}
sub spr_mutch{
$my_spr = $_[0];
$com_spr = $_[1];
if($my_spr == $com_spr){
return "draw";
}
elsif($my_spr == 0 && $com_spr == 1){
return "win";
}
elsif($my_spr == 1 && $com_spr == 2){
return "win";
}
elsif($my_spr == 2 && $com_spr == 0){
return "win";
}
else{
return "lose";
}
}
sub result_str(){
$result = $_[0];
if ($result eq "win"){
return "あなたの勝ちです。";
}
elsif($result eq "lose"){
return "あなたの負けです。";
}
else{
return "引き分けです。";
}
}
実行と解説
デバッグも兼ねて、ターミナルでコマンド実行してみます。
$ perl janken.pl
じゃんけん : [0:グー 1:チョキ 2:パー] : 1
あなたの出した手は、チョキです。
コンピュータの出した手は、パーです。
あなたの勝ちです。
$ perl janken.pl
じゃんけん : [0:グー 1:チョキ 2:パー] : 1
あなたの出した手は、チョキです。
コンピュータの出した手は、グーです。
あなたの負けです。
$ perl janken.pl
じゃんけん : [0:グー 1:チョキ 2:パー] : 1
あなたの出した手は、チョキです。
コンピュータの出した手は、チョキです。
引き分けです。
ハイ、無事に成功しているようです。
perlの特徴は、サブルーチンという関数が、他の言語と違っている点です。
どちらかというと、shellに似ていますね。
サブルーチンでの引数の受け取りが多言語の引数のような受け取り口がなく、自分で$_[0]のような形で、取り出さなければいけません。
めんどくさく感じる人もいるかもしれませんが、言語仕様なので、「コレはコレ」と割り切れないと、こだわるポイントはそんなところではないですからね。
その他は、さほど難しい点は、今回のプログラムでは無かったので、順を追って見てもらうと、内容理解は簡単にできると思いますよ。
今回は、以上になります。
0 件のコメント:
コメントを投稿