ria pc game
translate to English   translate to Chinese
fle game engine - движок для создания игр
fle game engine - движок для создания игр


Balls and holes PC game / Balls and Holes PC игра
Вакансии
Игродельня
Сегодня
17 февраля 2019 21:25
Вход Регистрация Забыли пароль ?

megainformatic - Тестирование подключения платежной системы
Тестирование подключения платежной системы Как подключить платежную систему к сайту ? Как протестировать прохождение платежей в подключенной платежной системе ? Ответ на эти вопросы Вы найдете в данной статье. Рассмотрим этот вопрос на примере подключения к платежной системе робокасса. Зайдём
подробнее...

Теги создание сайтов, создание игр, дизайн, игры, информатика, уроки photshop, php, c++, музыка, delphi, cms, робосайт
Статьи сайта
megainformatic - Что нужно для создания собственного сайта ?

megainformatic - Макет дизайна Вашего сайта

скачать megainformatic cms

megainformatic - Итоги 2010 года

megainformatic - Что нужно для создания собственного сайта ?

megainformatic - как создать инсталлятор для собственной cms

megainformatic - Новости - страница 2

Нововведения в megainformatic cms

Web Администрирование

Уроки Верстки

Система автоматизированной е-майл рассылки

Система автоматизированной е-майл рассылки

megainformatic - Выгрузка файла на сайт

megainformatic - выпадающее меню на html и css

megainformatic - Использование checkbox

Краеугольная особенность работы Web-form на примере смены состояния checkbox

Технологии WEB

Технологии WEB - AJAX-запросы

Часто Задаваемые Вопросы

Продукты

Проблемы с кодировками при отображении страниц

игра Нечто: Необъяснимое Нить Накала - "в плену желаний"

Система Автоматизации Доставки Электронных Заказов megainformatic cms e-pro

megainformatic cms e-pro Автоматизация Обработки Уведомлений о Заказах по партнерским программам

megainformatic cms e-pro Автоматизация Обработки Уведомлений о Заказах по партнерским программам

webinformatic: Музыкальная страничка трэкера

megainformatic - Создание музыки и звука

webinformatic: Создание музыки и звука: урок 2

megainformatic - Создание музыки и звука: урок 3 - настройка Impulse Tracker для работы в WinXP

megainformatic - Создание музыки и звука: урок 4 - Введение в Mod Plug Tracker

megainformatic - Создание музыки и звука: урок 5 - Первая композиция в Mod Plug Tracker

megainformatic - Создание музыки в Impulse Tracker 2.14 - урок 6 - Ввод Нот

megainformatic - Создание музыки в Impulse Tracker 2.14 Первая мелодия

megainformatic - Создание музыки в Impulse Tracker 2.14 Настройка параметров сэмплов

megainformatic - Создание музыки и звука: теория и практика создания трэкерской музыки

megainformatic - Инструкция по оплате услуг средствами WebMoney

Основы работы в Microsoft Visual Studio 2008 и DirectX 9 (DX SDK Aug 2008)

Введение в программирование игр на С++ для платформы DirectX 9 - Первый старт

Введение в программирование игр на С++ для платформы DirectX 9 - Меняем иконку приложения

Введение в программирование игр на С++ для платформы DirectX 9 Добавляем другую модель

Введение в программирование игр на С++ для платформы DirectX 9 Программирование игр в directx. Hello, World!

Введение в программирование игр на С++ для платформы DirectX 9 Разбираем конструкции языка C++ на примере работы в Microsoft Visual Studio 2008

Разбираем конструкции языка C++ на примере работы в Microsoft Visual Studio 2008 - Урок 1 Основные операторы языка C++

Разбираем конструкции языка C++ на примере работы в Microsoft Visual Studio 2008 - Урок 1 Основные операторы языка C++ (часть 2)

Урок 2 Написание Win32-приложений. Обзор стартового кода Win32-приложения. Добавление ресурса текстовая строка

Урок 3 Создание Win32-приложений. Создание меню и простых диалоговых окон.

Урок 4 Создание Win32-приложений. Стандартные диалоги. Изучение сопутствующих конструкций языка. Консольные Win32-приложения. Указатели. Ссылочный тип. Массивы.

Урок 4 часть 2 Win32. Диалог выбора цвета, смена цвета фона окна приложения

Написание приложения DirectX9c + MFC в среде MSVS 2005

megainformatic - Создание компьютерных игр на основе DirectX в среде Delphi 6, 7

megainformatic - Создание компьютерных игр на основе DirectX в среде Delphi 6, 7 - Почему избраны DX8 и Delphi ?

megainformatic - Основы IDirectMusic8 в среде Delphi6-7

megainformatic - Основы DirectInput8 в среде Delphi 7

megainformatic - Основы DirectSound8 в среде Delphi6-7

megainformatic - Плагин для 3DS MAX из DX9 SDK

megainformatic - Мастер-класс: Создание модели и текстуры Коммандного Центра (как в StarCraft 2)

подробнее

     
 

Создаем выпадающее меню средствами html + css

В данном уроке мы попробуем создать следующее выпадающее меню - popup menu

 
     
 

Первым делом подключаем к странице файл стилей -

<link rel="stylesheet" href="css/style.css" type="text/css" /> содержимое этого файла находится здесь - css/style.css

 
     
  в котором будем описывать необходимые классы и их свойства, влияющие на оформление нашего меню.  
     
  div#bm_main_container  
     
 

данный класс, описанный как уникальный по его id (о чём свидетельствует знак #) будет задавать у нас контейнер для содержимого страницы

в html опишем его как див -

<div id="bm_main_container">

</div>

 
     
  обратите внимание, что мы указали, что для данного блока див, свойства берутся не из класса (class), а из уникального элемента объявленного как id (#)  
     
  Теперь углубимся в рассмотрение кода для css и html  
     
  div#bm_main_container {
width: 1024px; /* задаем ширину контейнера для страницы 1024 пикселя */
background: #f2f2f2; /* цвет фона для контейнера будет бледно-серый */
margin: 0 auto; /* это нужно для размещения контейнера по центру страницы вне зависимости от ширины экрана */
}
 
     
 

в html внутри блока bm_main_container

<div id="bm_main_container">

<!-- описываем блок, представляющий строку меню -->

<div id="bm_category_container"></div>

</div>

 
     
 

в css добавляем

div#bm_category_container {
float: left; /* прижимаем блок меню к левой границе */
background: #fff; /* задаем белый фон */
width: 100%; /* располагаем меню во всю ширину */
height: 28px; /*высоту строки меню определяем в 28 пикселей */
border-top: 1px dashed #000; /* верхний и нижний бордюр черного цвета, выполненный штрихами*/
border-bottom: 1px dashed #000;
margin-bottom: 10px; /* внешний отступ под строкой меню 10 пикселей */
}

 
     
 

/* пункты меню будут элементами ненумерованного списка, поэтому уточняем их свойства

для самого блока ненумерованного списка - ul

*/

#bm_category_container ul {
margin: 1px 5px; /*внешний отступ сверху и снизу по 1 пикселю, слева и справа - по 5 */
padding: 0; /* без внутренних отступов */
}

/* для каждого из пунктов меню */
#bm_category_container li a {

float: left; /* прижать к левой границе */
display: block; /* отображать блоками - т. е. в начале и конце блока содержимое переносится, если не умещается в заданных размерах */
color: #901e78; /* для пунктов меню задаем пурпурный цвет */
padding: 5px 8px; /* внешние отступы сверху/снизу - 5 пикселей, слева/справа - 8 */
font-weight: bold; /* жирный шрифт */
font-family: Verdana, Geneva, sans-serif; /* определяем написание шрифта */
font-size: 14px; /* размер букв - 14 пиксель */
}

 
     
  в html описываем первый пункт меню и его элементы -  
     
 

<div id="bm_category_container">

<!-- открываем тег ненумерованного списка -->
<ul>

<!-- задаем блок для отображения пункта меню -->
<div id="header_wm">

<!-- подпункты будут ненумерованным списком -->
<ul class="models_wm">
<li>

<!-- описываем ссылку на пункт меню и некоторые дополнительные свойства стиля -->
<a style="text-decoration: none;" href="#">&bull;&nbsp;Пункт меню1</a>

<!-- подпункты будут также ненумерованным списком -->
<ul>

