Passed
Push — main ( 203f91...e5e48e )
by N.
03:27
created

Matchtabeller   A

Complexity

Total Complexity 6

Size/Duplication

Total Lines 99
Duplicated Lines 0 %

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
eloc 44
dl 0
loc 99
ccs 0
cts 46
cp 0
rs 10
c 0
b 0
f 0
wmc 6

2 Methods

Rating   Name   Duplication   Size   Complexity  
A matchtabeller() 0 62 3
A td_rad() 0 26 3
1
<?php
2
3
/**
4
 * Klass Matchtabeller.
5
 * @author Niklas Dougherty
6
 */
7
8
declare(strict_types=1);
9
10
namespace Tips\Moduler\TT;
11
12
use Tips\Moduler\TT;
13
14
/**
15
 * Klass Matchtabeller.
16
 * Rendera tabeller för garderingar/system samt matcher med odds och historik.
17
 */
18
final class Matchtabeller extends Garderingstabellrad {
19
	/**
20
	 * Grid för TT-matcher.
21
	 * Tabeller för garderingar/system respektive matchdata.
22
	 * @return string[]
23
	 */
24
	public function matchtabeller(): array {
25
		$vinstmarkering = new Vinstmarkering();
26
27
		/**
28
		 * Tabeller för odds, streck, sannolikheter, historik och tabindex.
29
		 */
30
		$garderingstabell = '';
31
		$oddstabell = '';
32
		$tix = range(1000, 999 + 3 * $this->tt::TT_MATCHANTAL);
0 ignored issues
show
Bug introduced by
The constant Tips\Moduler\TT::TT_MATCHANTAL was not found. Maybe you did not declare it correctly or list all dependencies?
Loading history...
33
34
		/**
35
		 * Sätt stil på sannolikheter.
36
		 */
37
		$oddsstil = stila_tabell($this->tt->tt_o_sannolikheter);
38
		$streckstil = stila_tabell($this->tt->tt_s_sannolikheter);
39
40
		$fördelning = $this->generera_fördelning();
41
42
		$teckenfördelning = array_map(fn (array $odds): array =>
43
			array_map(fn (float $värde): string => stil($värde), $odds), $fördelning);
44
45
		$formaterad_dist = formatera_sannolikheter($fördelning);
46
		$odds = formatera_sannolikheter($this->tt->tt_odds);
47
48
		$this->tt->historik->hämta_historik();
49
		$this->tt->tt_odds_ordnade = ordna_sannolikheter($this->tt->tt_odds);
50
51
		/**
52
		 * Iterera över sannolikheter.
53
		 */
54
		foreach (array_keys($this->tt->tt_o_sannolikheter) as $i) {
55
			$odds_finns = $this->tt->tt_odds[$i][0] == 0 ? ' förlust' : '';
56
			$sortering = $this->tt->tt_odds_ordnade[$i] + 1;
57
			$sorteringsstil = stil(1 - $sortering / $this->tt::TT_MATCHANTAL); // gråskala mellan 0 och 1
58
59
			$td_rad = $this->td_rad($i, $sortering, $vinstmarkering);
60
61
			/**
62
			 * Grön, gul eller röd bakgrund för vinst, oavgjort, förlust
63
			 */
64
			$k = TOM_STRÄNGVEKTOR;
65
			$vinstmarkering->vinstfärg($k, $this->tt->reduktion[$i], $this->tt->enkelrad_1X2[$i]); // sätt färg
66
67
			$garderingstabell .= $this->garderingstabellrad($i, $sortering, $sorteringsstil, $k, $td_rad);
68
69
			/**
70
			 * Definiera tabellrad.
71
			 */
72
			$oddstabell .= (new Oddstabellrad($this->tt))->oddstabellrad(
73
				$i,
74
				$sorteringsstil,
75
				$teckenfördelning[$i],
76
				$formaterad_dist[$i],
77
				$odds_finns,
78
				$tix,
79
				$odds[$i],
80
				$oddsstil[$i],
81
				$streckstil[$i]
82
			);
83
		}
84
85
		return [$garderingstabell, $oddstabell]; // returnera till TTGridMatcher
86
	}
87
88
	/**
89
	 * Generera TD-rad.
90
	 */
91
	private function td_rad(int $i, int $sortering, Vinstmarkering $vinstmarkering): string {
92
		/**
93
		 * Iterera över kolumner med garderingsfält.
94
		 */
95
		$td_rad = '';
96
		for ($j = 0; $j < $this->tt::TT_MAX_SPIKFÄLT; $j++) {
0 ignored issues
show
Bug introduced by
The constant Tips\Moduler\TT::TT_MAX_SPIKFÄLT was not found. Maybe you did not declare it correctly or list all dependencies?
Loading history...
97
			$grå = $j % 2 === 0 ? ' grå' : ''; // omväxlande grå/svart nyans
98
99
			/**
100
			 * Grön, gul eller röd bakgrund för vinst, oavgjort, förlust
101
			 */
102
			$k = TOM_STRÄNGVEKTOR;
103
			$vinstmarkering->vinstfärg($k, $this->tt->spikar[$j][$i], $this->tt->enkelrad_1X2[$i]); // sätt färg
104
105
			/**
106
			 * Definiera tabellkolumn.
107
			 */
108
			$td_rad .= <<< EOT
109
								<td><input tabindex="-1" data-sortering="$sortering" class="tipsruta tt_spik1$grå{$k[0]}" type="text" size="1" name="tt_spikar[$j][$i][0]" value="{$this->tt->spikar[$j][$i][0]}" maxlength="1"></td>
110
								<td><input tabindex="-1" data-sortering="$sortering" class="tipsruta tt_spik2$grå{$k[1]}" type="text" size="1" name="tt_spikar[$j][$i][1]" value="{$this->tt->spikar[$j][$i][1]}" maxlength="1"></td>
111
								<td><input tabindex="-1" data-sortering="$sortering" class="tipsruta tt_spik3$grå{$k[2]}" type="text" size="1" name="tt_spikar[$j][$i][2]" value="{$this->tt->spikar[$j][$i][2]}" maxlength="1"></td>
112
113
EOT;
114
		}
115
116
		return $td_rad;
117
	}
118
}
119