Advertisement
ardann

Belah Ketupat

Jul 27th, 2019
350
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.45 KB | None | 0 0
  1. <?php
  2. function star($length = 10) {
  3.     $characters = ' ';
  4.     $charactersLength = strlen($characters);
  5.     $string = '';
  6.     for ($i = 0; $i < $length; $i++) {
  7.         $string .= $characters;
  8.     }
  9.     return $string;
  10. }
  11.  
  12. function nilaiTengah($angka){
  13.     $angkaTotal = range(1, $angka);
  14.     if ($angka % 2 == FALSE) {
  15.         return false;
  16.     } else {
  17.         return ((($angka / 2) + 0.5));
  18.     }
  19.    
  20. }
  21. $panjang = 25;
  22. $nilaiTengah = nilaiTengah($panjang)-1;
  23. $angka = range(1, $panjang);
  24. $output = [];
  25. $lewat_nilai_tengah = 0;
  26. for ($i=1; $i <= $panjang; $i++) {
  27.     $bintang = str_split(star($panjang), "1");
  28.     if ($i == 1 || $i == $panjang) {
  29.         $bintang[$nilaiTengah] = "*";
  30.     } elseif (!isset($awalan) && !isset($akhiran)) {
  31.         $awalan  = ($nilaiTengah-1);
  32.         $akhiran = ($nilaiTengah+1);
  33.         foreach (range($awalan, $akhiran) as $key => $value) {
  34.             $bintang[$value] = "*";
  35.         }
  36.     } elseif ( $i == $nilaiTengah+1 ) {
  37.         $lewat_nilai_tengah = true;
  38.         $awalan  = ($awalan-1);
  39.         $akhiran = ($akhiran+1);
  40.         foreach (range($awalan, $akhiran) as $key => $value) {
  41.             $bintang[$value] = "*";
  42.         }
  43.         $awalan = 0;
  44.         $akhiran = $panjang-1;
  45.     } else {
  46.         if ($lewat_nilai_tengah) {
  47.             $awalan = $awalan+1;
  48.             $akhiran = $akhiran-1;
  49.         } else {
  50.             $awalan  = ($awalan-1);
  51.             $akhiran = ($akhiran+1);
  52.         }
  53.         foreach (range($awalan, $akhiran) as $key => $value) {
  54.             $bintang[$value] = "*";
  55.         }
  56.     }
  57.     $output[] = implode(" ", $bintang);
  58. }
  59. echo (implode(PHP_EOL, $output)).PHP_EOL;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement