✨ Finit le jour 2
This commit is contained in:
parent
51aaf9af97
commit
dafbffbcf8
40
day_2/part_1.php
Normal file
40
day_2/part_1.php
Normal file
@ -0,0 +1,40 @@
|
||||
<?php
|
||||
|
||||
$rounds = explode("\n", file_get_contents('./input.txt'));
|
||||
|
||||
$total_score = 0;
|
||||
|
||||
$types = [
|
||||
'A' => 'rock',
|
||||
'X' => 'rock',
|
||||
'B' => 'paper',
|
||||
'Y' => 'paper',
|
||||
'C' => 'scissor',
|
||||
'Z' => 'scissor',
|
||||
];
|
||||
|
||||
$shapes = [
|
||||
'rock' => 1,
|
||||
'paper' => 2,
|
||||
'scissor' => 3,
|
||||
];
|
||||
|
||||
foreach ($rounds as $round) {
|
||||
[$opponent, $you] = explode(' ', $round);
|
||||
$opponent = $types[$opponent];
|
||||
$you = $types[$you];
|
||||
|
||||
if ($you === $opponent) {
|
||||
$total_score += 3;
|
||||
} elseif (
|
||||
($opponent === 'rock' && $you === 'paper') ||
|
||||
($opponent === 'paper' && $you === 'scissor') ||
|
||||
($opponent === 'scissor' && $you === 'rock')
|
||||
) {
|
||||
$total_score += 6;
|
||||
}
|
||||
|
||||
$total_score += $shapes[$you];
|
||||
}
|
||||
|
||||
echo $total_score;
|
61
day_2/part_2.php
Normal file
61
day_2/part_2.php
Normal file
@ -0,0 +1,61 @@
|
||||
<?php
|
||||
|
||||
$rounds = explode("\n", file_get_contents('./input.txt'));
|
||||
|
||||
$total_score = 0;
|
||||
|
||||
$types = [
|
||||
'A' => 'rock',
|
||||
'B' => 'paper',
|
||||
'C' => 'scissor',
|
||||
'X' => 'lose',
|
||||
'Y' => 'draw',
|
||||
'Z' => 'win',
|
||||
];
|
||||
|
||||
$shapes = [
|
||||
'rock' => 1,
|
||||
'paper' => 2,
|
||||
'scissor' => 3,
|
||||
];
|
||||
|
||||
foreach ($rounds as $round) {
|
||||
[$opponent, $needs_to_end] = explode(' ', $round);
|
||||
$opponent = $types[$opponent];
|
||||
$needs_to_end = $types[$needs_to_end];
|
||||
|
||||
switch ($needs_to_end) {
|
||||
case 'draw':
|
||||
$total_score += 3;
|
||||
$total_score += $shapes[$opponent];
|
||||
break;
|
||||
case 'win':
|
||||
$total_score += 6;
|
||||
switch ($opponent) {
|
||||
case 'rock':
|
||||
$total_score += $shapes['paper'];
|
||||
break;
|
||||
case 'paper':
|
||||
$total_score += $shapes['scissor'];
|
||||
break;
|
||||
case 'scissor':
|
||||
$total_score += $shapes['rock'];
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 'lose':
|
||||
switch ($opponent) {
|
||||
case 'rock':
|
||||
$total_score += $shapes['scissor'];
|
||||
break;
|
||||
case 'paper':
|
||||
$total_score += $shapes['rock'];
|
||||
break;
|
||||
case 'scissor':
|
||||
$total_score += $shapes['paper'];
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
echo $total_score;
|
Loading…
Reference in New Issue
Block a user