Обучение/Помощь новичкам | Оцените код
Типа покупка ресурсов в игре . Строго не судите , учу пыху пару месяцев
Первый файл
Второй
Третий
Первый файл
php
<?php
class obmen
{
public static function r($type) {
return package('price-resurs')[$type];
}
//узнать сколько добавить ресурса за покупку
public static function get_resurs_set($type, $lot_id) {
return package('price-resurs')[$type][$lot_id]['set'];
}
//узнать цену ресурса
public static function get_resurs_price($type, $lot_id) {
return package('price-resurs')[$type][$lot_id]['mutagen_price'];
}
//контролер покупки
public static function boy_ctr($lot_id, $type) {
$q = package('price-resurs')[$type][$lot_id]['mutagen_price'];
if (get_mutagen_by_id(ID) >= $q) {
if ($type == 'bucks') {
$resurs = self::get_resurs_set($type, $lot_id);
$mutagen = self::get_resurs_price($type, $lot_id);
set_bucks($resurs, ID); //добавить баксы
}
if ($type == 'metall') {
$resurs = self::get_resurs_set($type, $lot_id);
$mutagen = self::get_resurs_price($type, $lot_id);
set_metal($resurs, ID); //добавить металл
}
set_mutagen(-$mutagen, ID); //минус мутаген
} else {
$_SESSION['err'] = 'Не достаточно мутагена!';
}
}
}
class obmen_model
{
public function get($data) //принимаю масив с контролера
{
$type = $data['type'];
if ($type == 'bucks') {
$t = obmen::r('bucks');
}
if ($type == 'metall') {
$t = obmen::r('metall');
}
return [
't' => $t,
'type' => $data['type'],
];
}
} Второй
php
<?php
require_once(ROOT . 'project/internal/core.php');
$type_default = 'bucks';
$type_perhaps = [
'bucks',
'metall',
];
$lot_id = filter_input(INPUT_GET, 'lot_id');
$type = filter_input(INPUT_GET, 'p');
if ( ! in_array($type, $type_perhaps)) {
$type = $type_default;
}
//нажата кнопка купить
if( !empty($lot_id) ) {
obmen::boy_ctr($lot_id,$type);
// что бы при перезагркзеи страницы не повторялся код
redirect_return('index.php?page=obmen');
}
$data = [
'type' => $type,
];
view('tpl/cap');
view('tpl/header');
view('tpl/header-enter');
view('obmen', (new obmen_model)->get($data));
view('tpl/footer-enter');
view('tpl/footer'); Третий
php
<div class="block"> Магазин ресурсов </div>
<div class="fon-lvl">
<?php if ($type == 'bucks') : ?>
<div class="atom">Баксы</div>
<?php else : ?>
<a href="<?= subord_url('obmen', 'p=bucks') ?>" class="atom">Баксы</a>
<?php endif ?>
<?php if ($type == 'metall') : ?>
<div class="atom">Металлалом</div>
<?php else : ?>
<a href="<?= subord_url('obmen', 'p=metall') ?>" class="atom">Металлалом</a>
<?php endif ?>
</div>
<div>
<?php foreach ($t as $val) : ?>
<div class="fon-tex">
<a href="<?= subord_url('obmen', "p=$type&lot_id=$val[id]" ) ?>"> Купить <?= $val['set'] ?> <?= $val['name'] ?> за <?= $val['mutagen_price'] ?> </a>
</div>
<?php endforeach ?>
</div>
Тут можно было в три строки уложиться
Dofor (08.01.2022 в 20:57)
Тут можно было в три строки уложиться
Тут можно было в три строки уложиться
Говорит человек, который не шарит в начальных моментах https://i.imgur.com/uChZjxG.png
Сам не сильно шарю, но как для нескольких месяцев вполне не плохо 👍
213731682 , у тебя все методы класса obmen статичные, логично было бы сделать его абстрактным - конечно если в планах держать только статик методы, но опять же, класс всегда можно перевести в инстанс
213731682 , public static function r($type) {
никогда не называй методы r , a GG, ZZ, и так далее, проблема в том что никто кроме тебя не знает что делает метод r пока не посмотрит в метод r, это время затратно
никогда не называй методы r , a GG, ZZ, и так далее, проблема в том что никто кроме тебя не знает что делает метод r пока не посмотрит в метод r, это время затратно
Trec80 , Это для теста был назван , назвал так временно
213731682 , у тебя все методы принимают тип , я бы обьявил его, и в конструктор передал бы этот самый тип и ипользовал его через конектс
Trec80 , можешь на моем коде так сделать ?) Как пример , в л.с или сюда же ,буду благодарен
НЕЙМИНГ ССУКА!!! Не obmen а swap!!! ТОЛЬКО на английском!!!
Стр.: 1, 2