Advertisement
Equidea

Exterieur Calculator

Apr 9th, 2020
297
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 7.74 KB | None | 0 0
  1. <?php
  2.  
  3. /*
  4. $vorlage = [
  5.    
  6.     0 => '',
  7.     1 => '',
  8.     2 => '',
  9.     3 => '',
  10.     4 => '',
  11.     5 => '',
  12.     6 => '',
  13.    
  14.     7 => '',
  15.     8 => '',
  16.     9 => '',
  17.     10 => '',
  18.     11 => '',
  19.     12 => '',
  20.     13 => ''
  21.    
  22. ];
  23. */
  24.  
  25. $kupfergold = [
  26.    
  27.     0 => 'hh hH hH hH hh hh hH Hh',
  28.     1 => 'hH Hh Hh hh Hh hH hh Hh',
  29.     2 => 'hH hH Hh hh hH hh Hh Hh',
  30.     3 => 'Hh hh Hh hh hh hH hh hH',
  31.     4 => 'hh hh hh Hh hH hh Hh Hh',
  32.     5 => 'hH Hh hH hH Hh hh Hh hH',
  33.     6 => 'Hh Hh hH Hh hH hH Hh hH',
  34.    
  35.     7 => 'Hh hH Hh Hh hh hh Hh hh',
  36.     8 => 'hH hH hh Hh Hh Hh hH hh',
  37.     9 => 'hH hh hH Hh hH hH Hh hh',
  38.     10 => 'hh Hh hH hh hh hh Hh hH',
  39.     11 => 'Hh Hh hH hh hh hH Hh hH',
  40.     12 => 'Hh hH hh hH Hh Hh hh Hh',
  41.     13 => 'hH Hh Hh Hh Hh hh Hh hh'
  42.    
  43. ];
  44.  
  45. $fliederbluete = [
  46.    
  47.     0 => 'hh Hh hh Hh Hh hH hh hh',
  48.     1 => 'hh hH Hh Hh hh hH hh hH',
  49.     2 => 'hH hH hh hh Hh hh Hh hH',
  50.     3 => 'hh hh Hh hH hh hh Hh hH',
  51.     4 => 'Hh hh hh hh Hh Hh hh hh',
  52.     5 => 'Hh Hh Hh hH hH hH hh Hh',
  53.     6 => 'hH hh hh hH hH hH hh hH',
  54.    
  55.     7 => 'Hh hh hh hH Hh hh hH hH',
  56.     8 => 'hh hH hh Hh hh hh hH hh',
  57.     9 => 'hh Hh hH hh Hh hh hh hh',
  58.     10 => 'Hh hH Hh hh hh Hh hh Hh',
  59.     11 => 'hH Hh Hh hH hh Hh hH H',
  60.     12 => 'hH hh Hh hH Hh hH hH Hh',
  61.     13 => 'Hh hh hh hh hh hH hh Hh'
  62.    
  63. ];
  64.  
  65. $schneesturm = [
  66.    
  67.     0 => 'hH hh hh Hh hH hh hh Hh',
  68.     1 => 'Hh hh hh Hh hH hh hH hh',
  69.     2 => 'hh hh hH Hh hh Hh hh hH',
  70.     3 => 'hH Hh Hh hh hh hH hH hh',
  71.     4 => 'hh hh hH Hh hH hH hh Hh',
  72.     5 => 'hh hH hH Hh hH hH Hh hH',
  73.     6 => 'Hh hH hh hH Hh hh hh H',
  74.    
  75.     7 => 'hH hh Hh hH Hh hH hh hH',
  76.     8 => 'Hh hH hH hH hh hh Hh hh',
  77.     9 => 'Hh Hh hh hH hH Hh hh hH',
  78.     10 => 'Hh Hh hh hh hH hH hH hH',
  79.     11 => 'hH hh hh hH Hh Hh hh hH',
  80.     12 => 'Hh hh hh hh hh hH Hh hH',
  81.     13 => 'hH Hh Hh Hh Hh hH hh hh'
  82.    
  83. ];
  84.  
  85. $kaiserflieder = [
  86.    
  87.     0 => 'hh hH hh HH hh hH hh Hh',
  88.     1 => 'hH Hh HH Hh hH hh Hh hh',
  89.     2 => 'hh HH Hh hh hh hh hH HH',
  90.     3 => 'hh hh HH hH hh hh hH Hh',
  91.     4 => 'hH hh hh Hh hH hH hh hh',
  92.     5 => 'HH hH hh hH HH hH hh Hh',
  93.     6 => 'HH Hh Hh hH hH HH Hh hh',
  94.    
  95.     7 => 'HH Hh Hh hh hH hh hH hh',
  96.     8 => 'Hh hh hh hH Hh Hh Hh hh',
  97.     9 => 'Hh hh HH Hh hH Hh hh hh',
  98.     10 => 'hh hH hh hh hh hh hh hh',
  99.     11 => 'HH HH Hh hH hh HH hh hh',
  100.     12 => 'HH Hh hH hh Hh HH hh Hh',
  101.     13 => 'Hh hh hh Hh Hh hH Hh hh'
  102.    
  103. ];
  104.  
  105. $exemplarius = [
  106.    
  107.     0 => 'Hh Hh hH hh Hh hh Hh hh',
  108.     1 => 'Hh hh Hh hh Hh Hh Hh hh',
  109.     2 => 'hh Hh Hh hH hh hH hh hh',
  110.     3 => 'hh hH hH hh Hh hh hh hH',
  111.     4 => 'hH hH hh Hh hH hH hH hH',
  112.     5 => 'hH hh hh hh hH hh hH hH',
  113.     6 => 'Hh Hh hh hh Hh Hh hh Hh',
  114.    
  115.     7 => 'hh hH hh hH hH Hh Hh hH',
  116.     8 => 'hh Hh Hh Hh hH hh Hh hH',
  117.     9 => 'hH hh hH hH hh Hh hh hh',
  118.     10 => 'hH hh Hh hH hh Hh hH hH',
  119.     11 => 'hh hH hH Hh Hh Hh hH Hh',
  120.     12 => 'hh hH hH Hh hh hh hh hH',
  121.     13 => 'hh hh Hh hH hH Hh Hh hH'
  122.    
  123. ];
  124.  
  125. $schattenfaenger = [
  126.    
  127.     0 => 'hh hH Hh hh Hh hH Hh Hh',
  128.     1 => 'Hh Hh Hh hh hh Hh hh hH',
  129.     2 => 'hh hH hH Hh hh Hh hh hh',
  130.     3 => 'Hh Hh hh hh Hh hH hh hH',
  131.     4 => 'Hh Hh Hh hh hH Hh Hh Hh',
  132.     5 => 'hH hh hH hH Hh Hh hh hh',
  133.     6 => 'hH hH Hh Hh Hh hH Hh Hh',
  134.    
  135.     7 => 'hH Hh hH Hh hH hh Hh hh',
  136.     8 => 'Hh Hh Hh Hh Hh hh Hh hH',
  137.     9 => 'Hh Hh Hh hh hH Hh hh Hh',
  138.     10 => 'Hh hH Hh hh hh hH hH hh',
  139.     11 => 'hH Hh hH Hh hh hh hh Hh',
  140.     12 => 'Hh hh hH hH Hh Hh Hh hh',
  141.     13 => 'hH hh hh Hh hh Hh hH Hh'
  142.    
  143. ];
  144.  
  145. $kupferpfeil = [
  146.    
  147.     0 => 'hH hh Hh Hh hh hh HH Hh',
  148.     1 => 'hh hh Hh hh Hh Hh hH HH',
  149.     2 => 'Hh hh Hh hh hh hH hh Hh',
  150.     3 => 'HH hh hH hH hh hH hh hh',
  151.     4 => 'hh hH hH hh hH hH HH hH',
  152.     5 => 'Hh Hh hh hh Hh hH Hh Hh',
  153.     6 => 'HH hH hh Hh Hh hh hh hh',
  154.    
  155.     7 => 'hh hH Hh hh hH hh Hh hh',
  156.     8 => 'Hh hh hh Hh Hh hh Hh hh',
  157.     9 => 'hh hH hh hh Hh HH Hh hh',
  158.     10 => 'hh HH Hh hh hh hh hh HH',
  159.     11 => 'HH Hh HH hH hh Hh hH Hh',
  160.     12 => 'Hh Hh hH HH hh hH hH hh',
  161.     13 => 'Hh hh hH hh Hh hh Hh hh'
  162.    
  163. ];
  164.  
  165. $donnerpfeil = [
  166.    
  167.     0 => 'Hh HH hH HH Hh hh HH Hh',
  168.     1 => 'hh hH hh Hh hh Hh hh hH',
  169.     2 => 'hh Hh HH hh HH hH Hh Hh',
  170.     3 => 'HH hH HH HH Hh hh Hh hh',
  171.     4 => 'hh hH hh hH Hh Hh HH hh',
  172.     5 => 'hh hH hh hh HH HH Hh Hh',
  173.     6 => 'hH hh hh hh hh hh hh hh',
  174.    
  175.     7 => 'hh hH HH hh hH hh hh hH',
  176.     8 => 'hH Hh HH Hh hH hh Hh hh',
  177.     9 => 'hh HH hh hh Hh HH hh Hh',
  178.     10 => 'hh hH hH hH hh hh hh hH',
  179.     11 => 'hh hh hH Hh hh hH hH h',
  180.     12 => 'Hh Hh hh Hh hH hH HH hh',
  181.     13 => 'hh Hh Hh hh hh hh hh hH'
  182.    
  183. ];
  184.  
  185. $daunenflieder = [
  186.    
  187.     0 => 'Hh HH hh HH HH hh hh Hh',
  188.     1 => 'hh hh hh hh hh Hh hh hH',
  189.     2 => 'hh hh Hh hh HH hh Hh hH',
  190.     3 => 'Hh hh hh hh hh hh Hh Hh',
  191.     4 => 'hh Hh hh hh hH HH hh Hh',
  192.     5 => 'Hh hH hh Hh HH hH Hh hH',
  193.     6 => 'Hh Hh Hh hH hH hh hh HH',
  194.    
  195.     7 => 'HH Hh Hh Hh hh hh hH Hh',
  196.     8 => 'hh HH Hh Hh hh hh hH hh',
  197.     9 => 'Hh HH HH Hh Hh Hh hh hh',
  198.     10 => 'hH hH Hh hh hh hh hh hh',
  199.     11 => 'hH Hh hH hH hh hh HH hh',
  200.     12 => 'HH hh hh HH Hh hH hh hH',
  201.     13 => 'Hh hh hh hh hh hH hh hH'
  202. ];
  203.  
  204. $marron = [
  205.    
  206.     0 => 'hH hH hh Hh Hh Hh hh Hh',
  207.     1 => 'hh hH Hh Hh Hh hH Hh Hh',
  208.     2 => 'hH Hh hH hH hH hh Hh Hh',
  209.     3 => 'hH hH hh Hh hh Hh hH hh',
  210.     4 => 'Hh hH hh hh hH hH hH hh',
  211.     5 => 'hh hh Hh hh hH hH Hh hh',
  212.     6 => 'hH hH hH hH hH hH hh hh',
  213.    
  214.     7 => 'hh Hh Hh hh hh Hh hh hH',
  215.     8 => 'Hh Hh Hh Hh hH Hh hH hh',
  216.     9 => 'Hh Hh hH Hh hH hH Hh hH',
  217.     10 => 'hh hh Hh hh hH hH hh Hh',
  218.     11 => 'Hh Hh hh Hh hh Hh hH hH',
  219.     12 => 'hh hh hh hh Hh Hh hh Hh',
  220.     13 => 'Hh Hh hh hH hH hH Hh hh'
  221.    
  222. ];
  223.  
  224. $kastanienbluete = [
  225.    
  226.     0 => 'hH HH Hh hH hh hH hh HH',
  227.     1 => 'hh hh HH hh hH Hh hh Hh',
  228.     2 => 'Hh hH hH hh hH hh Hh hH',
  229.     3 => 'HH hH hh hh hh hH hh hh',
  230.     4 => 'hH hH hh hh HH hH hh Hh',
  231.     5 => 'Hh hh Hh Hh hH hH Hh hh',
  232.     6 => 'hh hh hH hh Hh hh Hh hh',
  233.    
  234.     7 => 'hh hH hH hh hh hh hh hH',
  235.     8 => 'Hh hH hh hH hh hH hh hh',
  236.     9 => 'HH hh HH hH Hh hH hH hH',
  237.     10 => 'hh Hh hh hh hh hH Hh hh',
  238.     11 => 'hh hH hh hh hh hH HH hh',
  239.     12 => 'Hh hh hh hh HH Hh hh hh',
  240.     13 => 'HH hH hh hh HH hh HH hh'
  241.    
  242. ];
  243.  
  244. $pair = [$schattenfaenger, $fliederbluete];
  245.  
  246. function parseExterieurString(string $exterieur)
  247. {
  248.     $genes = explode(' ', $exterieur);
  249.    
  250.     for ($i = 0; $i < 4; $i++) {
  251.         $genes[$i] =  parseGeneStringLeft($genes[$i]);
  252.     }
  253.    
  254.     for ($i = 4; $i < 8; $i++) {
  255.         $genes[$i] =  parseGeneStringRight($genes[$i]);
  256.     }
  257.    
  258.     return $genes;
  259. }
  260.  
  261. function parseGeneStringLeft(string $gene)
  262. {
  263.     switch ($gene) {
  264.         case 'hh' : return 0;
  265.         case 'Hh' : return 1;
  266.         case 'hH' : return 1;
  267.         case 'HH' : return 2;
  268.     }
  269. }
  270.  
  271. function parseGeneStringRight(string $gene)
  272. {
  273.     switch ($gene) {
  274.         case 'hh' : return 2;
  275.         case 'Hh' : return 1;
  276.         case 'hH' : return 1;
  277.         case 'HH' : return 0;
  278.     }
  279. }
  280.  
  281. function parseHorseGenes(array $genes)
  282. {
  283.     foreach ($genes as $gene => $value) {
  284.         $genes[$gene] = parseExterieurString($value);
  285.     }
  286.     return $genes;
  287. }
  288.  
  289. function calculateFoalHs(array $father, array $mother)
  290. {
  291.     $foal = [];
  292.    
  293.     for ($i = 0; $i < 14; $i++) {
  294.        
  295.         $fatherGene = $father[$i];
  296.         $motherGene = $mother[$i];
  297.        
  298.         $foalGene = [];
  299.        
  300.         for ($j = 0; $j < 8; $j++) {
  301.             $foalGene[$j] = ($fatherGene[$j] + $motherGene[$j]) / 2;
  302.         }
  303.        
  304.         $foal[$i] = $foalGene;
  305.     }
  306.    
  307.     return $foal;
  308. }
  309.  
  310. function calculateFoal(array $father, array $mother)
  311. {
  312.     $foal = [];
  313.    
  314.     for ($i = 0; $i < 14; $i++) {
  315.        
  316.         $fatherGene = $father[$i];
  317.         $motherGene = $mother[$i];
  318.        
  319.         $foalGene = [];
  320.        
  321.         for ($j = 0; $j < 4; $j++) {
  322.             $foalGenePercent = ($fatherGene[$j] + $motherGene[$j]) / 2;
  323.            
  324.             if ($foalGenePercent > 0) {
  325.                 $foalGene[$j] = 1;
  326.             } else {
  327.                 $foalGene[$j] = 0;
  328.             }
  329.         }
  330.        
  331.         for ($j = 4; $j < 8; $j++) {
  332.             $foalGenePercent = ($fatherGene[$j] + $motherGene[$j]) / 2;
  333.            
  334.             if ($foalGenePercent > 1) {
  335.                 $foalGene[$j] = 1;
  336.             } else {
  337.                 $foalGene[$j] = 0;
  338.             }
  339.         }
  340.        
  341.         $foal[$i] = $foalGene;
  342.     }
  343.    
  344.     return $foal;
  345. }
  346.  
  347. function interpreteFoal(array $foal)
  348. {
  349.     for ($i = 0; $i < 14; $i++) {
  350.         $result[$i] = array_sum($foal[$i]);
  351.     }
  352.     return $result;
  353. }
  354.  
  355. $foal = calculateFoal(
  356.     parseHorseGenes($pair[0]),
  357.     parseHorseGenes($pair[1])
  358. );
  359.  
  360. echo array_sum(interpreteFoal($foal)) . ' von 112';
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement