-
Notifications
You must be signed in to change notification settings - Fork 0
/
TextGravity.php
63 lines (49 loc) · 1.03 KB
/
TextGravity.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<?php
$text=str_replace("\r\n",' ',$_GET['text']);
$lineLength=$_GET['lineLength'];
$array=Array();
$arraySymbol=str_split($text);
//print_r($arraySymbol);
// This convert to the array
$s=0;
for($i=0,$j=0;$i<count($arraySymbol);$i++){
if($i%$lineLength==0&&$i!=0){
$j++;$s=0;
}
if(isset($arraySymbol[$i])){
$array[$j][$s]=$arraySymbol[$i];
$s++;
}
}
for($i=$s;$i<$lineLength;$i++){
$array[$j][$i]=' ';
}
for($i=$j-1;$i>=0;$i--){
for($s=0;$s<$lineLength;$s++){
downChar($i,$s);
}
}
function downChar($row,$col){
global $array;
for($i=$row;$i<count($array);$i++){
if($row+1!=count($array)){
if($array[$row+1][$col]==" "){
$array[$row+1][$col]=$array[$row][$col];
$array[$row][$col]=' ';
downChar($row+1,$col);
return true;
}
else return false;
}
}
}
echo '<table>';
for($i=0;$i<count($array);$i++){
echo '<tr>';
for($s=0;$s<$lineLength;$s++){
if(isset($array[$i][$s])) echo '<td>'.htmlspecialchars($array[$i][$s]).'</td>';
else '<td> </td>';
}
echo '</tr>';
}
echo '<table>';