開発環境
- OS X Lion - Apple(OS)
- BBEdit - Bare Bones Software, Inc.(Text Editor)
- Script言語:Perl
『初めての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 utf8;
use 5.016;
binmode STDIN, ':utf8';
binmode STDOUT, ':utf8';
my $Debug = $ENV{DEBUG} // 1;
my $secret_num = int(1+rand 100);
print "($secret_num)\n" if $Debug;
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 (28) 秘密の数当てゲーム 28 正解! $ export DEBUG=0 $ ./sample.pl 秘密の数当てゲーム 50 Too high 25 Too low 37 Too low 43 Too low 46 Too low 48 正解! $ echo $DEBUG 0 $ unset DEBUG $
ちなみにJavaScriptの場合。
コード(BBEdit)
<script>
var secret_num = Math.floor(Math.random() * 100) + 1;
function clicked(){
var n = $('#t0').val();
if(n === ""){
$('#label0').remove();
$('#btn0').remove();
$('#debug_p').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(secret_num + ": 正解!");
$('#label0').remove();
$('#btn0').remove();
$('#debug_p').remove();
}
}
function f(nsEvent){
var event = nsEvent ? nsEvent : window.event;
if(event.keyCode === 13) clicked();
}
function on_off(){
var a = $('#btn1').val();
if( a === "on"){
$('#btn1').val("off");
$('#snum').text("秘密の数: " + secret_num);
} else {
$('#btn1').val("on");
$('#snum').text("");
}
}
</script>
<p id="debug_p">デバック情報: <input id="btn1" type="button" value="on" onclick="on_off()"/><span id="snum"></span></p>
<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
コード(BBEdit)
#!/usr/bin/env python3.3
#-*- coding: utf-8 -*-
import random
import re
import os
if 'DEBUG' in os.environ.keys():
debug = int(os.environ['DEBUG'])
else:
debug = 1
secret_num = random.randint(1,100)
if debug:
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 (17) 17 正解! $ export DEBUG=0 $ ./sample.py 50 Too high 25 Too high 12 Too low 18 Too low 21 Too low 23 Too low 24 正解! $ echo $DEBUG 0 $ export DEBUG=1 $ ./sample.py (10) 10 正解! $ unset DEBUG $ ./sample.py (60) 60 正解! $ echo $DEBUG $
0 コメント:
コメントを投稿