用perl写了一个小游戏 欢迎各种围观、吐槽、莅临指导……[另外有了点体会]
- TeliuTe
- 论坛版主
- 帖子: 7675
- 注册时间: 2007-11-25 13:29
- 系统: 16/18/20/w7
- 来自: 新疆博乐
- 联系:
- HuntXu
- 帖子: 5776
- 注册时间: 2007-09-29 3:09
Re: 用perl写了一个小游戏 欢迎各种围观、吐槽、莅临指导……
也花了个小时,有个地方直接傻掉写错,调好久...
[perl]
#!/usr/bin/perl -w
use strict;
my $play = 1;
while ($play) {
my @an_s;
$an_s[10] = 0;
my ($ans, $guess, $chance) = ("", "", 7);
{
my $rand;
foreach (1..4) {
$rand = int(rand(10));
while (defined($an_s[$rand])) {
$rand = int(rand(10));
}
$an_s[$rand]=1;
$ans .= $rand;
}
# print $ans."\n";
}
my @an = split //, $ans;
my @gu;
my ($a, $b);
print "Please enter a number which contains four distinct digits: ";
while (<>) {
chomp;
if (!/^\d{4}$/) {
print "Only a four-digit number would be accepted!\n";
print "Please enter a number which contains four distinct digits: ";
next;
}
if (/(\d).*\1.*/) {
print "The number must contain four distinct digits!\n";
print "Please enter a number which contains four distinct digits: ";
next;
}
$chance--;
($a, $b) = (0, 0);
@gu = split //;
foreach (1..4) {
$a++ if ($an[$_-1] == $gu[$_-1]);
$b++ if (defined($an_s[$gu[$_-1]]));
}
$b -= $a;
if ($a == 4) {
print "Congratulations! The right answer!\n";
last;
}
elsif ($chance) {
print "${a}A${b}B\n";
print "You've got ${chance} chance(s) left, just try again.\n";
print "Please enter a number which contains four distinct digits: ";
}
else {
print "With no chance remaining, you failed. Poor loser!\n";
print "The right answer is ${ans}\n";
last;
}
}
print "Try again? (y/n): ";
while (<>) {
if (/^y$/i) {
$play = 1;
last;
}
elsif (/^n$/i) {
$play = 0;
print "Byebye!\n";
last;
}
else {
print "Wrong input!\n";
print "Try again? (y/n): ";
}
}
}
[/perl]
[perl]
#!/usr/bin/perl -w
use strict;
my $play = 1;
while ($play) {
my @an_s;
$an_s[10] = 0;
my ($ans, $guess, $chance) = ("", "", 7);
{
my $rand;
foreach (1..4) {
$rand = int(rand(10));
while (defined($an_s[$rand])) {
$rand = int(rand(10));
}
$an_s[$rand]=1;
$ans .= $rand;
}
# print $ans."\n";
}
my @an = split //, $ans;
my @gu;
my ($a, $b);
print "Please enter a number which contains four distinct digits: ";
while (<>) {
chomp;
if (!/^\d{4}$/) {
print "Only a four-digit number would be accepted!\n";
print "Please enter a number which contains four distinct digits: ";
next;
}
if (/(\d).*\1.*/) {
print "The number must contain four distinct digits!\n";
print "Please enter a number which contains four distinct digits: ";
next;
}
$chance--;
($a, $b) = (0, 0);
@gu = split //;
foreach (1..4) {
$a++ if ($an[$_-1] == $gu[$_-1]);
$b++ if (defined($an_s[$gu[$_-1]]));
}
$b -= $a;
if ($a == 4) {
print "Congratulations! The right answer!\n";
last;
}
elsif ($chance) {
print "${a}A${b}B\n";
print "You've got ${chance} chance(s) left, just try again.\n";
print "Please enter a number which contains four distinct digits: ";
}
else {
print "With no chance remaining, you failed. Poor loser!\n";
print "The right answer is ${ans}\n";
last;
}
}
print "Try again? (y/n): ";
while (<>) {
if (/^y$/i) {
$play = 1;
last;
}
elsif (/^n$/i) {
$play = 0;
print "Byebye!\n";
last;
}
else {
print "Wrong input!\n";
print "Try again? (y/n): ";
}
}
}
[/perl]
HUNT Unfortunately No Talent...
- 雨坤毅
- 帖子: 232
- 注册时间: 2010-08-28 14:34
- 系统: ArchLinux
- 联系:
Re: 用perl写了一个小游戏 欢迎各种围观、吐槽、莅临指导……
HelloAndroid 写了:我觉得那个写俄罗斯方块的就是个好同学啊!我也写过俄罗斯方块,用java,蛮好玩的,想写个连连看!


