LoginSignup
3
2

More than 3 years have passed since last update.

Dartで湯婆婆を実装してみる

Last updated at Posted at 2020-11-07

誰もやってなかったようなので。。。

元ネタ: Javaで湯婆婆を実装してみる

コード

import 'dart:io';
import 'dart:math';

main() {
  print("契約書だよ。そこに名前を書きな。");

  // 標準入力を1行読み込む
  var name = stdin.readLineSync().trim();

  print("フン。${name}というのかい。贅沢な名だねぇ。");

  // 名前を奪う
  var random = new Random();
  var newNameIndex = random.nextInt(name.length);
  var newName = name.substring(newNameIndex, newNameIndex + 1);

  print("今からお前の名前は${newName}だ。いいかい、${newName}だよ。分かったら返事をするんだ、${newName}!!");
}

実行結果

$ dart yubaba.dart
契約書だよ。そこに名前を書きな。
千尋
フン。千尋というのかい。贅沢な名だねぇ。
今からお前の名前は千だ。いいかい、千だよ。分かったら返事をするんだ、千!!

おまけ

空入力を与えると...?

契約書だよ。そこに名前を書きな。

フン。というのかい。贅沢な名だねぇ。
Unhandled exception:
RangeError (max): Must be positive and <= 2^32: Not in range 1..4294967296, inclusive: 0
#0      _Random.nextInt (dart:math-patch/math_patch.dart:230)
#1      main (file:///home/kogia-sima/PG/Dart/yubaba/yubaba.dart:14)
#2      _startIsolate.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:307)
#3      _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:174)

Javaと同じくクラッシュしました。

感想

コードに冗長性がほとんど見られないのはDartの大きな強みの一つだと思う。

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2