2012年12月20日木曜日

開発環境

『初めてのPerl 第6版』(Randal L. Schwartz, Tom Phoenix, brian d foy 共著、近藤 嘉雪 訳、オライリー・ジャパン、2012年、ISBN978-4-87311-567-2) の10章(さまざまな制御構造)、10.11(練習問題)1を解いてみる。

その他参考書籍

1.

コード(TextWrangler)

sample.pl

#!/usr/bin/env perl
## Copyright (C) 2012 by kamimura
use strict;
use warnings;
use utf8;
use 5.016;
binmode STDIN, ':utf8';
binmode STDOUT, ':utf8';

my $secret_num = int(1+rand 100);
print "($secret_num)\n";

print "秘密の数当てゲーム\n";

while(1){
  chomp(my $n = <STDIN>);
  last if $n =~ /^\s*$/;
  if($n =~ /\D/){
    print "数値を入力してください\n";
  } elsif ($n > $secret_num){
    print "Too high\n";
  } elsif($n < $secret_num) {
    print "Too low\n";
  } else {
    print "正解!\n";
    last;
  }
}

入出力結果(Terminal)

$ ./sample.pl
(81)
秘密の数当てゲーム
80
Too low
90
Too high
perl
数値を入力してください
81
正解!
$ ./sample.pl
(86)
秘密の数当てゲーム

$

ちなみにJavaScriptの場合。

コード(TextWrangler)

<script>
var secret_num = Math.floor(Math.random() * 100) + 1;
function clicked(){
  var n = $('#t0').val();
  if(n === ""){
    $('#label0').remove();
    $('#btn0').remove();
    return;
  }
  n = parseInt(n);
  if(/\D/.test(n)){
    $('#pre0').append("数値を入力してください\n");
  } else if( n > secret_num){
    $('#pre0').append("Too high\n");  
  } else if(n < secret_num){
    $('#pre0').append("Too low\n");
  } else {
    $('#pre0').append("正解!");
    $('#label0').remove();
    $('#btn0').remove();
  }
}
function f(nsEvent){
  var event = nsEvent ? nsEvent : window.event;
  if(event.keyCode === 13) clicked();
}
</script>
<pre id="pre0"></pre>
<label id="label0">秘密の数当てゲーム(1から100): <input id="t0" type="text" value="" onkeydown="f()" /></label>
<input id="btn0" type="button" value="当たり/外れ?" onclick="clicked()" />





pythonの場合。

sample.py

コード(TextWrangler)

#!/usr/bin/env python3.3
#-*- coding: utf-8 -*-

import random
import re

secret_num = random.randint(1,100)
print("({0})".format(secret_num))
while True:
    n = input()
    if re.match(r"^\s*$", n): break
    if re.match(r"\D", n):
        print("数値を入力してください")
        continue
    n = int(n)
    if n > secret_num:
        print("Too high")
    elif n < secret_num:
        print("Too low")
    else:
        print("正解!")
        break

入出力結果(Terminal)

$ ./sample.py
(54)
50
Too low
55
Too high
python
数値を入力してください
54
正解!
$ ./sample.py
(80)

$

0 コメント:

コメントを投稿