- anticlockwise
- 帖子: 2394
- 注册时间: 2007-03-01 20:46
- 来自: 湖南长沙
Re: 用perl写了一个小游戏 欢迎各种围观、吐槽、莅临指导……
我只在初中的时候写过一个Q-Basic的贪食蛇,之后就再没写过游戏了~~
- Drdi
- 帖子: 257
- 注册时间: 2009-10-02 15:47
Re: 用perl写了一个小游戏 欢迎各种围观、吐槽、莅临指导……
这楼有点歪掉了啊……
没有交流学习方法和经验的么?
授人以鱼不如授人以渔啊
没有交流学习方法和经验的么?
授人以鱼不如授人以渔啊
爱Linux 也爱Ubuntu
爱简洁美观的桌面
更爱高效稳定的系统
我不是不折腾难受夫斯基 也不想浪费时间
我和大多数人一样 我是菜菜
我要有菜菜的觉悟
我是Drdi
爱简洁美观的桌面
更爱高效稳定的系统
我不是不折腾难受夫斯基 也不想浪费时间
我和大多数人一样 我是菜菜
我要有菜菜的觉悟
我是Drdi
- anticlockwise
- 帖子: 2394
- 注册时间: 2007-03-01 20:46
- 来自: 湖南长沙
Re: 用perl写了一个小游戏 欢迎各种围观、吐槽、莅临指导……
光学语言本身是当然不够的,要学一门计算机语言一般就要从最基本的学起,比如算法+数据结构、数学~还要注意的就是代码规范,比如goto语句就不要用了,可以用函数/方法(Perl中用sub)来代替其中一些~Perl属于动态语言,自然有许多动态语言的特征,比如高阶函数,Closure,First Class Data Structure等等,这些都是需要去理解和活用的。如果这些都了解了,Perl看起书来很快的,如果只算Perl书籍,除了Learning Perl之外,我推荐Advanced Perl Programming, Perl Best Practices和Perl Hacks,都是Oreilly公司的~Drdi 写了:这楼有点歪掉了啊……
没有交流学习方法和经验的么?
授人以鱼不如授人以渔啊
其他的基础书籍有:Concrete Mathematics, Introduction to Algorithms, The Art of Computer Programming (Volumes 1-4), Algorithms in C/C++/Java (Parts 1-5), The Algorithm Design Manual, Modern Operating Systems, Compilers - Principles, Techniques and Tools
经常去做些算法题也是学习的一个好办法,比如上Topcoder, ACM的网站都可以
- anticlockwise
- 帖子: 2394
- 注册时间: 2007-03-01 20:46
- 来自: 湖南长沙
Re: 用perl写了一个小游戏 欢迎各种围观、吐槽、莅临指导……
以上纯属我的个人意见和想法~~ 

- Drdi
- 帖子: 257
- 注册时间: 2009-10-02 15:47
Re: 用perl写了一个小游戏 欢迎各种围观、吐槽、莅临指导……
anticlockwise 写了:光学语言本身是当然不够的,要学一门计算机语言一般就要从最基本的学起,比如算法+数据结构、数学~还要注意的就是代码规范,比如goto语句就不要用了,可以用函数/方法(Perl中用sub)来代替其中一些~Perl属于动态语言,自然有许多动态语言的特征,比如高阶函数,Closure,First Class Data Structure等等,这些都是需要去理解和活用的。如果这些都了解了,Perl看起书来很快的,如果只算Perl书籍,除了Learning Perl之外,我推荐Advanced Perl Programming, Perl Best Practices和Perl Hacks,都是Oreilly公司的~Drdi 写了:这楼有点歪掉了啊……
没有交流学习方法和经验的么?
授人以鱼不如授人以渔啊
其他的基础书籍有:Concrete Mathematics, Introduction to Algorithms, The Art of Computer Programming (Volumes 1-4), Algorithms in C/C++/Java (Parts 1-5), The Algorithm Design Manual, Modern Operating Systems, Compilers - Principles, Techniques and Tools
经常去做些算法题也是学习的一个好办法,比如上Topcoder, ACM的网站都可以
好多书啊……
多谢提供资源了