<!-- для упорядочения подпунктов применяем таблицу -->
<table width="100%" border="0" cellspacing="0" cellpadding="0">

<!-- в первой строке выделяем названия столбцов для подгрупп-->
<tr>
<td><li>

<!-- и прописываем их названия -->
<a href="#">Подгруппа1</a>
</li></td>
<td><li><a href="#">Подгруппа2</a></li></td>
<td><li><a href="#">Подгруппа3</a></li></td>
</tr>

<!-- прописываем названия подпунктов меню -->
<tr>
<td><a style="color: #fff; font-weight: normal;" href="#">Подпункт1</a></td>
<td><a style="color: #fff; font-weight: normal;" href="#">Подпункт2</a></td>
<td><a style="color: #fff; font-weight: normal;" href="#">Подпункт3</a></td>
</tr>
<tr>
<td><a style="color: #fff; font-weight: normal;" href="#">Подпункт1</a></td>
<td><a style="color: #fff; font-weight: normal;" href="#">Подпункт2</a></td>
<td><a style="color: #fff; font-weight: normal;" href="#">Подпункт3</a></td>
</tr>
<tr>
<td><a style="color: #fff; font-weight: normal;" href="#">Подпункт1</a></td>
<td><a style="color: #fff; font-weight: normal;" href="#">Подпункт2</a></td>
<td><a style="color: #fff; font-weight: normal;" href="#">Подпункт3</a></td>

<!-- закрываем все открытые теги -->
</tr>
</table>
</ul>
</li>
</ul>
</div>

</ul>

</div>

 
     
  в css описываем следующее -  
     
 

/* последовательно описываем все необходимые свойства для оформления пункта меню и подпунктов */

/* сначала описываем свойства названия пункта меню */

#header_wm .models_wm {
list-style-type: none; /* стиль элемента списка - невидимый */
float: left; /* прижимать элемент к левой границе на странице */
}
#header_wm .models_wm li {

/* прижимать элемент к левой границе на странице */
float: left;

/* положение для элемента - относительное - в данном контексте определяет положение выпадающей вкладки с подменю */
position: relative;
}
#header_wm .models_wm li a {
float: left; /* прижимать элемент к левой границе на странице */
position: relative; /* положение относительное */
font-size: 1.2em; /* размер шрифта 1.2 от ширины буквы M */
color: #901e78; /* цвет пурпурный */
text-decoration: none; /* подчеркивание отключаем */
font-weight: bold; /* шрифт жирный*/
}

/* при наведении указателя мыши на данный пункт меню - */
#header_wm .models_wm li a:hover {
text-decoration: underline; /* включаем подчеркивание */
background: #901e78; /* цвет фона - пурпурный */
color: #fff; /* цвет букв - белый */

}

/* описываем свойства для подпунктов - */
#header_wm .models_wm ul {
list-style-type: none; /* значок элемента списка - отключаем */
display: none; /* показ блока - отключаем */
position: absolute; /* показ блока - положение - абсолютное */

padding: 10px; /* показ блока - положение - абсолютное */
background: url(../image/item1_bg.png); /* фоновое изображения для вкладки подменю, поскольку используем png, то вкладку можно сделать полупрозрачной, использовав полупрозрачное png изображение */
border: 2px #901e78 solid; /* по краям вкладки подменю выводим бордюр, который невидим, т. к. совпадает с цветом фона вкладки */


top: 24px; /* смещение сверху 24 пикселя */
left: -30px; /* смещение слева на -30 пикселей */
z-index: 10000; /* z-порядок с максимальным значением, чтобы вкладка отобразилась поверх остальных блоков страницы */
margin-left: 25px; /* внешний отступ слева 25 пикселей*/
}

/* подпункты меню - */
#header_wm .models_wm ul li {
color: #fff; /* цвет текста названия пункта белый */
width: 180px; /* ширину требуется указать, т. к. ИЕ7 отображает вкладку некорректно */

padding: 5px 0; /* внутренние отступы сверху/снизу - 5 пиксель, слева/справа - 0 */
font: 12px Verdana; /*шрифт - 12 пиксель, Verdana */
float: left;
/* привязка блока к левой границе */

}

/* поскольку подпункты - это ссылки, то нужно задать оформление и для них */

