perl写的一个随机编故事的程序(rand随机函数)(编程里的随机)一看就会

随心笔谈11个月前发布 admin
98 0

#!/bin/perl

use strict; 

use warnings; 

#定义变量 

my $count; 

my $input; 

my $number; 

my $sentence; 

my $story; 

#定义四个数组 

#定义了人物数组 

my @nouns= 

   ‘Dad’, 

   ‘TV’, 

   ‘Mom’, 

   ‘Groucho’, 

   ‘Rebecca’, 

   ‘Harpo’, 

   ‘Robin Hood’, 

   ‘Joe and Moe’, 

); 

#定义了动作数组 

my @verbs= 

   ‘ran to’, 

   ‘giggled with’, 

   ‘put hot sauce into the orange juice of’, 

   ‘exploded’, 

   ‘dissolved’, 

   ‘dissolved’, 

   ‘sang stupid songs with’, 

   ‘jumped with’, 

 ); 

 #定义了地点数组 

 my @prepositions= 

 ( 

     ‘at the store’, 

     ‘over the rainbow’, 

     ‘at the beach’, 

     ‘before dinner’, 

     ‘in New York City’, 

     ‘in a dream’, 

     ‘around the world’, 

 ); 

 do  

 { 

    #每次运行以前,清空$story的内容 

    $story=”; 

    #以下是随机组合生成故事 

    for ($count=0;$count<6;$count++) 

    { 

       #我们划分一下结构,scalar @nouns 是获取@nouns数组元素的个数,然后用rand总这几个数中随机生成几个,最后int是将得到的数取整 

       $sentence=$nouns[int(rand(scalar @nouns))] 

       .” ” 

       .$verbs[int(rand(scalar @verbs))] 

       .” ” 

       .$nouns[int(rand(scalar @nouns))] 

       .” ” 

       .$prepositions[int(rand(scalar @prepositions))] 

       .’.’; 

       $story .=$sentence; 

   } 

   print “\n”,$story,”\n”; 

   print “\nType “quit”to quit, or press Enter to continue:”; 

   $input=

#这里是利用正则表达式来匹配首字符是q的字符串,如果有,那么就退出,/^是匹配起始位置,/i是不区分大小写 

until ($input=~/^\s*q/i); 

exit;

© 版权声明

相关文章