2013年8月5日月曜日

開発環境

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

その他参考書籍

2.

コード(BBEdit)

sample.pl

#!/usr/bin/env perl
use strict;
use warnings;
use 5.016;
use utf8;
binmode STDOUT, ':utf8';
binmode STDIN, ':utf8';

my $DEBUG = $ENV{DEBUG} // 1;
my $secret_num = int(1 + rand 100);

print "秘密の数: $secret_num\n" if $DEBUG;

print "1から100までの秘密の数当てゲーム\n";

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

入出力結果(Terminal)

$ ./sample.pl
秘密の数: 4
1から100までの秘密の数当てゲーム
4
正解!
$

sample.pl

#!/usr/bin/env perl
use strict;
use warnings;
use 5.016;
use utf8;
binmode STDOUT, ':utf8';
binmode STDIN, ':utf8';

$ENV{DEBUG} = 0;
my $DEBUG = $ENV{DEBUG} // 1;
my $secret_num = int(1 + rand 100);

print "秘密の数: $secret_num\n" if $DEBUG;

print "1から100までの秘密の数当てゲーム\n";

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

入出力結果(Terminal)

$ ./sample.pl
1から100までの秘密の数当てゲーム
50
Too high
24
Too low
37
Too high
30
Too low
33
Too high
31
正解!
$

ちなみにpython3.3の場合。

コード(BBEdit)

sample.py

#!/usr/bin/env python3.3
## Copyright (C) 2013 by kamimura
#-*- coding: utf-8 -*-

import random, re, os

env = dict(os.environ)
if not "DEBUG" in env:
    env["DEBUG"] = 1
secret_n = random.randint(1, 100)
if env['DEBUG']:
    print("秘密の数: {0}".format(secret_n))
print("秘密の数当てゲーム")
while True:
    num = input("数値を入力: ")
    if re.match(r"(quit|exit)", num):
        break
    if re.search(r"\D", num):
        print("数値を入力してください")
        continue
    num = int(num)
    if num > secret_n:
        print("Too high")
    elif num < secret_n:
        print("Too low")
    else:
        print("正解!")
        break

入出力結果(Terminal)

$ ./sample.py
秘密の数: 16
秘密の数当てゲーム
数値を入力: 16
正解!
$

sample.py

#!/usr/bin/env python3.3
## Copyright (C) 2013 by kamimura
#-*- coding: utf-8 -*-

import random, re, os

env = dict(os.environ)
env['DEBUG'] = 0
if not "DEBUG" in env:
    env["DEBUG"] = 1
secret_n = random.randint(1, 100)
if env['DEBUG']:
    print("秘密の数: {0}".format(secret_n))
print("秘密の数当てゲーム")
while True:
    num = input("数値を入力: ")
    if re.match(r"(quit|exit)", num):
        break
    if re.search(r"\D", num):
        print("数値を入力してください")
        continue
    num = int(num)
    if num > secret_n:
        print("Too high")
    elif num < secret_n:
        print("Too low")
    else:
        print("正解!")
        break

入出力結果(Terminal)

$ ./sample.py
秘密の数当てゲーム
数値を入力: 50
Too low
数値を入力: 75
Too high
数値を入力: 62
Too high
数値を入力: 56
Too low
数値を入力: 59
正解!
$

0 コメント:

コメントを投稿