#header_wm .models_wm ul li a {
color: #fff; /* цвет текста названия ссылки белый */
font: 12px Verdana; /*шрифт - 12 пиксель, Verdana */
font-weight:bold; /* шрифт выделен жирным */
float: none; /* привязка блока нет */
}

/* при наведении указателя мыши на подпункт - */

#header_wm .models_wm ul li a:hover {
color: #ccc;
/* делаем цвет подпункта серым */
float: none; /* привязку убираем */
text-decoration: none; /* подчеркивание убираем */
}

/* этот элемент в описании ответствен за отображение вкладки подменю - при наведении указателя мыши на пункт меню активируется показ вкладки подменю представленной тегом ul, и отображается вкладка в виде блока */

#header_wm .models_wm li:hover ul {
display: block;
/* если попробовать закомментировать данное свойство или изменить его значение на другое, то всплывающая вкладка подпункта меню не появится */
}

 
     
  Остальные пункты и подпункты меню реализуются полностью аналогично, с тем лишь отличием, что для них устанавливаются собственные особенности - цвет вкладки, названия пунктов и прочее, что нужно.  
     
  Весь исходный код для данного урока Вы найдёте здесь - popup menu (html) и здесь - css/style.css (css).  
     
подробнее

Новогодняя дискотека 2013 на megainformatic точка ru

Ведущий: cj andy;

dj andy 1998 - 2002

ВНИМАНИЕ! При прослушивании композиций после нажатия вами кнопки воспроизведения может возникать небольшая задержка в несколько секунд, связанная с загрузкой файла композиции в Ваш браузер. Поэтому просто наберитесь терпения и немножко подождите. Сразу же после этого Вы услышите музыку :)


  Вступление - Дорогие друзья, Мы начинаем нашу новогоднюю вечеринку 2013. Ура !!! 31 декабря 2012  
     
     
 
 
     
     
     
     
  Композиция фри-стайлинг версия от 6 января 2013  
     
     
 
 
     
     
     
     
  Новогодняя - Новый год стучится в двери, он уже на полпути, в сказку, в чудо все мы верим, вместе нам вперед идти! 31 декабря 2011  
     
     
 
 
     
     
     
     
  kristmas - рождество - 4:02 - 8 января 2001 г - композиция посвященная рождеству (electro house)  
     
     
 
 
     
     
     
     
  Different Reality - Scooter  
     
     
 
 
     
     
     
     
  Стремление (aspiring) - 3:34 - 14 декабря 2012 electro :) Стремление вперед ... А вообще я щас заметил, что aspiring - это же аспирин :))) Таблетка аспирина так сказать :))) Но вообще композиция получилась немного "тяжелая" и "перегруженная", и всё же надеюсь вам она понравится.  
     
     
 
 
     
     
     
     
  Герои наших дискотек - Белый, Марат и Ник из фильма Даже Не думай. Марат встречает Машу на Дискотеке, 2002 г. Веселимся под их музыку !!!  
     
     
 
 
     
     
     
     
  Кшиштоф Радомски, Above the Zenith  
     
     
 
 
     
     
     
     
  Веселая мелодия из м/ф Планета 51, 2009 г.  
     
     
 
 
     
     
     
     
  Марк Вера - Композиция на тему игры Laser Squad  
     
     
 
 
     
     
     
     
  Морозное утро (Frosty morning) - 2:35 - 3-5 февраля 2012  
     
     
 
 
     
     
     
     
  Песенка Сильвера - Лучше быть одноногим, чем быть ... одиноким из м/ф Остров Сокровищ, 1988 г.  
     
     
 
 
     
     
     
     




другие композиции

подробнее

Проект социальной сети

megainformatic cms social



РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ

Заходим на сайт

http://megainformatic.ru/webprojects/mcs_pb/

Чтобы войти в личный кабинет в форме ВХОД НА САЙТ вводим известные вам логин и пароль.

После входа в ЛИЧНЫЙ КАБИНЕТ (далее ЛК для краткости) вы увидите текст приветствия и верхнее выпадающее меню.

Все действия в вашем ЛК выполняются посредством ВЕРХНЕГО ВЫПАДАЮЩЕГО МЕНЮ, а также кнопок или пунктов представленных на странице, которая откроется при выборе того или иного пункта.

Рассмотрим работу каждого из пунктов меню.

РАЗДЕЛ - Управление.

УПРАВЛЕНИЕ > Профиль

Выбрав данный пункт Вы попадаете на страничку личного профиля, где можно изменить или загрузить ваше фото, задать или изменить существующие ЛОГИН, ПАРОЛЬ и другие необходимые поля.

Внеся изменения просто нажмите кнопку СОХРАНИТЬ. Все сделанные изменения при этом будут сохранены.

УПРАВЛЕНИЕ > Страницы

Данный раздел позволяет вам менять Заголовки Ваших Личных страниц на сайте. Вы также видите названия их файлов и ссылки. Чтобы отредактировать контент страницы воспользуйтесь кнопкой РЕДАКТИРОВАТЬ расположенной справа от нужной страницы в таблице списка страниц.

Обратите внимание !!! Данный раздел доступен только пользователям с ролью не ниже АГЕНТ.

УПРАВЛЕНИЕ > Настройки

Данный пункт доступен только пользователю с ролью СУПЕРАДМИН.

Он позволяет управлять отображением ЛИЧНЫХ СТРАНИЦ указанного пользователя, а также задавать ГЛОБАЛЬНЫЕ НАСТРОЙКИ по обработке ВХОДЯЩИХ сообщений.

Принцип работы - аналогичный - выбрав данный пункт меню Вы попадете на страницу. Введя в поле ID номер нужного пользователя (user_id) и нажав кнопку РЕДАКТИРОВАТЬ Вы увидите страницы данного пользователя, которые ему доступны в его ЛК.

Установите/Снимите нужные галочки и нажмите кнопку СОХРАНИТЬ ИЗМЕНЕНИЯ.

Чтобы изменить НАСТРОЙКИ ОБЩИЕ ДЛЯ ВСЕХ КАБИНЕТОВ аналогично - задайте нужные значения и нажмите кнопку СОХРАНИТЬ ИЗМЕНЕНИЯ.

УПРАВЛЕНИЕ > Выход

Позволяет ВАМ завершить сеанс работы в вашем ЛК и перейти на главную страницу сайта.





РАЗДЕЛ - Пользователи

ПОЛЬЗОВАТЕЛИ > Список

Отображает список всех зарегистрированных пользователей сайта.

ПОЛЬЗОВАТЕЛИ > Претенденты

Отображает список претендентов - пользователей которые задали вопрос на сайте, но еще не посетили страницу ХОЧУ ЗАРЕГИСТРИРОВАТЬСЯ.

ПОЛЬЗОВАТЕЛИ > Ждут регистрацию

Выводит список пользователей, которые задали вопрос на сайте и посетили ссылку ХОЧУ ЗАРЕГИСТРИРОВАТЬСЯ.

ПОЛЬЗОВАТЕЛИ > Новый кабинет

Данный раздел позволяет вам зарегистрировать нового пользователя. Просто введите wtr_id который можно посмотреть в разделе ПОЛЬЗОВАТЕЛИ > Ждут регистрацию

а затем нажмите кнопку ПОДТВЕРДИТЬ





РАЗДЕЛ - Контент

КОНТЕНТ > Личные страницы

Позволяет вам редактировать контент ваших личных страниц. Этот же раздел открывается автоматически при работе в разделе - УПРАВЛЕНИЕ > Страницы

когда Вы нажмёте кнопку РЕДАКТИРОВАТЬ у одной из страниц списка представленного в виде таблицы.





РАЗДЕЛ - История

История > Посещения

Позволяет вам отслеживать историю посещаемости всех страниц вашего сайта.

История > Сообщения

Позволяет вам работать с системой внутренних сообщений сайта. Вопросы поступающие с личных страниц КОНТАКТЫ попадают во ВХОДЯЩИЕ сообщения пользователя, которому принадлежит личная страница КОНТАКТЫ.

Тут представлено 3 папки - ВХОДЯЩИЕ, ОТПРАВЛЕННЫЕ И КОРЗИНА.

Сообщения (вопросы), на которые уже был дан ответ помечаются иконкой в виде карандаша.





