Chechelsk
Новичок
Дата регистрации:
27.10.2018 18:17:18
Сообщений: 4
или напиши мне пожалуйста [email protected]
Спасибо.
Данный курс научит Вас созданию игр на C++ в Unreal Engine 5. Курс состоит из 12 разделов, в которых Вас ждёт теория и практика. Причём, в качестве практики будет создан весьма крупный проект объёмом свыше 5000 строк качественного кода, который уже на практике познакомит Вас с принципами создания игр на C++ в Unreal Engine 5.
Параллельно с курсом Вы также будете получать домашние задания, результатом которых станет, в том числе, полноценная серьёзная работа для портфолио.
Помимо самого курса Вас ждёт ещё и очень ценный Бонус: «Тестирование Unreal-проектов на Python», в рамках которого Вы научитесь писать очень полезные тесты для тестирования самых разных аспектов разработки игр.
ПодробнееПодпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.
ПодписатьсяПодписавшись по E-mail, Вы будете получать уведомления о новых статьях.
ПодписатьсяДобавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.
Мой аккаунт Моя группаКакая тема Вас интересует больше?
11 шагов к созданию своей Web-студии
После семинара:
- Вы узнаете главное отличие богатых от бедных.
- Вы увидите разоблачения множества мифов об успешности и о бизнесе.
- Вы получите свой личный финансовый план прямо на семинаре.
- Мы разберём 11 шагов к созданию своей успешной Web-студии.
- Я расскажу о своих личных историях: об успешных и неуспешных бизнесах. Это мой многолетний опыт, которым я поделюсь с Вами.
Учись так, как будто тебе предстоит жить вечно - живи так, как будто тебе предстоит умереть завтра.
Отто фон Бисмарк
Chechelsk
Новичок
Дата регистрации:
27.10.2018 18:17:18
Сообщений: 4
Chechelsk
Новичок
Дата регистрации:
27.10.2018 18:17:18
Сообщений: 4
John Doe
Продвинутый
Дата регистрации:
14.01.2019 19:23:31
Сообщений: 42
$staffList = [
[
'name' => 'Igor',
'age' => '26'
],
[
'name' => 'Petr',
'age' => '34'
],
[
'name' => 'Valen',
'age' => '46'
],
[
'name' => 'Seva',
'age' => '16'
]
];
function age_sort($a, $b)
{
$a = $a['age'];
$b = $b['age'];
return $a <=> $b;
}
uasort( $staffList, 'age_sort' );
print_r($staffList);
John Doe
Продвинутый
Дата регистрации:
14.01.2019 19:23:31
Сообщений: 42
<?php
echo '<h3>1:</h3>';
$start = microtime(true);
for ($i = 0; $i < 10 ** 7; $i++);
$end = microtime(true);
$scriptTime = $end - $start;
echo $scriptTime;
///////////////////////////////////
echo '<h3>2:</h3>';
$time = time();
$ourTime = $time + mt_rand(1, 10) * 10000;
$date = date('d.m.Y H:i:s', $time);
$ourDate = date('d.m.Y H:i:s', $ourTime);
echo 'Текущее время: ' . $date . '<br>';
echo 'Наше время: ' . $ourDate;
///////////////////////////////////
echo '<h3>3:</h3>';
$remainingTime = $ourTime - $time;
echo 'До ' . $ourDate . ' осталось ' . date('H:i:s', $remainingTime);
///////////////////////////////////////////////////////////////////////////
?>
<h3>4 and 5:</h3>
<form action="" method="post">
<select name="userOffset" id="userOffset">
<option value="2">+2</option>
<option value="3">+3</option>
<option value="4">+4</option>
</select>
<input type="submit" value="Отправить">
</form>
<?php
if (isset($_POST['userOffset'])) {
$userOffset = $_POST['userOffset'] * 3600;
} else {
$userOffset = 0;
}
$serverTime = $_SERVER['REQUEST_TIME'];
$grinTime = $serverTime - date( 'Z' );
$userTime = $grinTime + $userOffset;
$dateFormat = 'd.m.Y H:i:s';
echo 'Время на сервере: ' . date($dateFormat, $serverTime);
echo '<br>Время по Гринвичу: ' . date($dateFormat, $grinTime);
echo '<br>Время пользователя: ' . date($dateFormat, $userTime);
John Doe
Продвинутый
Дата регистрации:
14.01.2019 19:23:31
Сообщений: 42
<?php
$file = 'file.txt';
$message = '';
$fieldText = '';
if ($_POST['submit'] == 'Сохранить' ) {
if (!empty($_POST['text'])) {
$text = $_POST['text'];
file_put_contents($file, $text);
$message = '<p style="color: lightgreen">Сохранение прошло успешно</p>';
} else {
$message = '<p style="color: red">Введите текст</p>';
}
}
if ($_POST['submit'] == 'Загрузить' ) {
if(is_file($file)) {
$fieldText = file_get_contents($file);
} else {
$message = '<p style="color: red">Файл не существует</p>';
}
}
if ($_POST['submit'] == 'Удалить' ) {
if(is_file($file)) {
unlink($file);
$message = '<p style="color: cornflowerblue">Файл успешно удалён</p>';
} else {
$message = '<p style="color: red">Файл не существует</p>';
}
}
?>
<?=$message?>
<form action="" method="post">
<textarea name="text" id="text" cols="30" rows="10" placeholder="Ваш текст"><?=$fieldText?></textarea>
<hr>
<input type="submit" value="Сохранить" name="submit">
<input type="submit" value="Загрузить" name="submit">
<input type="submit" value="Удалить" name="submit">
</form>
John Doe
Продвинутый
Дата регистрации:
14.01.2019 19:23:31
Сообщений: 42
[Text]
color = "green"
font-size = "22px"
<?php
$textStyle = parse_ini_file( 'text_style.ini' );
?>
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>ParseIni</title>
<style>
p {
color: <?=$textStyle['color']?>;
font-size: <?=$textStyle['font-size']?>;
}
</style>
</head>
<body>
<p> Lorem ipsum dolor sit amet. </p>
<p> Lorem ipsum.</p>
</body>
</html>
John Doe
Продвинутый
Дата регистрации:
14.01.2019 19:23:31
Сообщений: 42
TITLE = "Русская страница"
TITLE = "English page"
<?php
define( 'DEFAULT_LANG', 'ru' );
// Достаём требуемый язык
if (isset($_GET['lang'])) {
$lang = $_GET['lang'];
} else {
$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
}
// Определяем название ini-файла
$file = $lang . '.ini';
// Проверяем существование нужного ini-файла
if (is_file($file)) {
// Если существует, то парсим его
$langIni = parse_ini_file($file);
} else {
// Если не существует, то парсим файл дефолтного языка
$langIni = parse_ini_file( DEFAULT_LANG . '.ini' );
}
echo $langIni['TITLE'];
John Doe
Продвинутый
Дата регистрации:
14.01.2019 19:23:31
Сообщений: 42
<?php
# Подготовка
// Описываем нужные функции
/**
* Создает $count случайных директорий
* @param $count - количество создаваемых директорий
*/
function makeRandDirs($count) : void
{
for ($i = 1; $i <= $count; $i++) {
mkdir(uniqid( 'dir_' ));
}
}
/**
* Возвращает массив только с директориями
* @param $folder - папка, в которой ищем директории
* @return array
*/
function getDirs($folder) : array
{
$list = scandir($folder);
$dirs = [];
foreach ($list as $dir) {
if ( $dir == '.' || $dir == '..' ) {
continue;
}
if (is_file($dir)) {
continue;
}
$dirs[] = $dir;
}
return $dirs;
}
/**
* Распечатывает папки и файлы в $folder
* @param $folder - путь
* @param string $space - отступ
*/
function printDir( $folder, $space = ' ' ) : void
{
$files = scandir($folder);
foreach ($files as $file) {
if ( $file == '.' || $file == '..' ) {
continue;
}
$f = $folder . '/' . $file;
echo $space . $file . '<br>';
if (is_dir($f)) printDir( $f, $space . '--' );
}
}
# Сам скрипт
// Получаем список директорий в текущей директории
$dirs = getDirs(__DIR__);
if (count($dirs) < 5) {
// Если папок меньше 5
// Создаём недостающие директории со случайным названием
makeRandDirs(5 - count($dirs));
header( "Refresh: 0" );
exit;
}
// Выбираем случайную директорию
$k = array_rand($dirs);
$dir = $dirs[$k];
// Формируем случайное название файла
$file = uniqid( 'f_' ) . '.txt';
// создаём файл в случайно выбранной директории
file_put_contents( $dir . '/' . $file, ' ' );
echo 'Список файлов и папок <b>до</b> удаления: <br>';
printDir(__DIR__);
// удаляем файл
unlink($dir . '/' . $file);
// удаляем директории
for ($i = 0; $i < count($dirs); $i++) {
rmdir($dirs[$i]);
}
echo 'Список файлов и папок <b>после</b> удаления: <br>';
printDir(__DIR__);
John Doe
Продвинутый
Дата регистрации:
14.01.2019 19:23:31
Сообщений: 42
<?php
$ip = gethostbyname( 'google.ru' );
echo $ip;
echo '<br>';
$host = gethostbyaddr($ip);
echo $host;
John Doe
Продвинутый
Дата регистрации:
14.01.2019 19:23:31
Сообщений: 42
<?php
// Если не пустой путь
if(isset($_POST['path'])) {
$path = $_POST['path'];
// Если файл с расширением .txt
if(substr($path, -3) == 'txt' {
// Открываем файл
$error = false;
exec($path);
} else {
// Иначе пишем ошибку
$error = 'Файл должен иметь расширение ".txt"';
}
}
?>
<!doctype html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Открытие текстового файла</title>
<style>
@keyframes hiding {
from {width: 100%; opacity: 1}
50% {width: 100%; opacity: .5}
to {width: 0; opacity: 0}
}
.message {
color: red;
opacity: 1;
transition: opacity 1s, visibility 0s;
}
.message--hiding {
color: red;
opacity: 0;
display: none;
transition: opacity 2s;
}
</style>
</head>
<body onload="hiding('message'">
<?php if ($error): ?>
<p class="message" id="mess"><?=$error?></p>
<?php endif ?>
<!--Форма-->
<form action="" method="post">
<div>
<input type="text" name="path">
</div>
<div>
<input type="submit" name="submit" value="Открыть">
</div>
</form>
<script>
setTimeout(function hiding(x) {
x = document.getElementById('mess';
x.classList.remove('message';
x.classList.add('message--hiding';
}, 2000);
</script>
</body>
</html>