#!/usr/bin/perl -wl use strict; my @numbers = qw(16 2 10 2 9 17 5 8 15 14 20 19 19 11 10 11 9 13 7 13); my $shiftscore = checkscore("shift"); @numbers = qw(16 2 10 2 9 17 5 8 15 14 20 19 19 11 10 11 9 13 7 13); my $popscore = checkscore("pop"); my $bestscore = $popscore > $shiftscore ? $popscore : $shiftscore; print "POP:$popscore:SHIFT:$shiftscore"; print "Best Score:$bestscore"; sub checkscore { my $first_turn = shift; my ($player, $opponent); $player = $first_turn eq "pop" ? pop(@numbers) : shift(@numbers); while (@numbers) { $opponent += $numbers[0] > $numbers[-1] ? shift(@numbers) : pop(@numbers); last if !@numbers; $player += $numbers[0] > $numbers[-1] ? shift(@numbers) : pop(@numbers); } return ($player - $opponent); }