ТЕСТИРОВАНИЕ ОБЩИХ СООБЩЕНИЙ История > Сообщения нажать кнопку ОБЩИЕ

задаем вопрос любому пользователю

для тестирования отправки напоминаний о заданных вопросах
=====

задаем в настройках время напоминания [Сообщение "ждёт" чтобы на него ответили] равное 0, а время

после напоминания [Сообщение "ждёт" после напоминания хозяину:] в значение отличное от нуля

открываем любую страницу пользователя или типовую страницу

чтобы сработал cron (обработчик заданных по времени программных исполнителей задач).



заходим по FTP в папку входящих сообщений пользователя, которому бы задан вопрос

и если открыть файл свежего сообщения текстовым редактором, то там будет видно,

что файл помечен как remainded



Для сравнения если открыть другие сообщения, то там будет в первой строчке стоять не слово remainded а какое-либо число,

означающее id агента, которому был адресован вопрос.

для тестирования переноса сообщений на которые по истечении заданного времени не был получен ответ даже после напоминания,
======

нужно выставить настройки

задаем в настройках время напоминания [Сообщение "ждёт" чтобы на него ответили] отличное от 0, а время

после напоминания [Сообщение "ждёт" после напоминания хозяину:] равное нулю

открываем любую страницу пользователя или типовую страницу

чтобы сработал cron (обработчик заданных по времени программных исполнителей задач).

теперь если зайти в любой личный кабинет то, там в папке ОБЩИХ сообщений должны появиться сообщения, на которые не был дан

ответ

ОСОБЕННОСТЬ работы временных задач cron такова, что поймать момент времени, когда будет выполняться cron не представляется возможным.

ПОЭТОМУ ЗАРАНЕЕ ИЗВЕЩАЙТЕ РАЗРАБОТЧИКА о НАЧАЛЕ ТЕСТИРОВАНИЯ ВОЗМОЖНОСТЕЙ ОБЩИХ СООБЩЕНИЙ

чтобы я мог внести соответствующие ТЕСТОВЫЕ корректировки в скрипт и сообщить ВАМ о том, что момент времени наступит ТОГДА-ТО.



УСТАНОВКА СИСТЕМЫ на сайт joomla

1) в панели управления joomla отключаем стандартный модуль авторизации joomla

2) в панели управления joomla создаем модуль mod_custom

и вставляем туда код для формы авторизации (выделен коричневым цветом)

[admin_panel_dir] = адрес админ-панели

например

http://megainformatic.ru/webprojects/mcs_pb/pb/holder

Вход на сайт

<form name="enter_form" method="post" action="[admin_panel_dir]/index.php">

Логин:  <input name="login" type="text" id="loginid" size="20" maxlength="80">


Пароль:<input name="passwid" type="password" id="passwid" size="20" maxlength="80">


<input type="submit" name="enterid" id="enterid" value="Войти">

</form>

включаем вывод созданного модуля взамен модуля вывода стандартной авторизации

3) саму систему устанавливаем в подпапку pb в папке сайта joomla

путём копирования всех файлов системы megainformatic cms social в папку pb

4) правим файл pb/config.php

прописав в нём корректный путь и другие настройки

$system_name = 'megainformatic cms social'; //название системы

$site_url = 'http://megainformatic.ru/webprojects/mcs_pb/pb'; //пропишите адрес к вашему сайту

$admin_panel_dir = 'holder'; //здесь укажите имя папки для модуля административной панели

$superadmin_email = 'my@megainformatic.ru'; //емайл адрес СУПЕРАДМИНИСТРАТОРА САЙТА

//настройки доступа к бд

$dbhost = "127.0.0.1"; //сервер базы данных обычно 127.0.0.1 либо localhost

$dbsite = "mcs"; //сюда нужно вписать имя созданной вами для сайта базы данных

$dbuser = "root"; //это имя пользователя базы данных - для локального сайта можно вписать root

$dbpassw = ""; //пароль доступа к базе данных, для локального сайта можно не использовать

5) (таблицы для mcs нужно внедрить в базу данных сайта joomla, таблицам дать имена с префиксом mbp_ )

проверяем нет ли в таблицах базы данных интегрируемого сайта таблиц с префиксом mbp_ и если нет - прописываем этот префикс

в файле pb/includes/constants.php

