Просмотр файла Game/Controllers/BanditController.php

Размер файла: 9.32Kb
<?php

declare(strict_types=1);

namespace Modules\Game\Controllers;

use App\Controllers\BaseController;
use App\Models\User;

class BanditController extends BaseController
{
    /**
     * @var User
     */
    private $user;

    /**
     * Controller constructor.
     */
    public function __construct()
    {
        parent::__construct();

        if (! $this->user = getUser()) {
            abort(403, __('main.not_authorized'));
        }
    }

    /**
     * Бандит
     *
     * @return string
     */
    public function index(): string
    {
        return view('Game::bandit/index', ['user' => $this->user]);
    }

    /**
     * Игра
     *
     * @return string
     */
    public function go(): string
    {
        if ($this->user->money < 5) {
            abort('default', 'Вы не можете играть! У вас недостаточно средств!');
        }

        $num[1] = mt_rand(1, 8);
        $num[2] = mt_rand(1, 8);
        $num[3] = mt_rand(1, 8);
        $num[4] = mt_rand(1, 8);
        $num[5] = mt_rand(1, mt_rand(7, 8));
        $num[6] = mt_rand(1, 8);
        $num[7] = mt_rand(1, 8);
        $num[8] = mt_rand(1, 8);
        $num[9] = mt_rand(1, 8);

        $sum     = 0;
        $results = [];

        // ряды
        if ($num[1] === 1 && $num[2] === 1 && $num[3] === 1) {
            $results[] = 'Вишенки - вехний ряд';
            $sum += 5;
        }
        if ($num[4] === 1 && $num[5] === 1 && $num[6] === 1) {
            $results[] = 'Вишенки - средний ряд';
            $sum += 10;
        }
        if ($num[7] === 1 && $num[8] === 1 && $num[9] === 1) {
            $results[] = 'Вишенки - нижний ряд';
            $sum += 5;
        }

        if ($num[1] === 2 && $num[2] === 2 && $num[3] === 2) {
            $results[] = 'Апельсины - вехний ряд';
            $sum += 10;
        }
        if ($num[4] === 2 && $num[5] === 2 && $num[6] === 2) {
            $results[] = 'Апельсины - средний ряд';
            $sum += 15;
        }
        if ($num[7] === 2 && $num[8] === 2 && $num[9] === 2) {
            $results[] = 'Апельсины - нижний ряд';
            $sum += 10;
        }

        if ($num[1] === 3 && $num[2] === 3 && $num[3] === 3) {
            $results[] = 'Виноград - вехний ряд';
            $sum += 15;
        }
        if ($num[4] === 3 && $num[5] === 3 && $num[6] === 3) {
            $results[] = 'Виноград - средний ряд';
            $sum += 25;
        }
        if ($num[7] === 3 && $num[8] === 3 && $num[9] === 3) {
            $results[] = 'Виноград - нижний ряд';
            $sum += 15;
        }

        if ($num[1] === 4 && $num[2] === 4 && $num[3] === 4) {
            $results[] = 'Бананы - вехний ряд';
            $sum += 25;
        }
        if ($num[4] === 4 && $num[5] === 4 && $num[6] === 4) {
            $results[] = 'Бананы - средний ряд';
            $sum += 35;
        }
        if ($num[7] === 4 && $num[8] === 4 && $num[9] === 4) {
            $results[] = 'Бананы - нижний ряд';
            $sum += 25;
        }

        if ($num[1] === 5 && $num[2] === 5 && $num[3] === 5) {
            $results[] = 'Яблоки - вехний ряд';
            $sum += 30;
        }
        if ($num[4] === 5 && $num[5] === 5 && $num[6] === 5) {
            $results[] = 'Яблоки - средний ряд';
            $sum += 50;
        }
        if ($num[7] === 5 && $num[8] === 5 && $num[9] === 5) {
            $results[] = 'Яблоки - нижний ряд';
            $sum += 30;
        }

        if ($num[1] === 6 && $num[2] === 6 && $num[3] === 6) {
            $results[] = 'BAR - вехний ряд';
            $sum += 50;
        }
        if ($num[4] === 6 && $num[5] === 6 && $num[6] === 6) {
            $results[] = 'BAR - средний ряд';
            $sum += 70;
        }
        if ($num[7] === 6 && $num[8] === 6 && $num[9] === 6) {
            $results[] = 'BAR - нижний ряд';
            $sum += 50;
        }

        if ($num[1] === 7 && $num[2] === 7 && $num[3] === 7) {
            $results[] = '$$$ - вехний ряд';
            $sum += 60;
        }
        if ($num[4] === 7 && $num[5] === 7 && $num[6] === 7) {
            $results[] = '$$$ - средний ряд';
            $sum += 100;
        }
        if ($num[7] === 7 && $num[8] === 7 && $num[9] === 7) {
            $results[] = '$$$ - нижний ряд';
            $sum += 60;
        }

        if ($num[1] === 8 && $num[2] === 8 && $num[3] === 8) {
            $results[] = '777 - вехний ряд';
            $sum += 177;
        }
        if ($num[4] === 8 && $num[5] === 8 && $num[6] === 8) {
            $results[] = '777 - средний ряд';
            $sum += 777;
        }
        if ($num[7] === 8 && $num[8] === 8 && $num[9] === 8) {
            $results[] = '777 - нижний ряд';
            $sum += 177;
        }

        // столбцы
        if ($num[1] === 1 && $num[4] === 1 && $num[7] === 1) {
            $results[] = 'Вишенки - левый столбец';
            $sum += 5;
        }
        if ($num[2] === 1 && $num[5] === 1 && $num[8] === 1) {
            $results[] = 'Вишенки - средний столбец';
            $sum += 10;
        }
        if ($num[3] === 1 && $num[6] === 1 && $num[9] === 1) {
            $results[] = 'Вишенки - правый столбец';
            $sum += 5;
        }

        if ($num[1] === 2 && $num[4] === 2 && $num[7] === 2) {
            $results[] = 'Апельсины - левый столбец';
            $sum += 10;
        }
        if ($num[2] === 2 && $num[5] === 2 && $num[8] === 2) {
            $results[] = 'Апельсины - средний столбец';
            $sum += 15;
        }
        if ($num[3] === 2 && $num[6] === 2 && $num[9] === 2) {
            $results[] = 'Апельсины - правый столбец';
            $sum += 10;
        }

        if ($num[1] === 3 && $num[4] === 3 && $num[7] === 3) {
            $results[] = 'Виноград - левый столбец';
            $sum += 15;
        }
        if ($num[2] === 3 && $num[5] === 3 && $num[8] === 3) {
            $results[] = 'Виноград - средний столбец';
            $sum += 25;
        }
        if ($num[3] === 3 && $num[6] === 3 && $num[9] === 3) {
            $results[] = 'Виноград - правый столбец';
            $sum += 15;
        }

        if ($num[1] === 4 && $num[4] === 4 && $num[7] === 4) {
            $results[] = 'Бананы - левый столбец';
            $sum += 25;
        }
        if ($num[2] === 4 && $num[5] === 4 && $num[8] === 4) {
            $results[] = 'Бананы - средний столбец';
            $sum += 35;
        }
        if ($num[3] === 4 && $num[6] === 4 && $num[9] === 4) {
            $results[] = 'Бананы - правый столбец';
            $sum += 25;
        }

        if ($num[1] === 5 && $num[4] === 5 && $num[7] === 5) {
            $results[] = 'Яблоки - левый столбец';
            $sum += 30;
        }
        if ($num[2] === 5 && $num[5] === 5 && $num[8] === 5) {
            $results[] = 'Яблоки - средний столбец';
            $sum += 50;
        }
        if ($num[3] === 5 && $num[6] === 5 && $num[9] === 5) {
            $results[] = 'Яблоки - правый столбец';
            $sum += 30;
        }

        if ($num[1] === 6 && $num[4] === 6 && $num[7] === 6) {
            $results[] = 'BAR - левый столбец';
            $sum += 50;
        }
        if ($num[2] === 6 && $num[5] === 6 && $num[8] === 6) {
            $results[] = 'BAR - средний столбец';
            $sum += 70;
        }
        if ($num[3] === 6 && $num[6] === 6 && $num[9] === 6) {
            $results[] = 'BAR - правый столбец';
            $sum += 50;
        }

        if ($num[1] === 7 && $num[4] === 7 && $num[7] === 7) {
            $results[] = '$$$ - левый столбец';
            $sum += 60;
        }
        if ($num[2] === 7 && $num[5] === 7 && $num[8] === 7) {
            $results[] = '$$$ - средний столбец';
            $sum += 100;
        }
        if ($num[3] === 7 && $num[6] === 7 && $num[9] === 7) {
            $results[] = '$$$ - правый столбец';
            $sum += 60;
        }

        if ($num[1] === 8 && $num[4] === 8 && $num[7] === 8) {
            $results[] = '777 - левый столбец';
            $sum += 100;
        }
        if ($num[2] === 8 && $num[5] === 8 && $num[8] === 8) {
            $results[] = '777 - средний столбец';
            $sum += 177;
        }
        if ($num[3] === 8 && $num[6] === 8 && $num[9] === 8) {
            $results[] = '777 - правый столбец';
            $sum += 100;
        }

        $this->user->decrement('money', 5);

        if ($sum > 0) {
            $this->user->increment('money', $sum);
        }

        $user = $this->user;

        return view('Game::bandit/go', compact('num', 'results', 'sum', 'user'));
    }

    /**
     * Правила игры
     *
     * @return string
     */
    public function faq(): string
    {
        return view('Game::bandit/faq');
    }
}