不过我英文不是太好 近来在看intermediate perl 比看中文慢了2~3倍

还有许多大学的acm都没有perl的 topcoder以前都没有听说过

不过刚刚找到SPOJ 支持好多语言 还有perl6的 多谢提醒了
PS:不得不吐槽一下我连上论坛的速度


发这个贴等了10+min了 有时候突然ping都ping不到 突然一下又好了 刚刚打好的字复制好了的 关了浏览器再开发现没有了

天……

爱Linux 也爱Ubuntu
爱简洁美观的桌面
更爱高效稳定的系统
我不是不折腾难受夫斯基 也不想浪费时间
我和大多数人一样 我是菜菜
我要有菜菜的觉悟
我是Drdi
爱简洁美观的桌面
更爱高效稳定的系统
我不是不折腾难受夫斯基 也不想浪费时间
我和大多数人一样 我是菜菜
我要有菜菜的觉悟
我是Drdi
-
- 帖子: 32
- 注册时间: 2010-11-29 17:23
Re: 用perl写了一个小游戏 欢迎各种围观、吐槽、莅临指导……
神也介绍我用一下perl,果断来学习~互勉啦~ 

- trigger
- 帖子: 1604
- 注册时间: 2006-10-25 18:08
Re: 用perl写了一个小游戏 欢迎各种围观、吐槽、莅临指导……
用shell写过,换单位,找不到了,要不然也能NB一下 

楼主真是一派胡言,真可谓:“两个黄鹂鸣翠柳,不知所云;一行白鹭上青天,不知所止“。本来不想和你辩论,今天气愤不过,和你理论一番。我国宪法写得清清楚楚:“一夜夫妻百日恩,七楼以上才有电梯”。这个想必你知道,既然知道,你就不能断章取义,就算是天气预报,它还有不准的时候呢!!!再者说了,那中国银行也不是你一家开的。人家马拉多纳都结婚了,你还拿着粮票顶什么用呢。真是滑天下之大稽。前些日子,全国人大刚刚开过会,郑重声明:“中国不搞多party制,存栏母猪给补贴”。多好的事呢,楞让你这号人给搅混了。
- sammysun
- 帖子: 4088
- 注册时间: 2007-12-08 23:33
- 来自: SCUT-guangzhou
Re: 用perl写了一个小游戏 欢迎各种围观、吐槽、莅临指导……
有空我用python写个 

- degreying
- 帖子: 22
- 注册时间: 2010-12-09 2:49
- racnil
- 帖子: 288
- 注册时间: 2008-08-28 8:12
- 联系:
Re: 用perl写了一个小游戏 欢迎各种围观、吐槽、莅临指导……
呵呵,各种语言的都有了,我来发一个C++版本的吧……
真没想到这么一个老游戏焕发出了这样的青春哈~~
写得超级长,大家见笑:
http://bbs.indepla.net/read.php?tid-2523.html
另外,如果有对PyGame感兴趣的童鞋还可以看这里。自己写的一个教程,旨在手把手教新手做一个简单的2D游戏:
http://bbs.indepla.net/thread.php?fid-318.html
真没想到这么一个老游戏焕发出了这样的青春哈~~
写得超级长,大家见笑:
http://bbs.indepla.net/read.php?tid-2523.html
另外,如果有对PyGame感兴趣的童鞋还可以看这里。自己写的一个教程,旨在手把手教新手做一个简单的2D游戏:
http://bbs.indepla.net/thread.php?fid-318.html
SLAX and Xorg(without any Window Managers)
It's fun!
It's fun!
-
- 帖子: 624
- 注册时间: 2007-07-14 17:04
Re: 用perl写了一个小游戏 欢迎各种围观、吐槽、莅临指导……[另外有了点体会]
想知道楼主如今的进展? 

-
- 帖子: 7
- 注册时间: 2014-04-20 13:38
- 系统: fedora
Re: 用perl写了一个小游戏 欢迎各种围观、吐槽、莅临指导……[另外有了点体会]
同再看perl入门,lz好厉害的样子,我真写不出来。。。。擦擦擦