$table_prefix = 'mbp_';

из архива baza_dannyh берем дамп базы данных db_dump.sql

и вставляем его в базу данных интегрируемого сайта (через phpMyAdmin)

6) в шаблоне внедряемого сайта блок контента надо выделить тегами

<div id="mcspb_content">

</div> <!-- end of mc -->



подробнее

Создание простейшей нейросети на примере распознавания цифр

нейронная сеть перцептрон

Данная статья основана на статье -

Глава 4. Персептроны

В статье объясняется понятие элементарной нейросети, персептрона и принципов
её создания на конкретном примере - программы для распознавания
цифр от 0 до 9.

Пример программы представлен на языке python.

Я привожу пример этой же программы, но на языке php, так что вы можете
увидеть результат её работы прямо здесь - на данной странице
в вашем браузере.

Результат работы программы: (при каждом обновлении страницы результат будет варьировать).

количество итераций: 10000

Вывод значений весов

0 1 0
2 0 -6
0 2 0
-4 0 0
1 1 0


обучение сети:

0 это 5? 0
1 это 5? 0
2 это 5? 0
3 это 5? 0
4 это 5? 0
6 это 5? 0
7 это 5? 0
8 это 5? 0
9 это 5? 0


тестирование сети:

Узнал 5? 1
Узнал 5 - 1? 1
Узнал 5 - 2? 1
Узнал 5 - 3? 1
Узнал 5 - 4? 1
Узнал 5 - 5? 0
Узнал 5 - 6? 0




Ниже привожу полный исходный код программы на языке php.

	// Цифры (Обучающая выборка)
	
	$num0 = '111101101101111';
	$num1 = '001001001001001';
	$num2 = '111001111100111';
	$num3 = '111001111001111';
	$num4 = '101101111001001';
	$num5 = '111100111001111';
	$num6 = '111100111101111';
	$num7 = '111001001001001';
	$num8 = '111101111101111';
	$num9 = '111101111001111';
	
	//Список всех вышеуказанных цифр
	
	$nums = array($num0, $num1, $num2, $num3, $num4, $num5, $num6, $num7, $num8, $num9);
	
	//# Виды цифры 5 (Тестовая выборка)
	
	$num51 = '111100111000111';
	$num52 = '111100010001111';
	$num53 = '111100011001111';
	$num54 = '110100111001111';
	$num55 = '110100111001011';
	$num56 = '111100101001111';
	
	//Инициализация весов сети
	
	global $weights;
	
	$weights = array();
	
	for ( $i = 0; $i < 15; $i++ )
	{
		$weights[$i] = 0;
	}
	
	//Порог функции активации
	
	global $bias;
	
	$bias = 7;
	
	//Является ли данное число 5
	
	function proceed($number)
	{
		global $weights;
		global $bias;
	
		$net = 0;
		
		for ( $i = 0; $i < 15; $i++ )
		{
			$net += intval($number[$i]) * $weights[$i];			
		}		
		
		//превышен ли порог ?
		return $net >= $bias;
	}
	
	//Уменьшение значений весов, если сеть ошиблась и выдала 1
	
	function decrease($number) 
	{
		global $weights;	
	
		for ( $i = 0; $i < 15; $i++ )
		{
			if ( intval($number[$i]) == 1 )
			{
				$weights[$i] -= 1;
			}
		}
	}
	
	//Увеличение значений весов, если сеть ошиблась и выдала 0
	
	function increase($number) 
	{
		global $weights;
	
		for ( $i = 0; $i < 15; $i++ )
		{
			if ( intval($number[$i]) == 1 )
			{
				$weights[$i] += 1;
			}
		}
	}
	
	/*
	# Тренировка сети
	for i in range(10000):
    # Генерируем случайное число от 0 до 9
    option = random.randint(0, 9)
 
    # Если получилось НЕ число 5
    if option != 5:
        # Если сеть выдала True/Да/1, то наказываем ее
        if proceed(nums[option]):
            decrease(nums[option])
    # Если получилось число 5
    else:
        # Если сеть выдала False/Нет/0, то показываем, что эта цифра - то, что нам нужно
        if not proceed(num5):
            increase(num5)
	*/
	
	//инициализируем генератор случайных чисел
	srand((double) microtime() * 1000000);
		
	//выполняем тренировку сети
	for ( $i = 0; $i < 10000; $i++ )
	{
		//Генерируем случайное число от 0 до 9
		$option	= rand(0, 9);
		
		//Если получилось НЕ число 5
		if ( $option != 5 )
		{	
			//Если сеть выдала True/Да/1, то наказываем ее
			if ( proceed($nums[$option]) )
				decrease($nums[$option]);	
		}
		else {
		//Если получилось число 5
		
			//Если сеть выдала False/Нет/0, то показываем, что эта цифра - то, что нам
			//нужно
			if ( !proceed($num5) )
				increase($num5);
		}
	}
	
	//Вывод значений весов
	
	$c = 0;
	for ( $i = 0; $i < count($weights); $i++ )
	{
		echo $weights[$i].' ';
		$c++;
		if ( $c == 3 )
		{
			$c = 0;
			echo '<br>';
		}
	}
	echo "<br>"; echo "<br>";
	
	echo "0 это 5? ". intval(proceed($num0)); echo "<br>";
	echo "1 это 5? ". intval(proceed($num1)); echo "<br>";
	echo "2 это 5? ". intval(proceed($num2)); echo "<br>";
	echo "3 это 5? ". intval(proceed($num3)); echo "<br>";
	echo "4 это 5? ". intval(proceed($num4)); echo "<br>";
	//echo "5 это 5? ". intval(proceed($num5)); echo "<br>";
	echo "6 это 5? ". intval(proceed($num6)); echo "<br>";
	echo "7 это 5? ". intval(proceed($num7)); echo "<br>";
	echo "8 это 5? ". intval(proceed($num8)); echo "<br>";
	echo "9 это 5? ". intval(proceed($num9)); echo "<br>";
	
	echo "<br>";
	echo "<br>";
	
	echo "Узнал 5? ". intval(proceed($num5));  echo "<br>";
	echo "Узнал 5 - 1? ". intval(proceed($num51)); echo "<br>";
	echo "Узнал 5 - 2? ". intval(proceed($num52)); echo "<br>";
	echo "Узнал 5 - 3? ". intval(proceed($num53)); echo "<br>";
	echo "Узнал 5 - 4? ". intval(proceed($num54)); echo "<br>";
	echo "Узнал 5 - 5? ". intval(proceed($num55)); echo "<br>";
	echo "Узнал 5 - 6? ". intval(proceed($num56)); echo "<br>";

