gitignore
This commit is contained in:
parent
2785a5406f
commit
423f6ae383
1
.gitignore
vendored
1
.gitignore
vendored
@ -4,5 +4,4 @@ downloads/
|
|||||||
app/.env.cfg
|
app/.env.cfg
|
||||||
public/tmp/
|
public/tmp/
|
||||||
storage/
|
storage/
|
||||||
/public/test.php
|
|
||||||
public/test.php
|
public/test.php
|
||||||
|
|||||||
@ -1,6 +1,62 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
class TicketPhraseGen {
|
||||||
|
|
||||||
|
private $opinion = ['amazing', 'cool', 'wicked', 'lovely'];
|
||||||
|
private $size = ['little', 'tiny', 'small', 'medium', 'large', 'huge', 'gigantic'];
|
||||||
|
private $age = ['young', 'old', 'ancient', 'new'];
|
||||||
|
private $shape = ['round', 'square', 'oval', 'long', 'short'];
|
||||||
|
private $color = ['red', 'orange', 'pink', 'blue', 'green', 'yellow', 'purple'];
|
||||||
|
private $origin = ['American', 'English', 'French', 'German', 'Spanish', 'Scottish', 'Welsh', 'Irish'];
|
||||||
|
private $material = ['wooden', 'silver', 'gold', 'plastic', 'glass'];
|
||||||
|
private $purpose = ['working', 'funny', 'serious', 'whittling'];
|
||||||
|
private $noun = ['ticket', 'device', 'gadget', 'system', 'dragon'];
|
||||||
|
|
||||||
|
public function convert_id_to_phrase(int $id): string {
|
||||||
|
$list = ['opinion', 'size', 'age', 'shape', 'color', 'origin', 'material', 'purpose', 'noun'];
|
||||||
|
$bases = [
|
||||||
|
'opinion' => count($this->opinion),
|
||||||
|
'size' => count($this->size),
|
||||||
|
'age' => count($this->age),
|
||||||
|
'shape' => count($this->shape),
|
||||||
|
'color' => count($this->color),
|
||||||
|
'origin' => count($this->origin),
|
||||||
|
'material' => count($this->material),
|
||||||
|
'purpose' => count($this->purpose),
|
||||||
|
'noun' => count($this->noun),
|
||||||
|
];
|
||||||
|
// perform mixed-radix conversion
|
||||||
|
$order = ['noun', 'purpose', 'material', 'origin', 'color', 'shape', 'age', 'size', 'opinion'];
|
||||||
|
$digits = [];
|
||||||
|
foreach($order as $category){
|
||||||
|
$radix = $bases[$category];
|
||||||
|
$digits[$category] = $id % $radix;
|
||||||
|
$id = intdiv($id, $radix);
|
||||||
|
}
|
||||||
|
if($id > 0){
|
||||||
|
throw new Exception("ID too large");
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach($list as $k){
|
||||||
|
$phrase[] = $this->$k[$digits[$k]];
|
||||||
|
}
|
||||||
|
|
||||||
|
return implode('-', $phrase);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function generate(){
|
||||||
|
$generator = new TicketPhraseGen();
|
||||||
|
$ticket_number = 2;
|
||||||
|
$phrase = $generator->convert_id_to_phrase($ticket_number);
|
||||||
|
echo "Ticket #{$ticket_number} is {$phrase}";
|
||||||
|
}
|
||||||
|
|
||||||
|
generate();
|
||||||
|
|
||||||
|
|
||||||
|
function password_test(){
|
||||||
$password = "pass!local";
|
$password = "pass!local";
|
||||||
|
|
||||||
echo password_hash($password, PASSWORD_DEFAULT);
|
echo password_hash($password, PASSWORD_DEFAULT);
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user