我正在使用Perl创建一个简单的Lunar Lander游戏.所有元素都可以工作(即图形界面,用户实现的控件等),但我似乎无法使"AutoPilot"功能起作用.此功能应该将着陆器飞到它可以着陆的地点(或指定为着陆目标的地点),然后安全降落在那里.着陆的限制是着陆器着陆的位置和着陆器着陆时的速度.我可以更改的唯一文件是AutoPilot.pm.我将发布允许使用的代码:
package AutoPilot;
use strict;
use warnings;
# use diagnostics;
=head1 Lunar Lander Autopilot
The autopilot is called on every step of the lunar lander simulation.
It is passed state information as an argument and returns a set of course
correction commands.
The lander world takes the surface of the moon (a circle!)
and maps it onto a rectangular region.
On the x-axis, the lander will wrap around when it hits either the
left or right edge of the …Run Code Online (Sandbox Code Playgroud) 我有一系列段落,我想用正则表达式解析,但不幸的是,段落出现在句子之间有许多空格,有时候是单词.我希望能够删除所有多余的空白区域,但我不确定如何......任何人都有任何想法?我不想删除所有空格,这是我到目前为止唯一发现的空格,而是保持常规的段落格式,就像在每个单词都有空格之后,并且在每个标点符号+单词后面都有空格.我在Perl中编码.
任何帮助,将不胜感激!
我有两个输入读入我的命令提示符,第一个是由我正在编写的程序搜索的一系列单词,第二个是包含要找到单词的位置的文件.因此,例如,我的命令提示符读取perl WebScan.pl文字WebPage000.htm
现在,我可以轻松访问这些输入中的任何一个进行打印,但我很难访问网页的内容,因此我可以执行正则表达式来删除html标记并访问内容.我意识到有一个子程序可以做到这一点,没有正则表达式更有效,但我需要使用正则表达式:(.
我可以毫无困难地访问html文件进行打印:
open (DATA, $ARGV[1]);
my @file = <DATA>;
print @file;
Run Code Online (Sandbox Code Playgroud)
其中打印html页面的整个代码,但我无法传递正则表达式以删除html块.我一直收到一条错误,上面写着"无法修改s /// near中的数组取消引用",这是我具有特定正则表达式的地方.我不知道如何解决这个问题 - 我已经尝试将数组转换为标量但是我根本无法访问html中的任何数据(并且不,它不仅仅打印数量数组中的值:P)
如何访问数组的内容,以便使用正则表达式来优化所需的输出?
我正在使用Perl,我需要确定两个算术表达式树是否"相等".平等,我的意思是树的形状是相等的,而不是其中的特定值.所以,例如['internal',' - '['leaf',5] ['leaf',4]]与['internal','average',['internal','+', ['leaf',42],['leaf',10]],['leaf',1]],但与['internal','+'['leaf',3] ['leaf'相同,20]].所以,我只是想匹配形状.我有一个子程序,我希望能够做到这一点,但到目前为止,我无法使其正确匹配.这是子程序:
sub isEqualShape {
my ($ex1, $ex2) = @_;
my $node_type = $ex1->[0];
my $node_type2= $ex2->[0];
my $check;
foreach (@$ex1){
if ( $node_type eq 'leaf' && $node_type2 eq 'leaf'){
$check = 1;
}
elsif ($node_type eq 'internal' && $node_type2 eq 'internal'){
$check = 1;
}
else {
$check = 0;
return 0;
last;
}
}
foreach (@$ex2){
if ( $node_type eq 'leaf' && $node_type2 eq 'leaf'){
$check = 1;
}
elsif ($node_type eq 'internal' && …Run Code Online (Sandbox Code Playgroud)