Теперь вы можете сами заняться созданием собственной нейросети
начав с основ.

Показанная программа является действующим реальным примером
простейшей нейронной сети, умеющей распознавать образы цифр от
0 до 9, представленных в виде строковых значений в виде побитовой
маски.

образы цифр для нейросети распознавания цифр в виде черно-белых пикселей

образы цифр для нейросети распознавания цифр в виде побитовой маски

Каждому черному пикселю соответствует значение 1, а белому - 0.

1 – 001001001001001
2 - 111001111100111
3 - 111001111001111
4 - 101101111001001
5 - 111100111001111
6 - 111100111101111
7 - 111001001001001
8 - 111101111101111
9 - 111101111001111

Эти строки и записаны в самом начале программы.

	// Цифры (Обучающая выборка)
	
	$num0 = '111101101101111';
	$num1 = '001001001001001';
	$num2 = '111001111100111';
	$num3 = '111001111001111';
	$num4 = '101101111001001';
	$num5 = '111100111001111';
	$num6 = '111100111101111';
	$num7 = '111001001001001';
	$num8 = '111101111101111';
	$num9 = '111101111001111';
Содержимое данной страницы доступно только зарегистрированным пользователям.



Пожалуйста войдите на сайт - Вход

или пройдите процедуру регистрации - Регистрация

megainformatic live chat
Начать беседу
X
 

Оставленные комментарии



fle game engine - движок для создания игр
fle game engine - движок для создания игр


Something: Unexplained 2 captive of desires / Нечто: Необъяснимое 2 в плену желаний
Костя Коробкин Комикс Коллекционное издание - 6 комиксов, 81 страница, 220 mp3 треков
megainformatic Размещение баннерной рекламы у нас
Время загрузки: 0,1315