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


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

сайт megainformatic - Архив Новостей
              архив нов
подробнее...

Теги создание сайтов, создание игр, дизайн, игры, информатика, уроки photshop, php, c++, музыка, delphi, cms, робосайт
Статьи сайта
megainformatic - уроки delphi directx 8.1 3d - Основы Вращений и Управления камерой

megainformatic cms seo

megainformatic cms admin

megainformatic - Моделируем девушку в 3d - Подготовка 2d-эскиза тела человека

megainformatic cms stat kit

megainformatic cms seo

megainformatic - Теория и практика 3d игр - О Кватернионах

megainformatic - Теория и практика 3d игр - Основы теории векторов

megainformatic - Теория и практика 3d игр - Важные замечания

megainformatic - Моделируем девушку в 3d используя 3ds max - Подготовка к моделированию ноги - готовим ширму

megainformatic - Моделируем девушку в 3d используя 3ds max - Выполняем моделирование ноги

megainformatic - Моделируем девушку в 3d используя 3ds max - Улучшаем созданную модель женской ножки

megainformatic cms stat kit

megainformatic - Подводная лодка и подводный мир

megainformatic - megainformatic cms - Форма для смены шаблонов сайта - модуль template selector

megainformatic cms social

megainformatic cms social Руководство пользователя

megainformatic - megainformatic cms - Форма для смены шаблонов сайта - модуль template selector

модуль слайдера

ТЗ на сайт коллективных покупок

модуль slider

megainformatic cms seo

Поддержка сайтом нескольких языков - модуль multi lang

Поддержка сайтом нескольких языков - модуль multi lang

megainformatic - Моделируем девушку в 3d используя 3ds max - другие статьи сборника статей - обзор

установка нового шаблона в joomla 2.5.4

Описание продукта megainformatic cms social

Описание продукта megainformatic cms social

megainformatic - ТЗ на сайт по аналогии rys-stroi.ru

megainformatic cms groupon

megainformatic - дизайн сайта строительной компании УЛЬТРА-СТРОЙ

megainformatic - Тестирование подключения платежной системы

megainformatic - Выпадающее окно регистрации на сайте

megainformatic - Тестирование подключения к платежной системе с использованием скрипта эмулятора

megainformatic - Модуль для регистрации пользователя на сайте

megainformatic - Код для модуля регистрации пользователя на сайте

megainformatic - Быстрый подсчёт ключевых слов в статье

megainformatic - Модуль подсчёта ключевых слов в статье

megainformatic - Онлайн-сервис для подсчёта статистики ключевых слов

megainformatic - Пишем слайдер на javascript с нуля

megainformatic - Логика работы слайдера на javascript

megainformatic - Пишем свою соц. сеть - модуль предложений для webjob

megainformatic - Пишем свою соц. сеть - модуль предложений для webjob - часть реализации для личного кабинета

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

megainformatic - Тестирование подключения к платежной системе ЕДИНЫЙ КОШЕЛЕК (w1.ru) с использованием скрипта эмулятора

megainformatic - Пишем свою cms - шаг 1

megainformatic - Пишем свою cms - шаг 2

megainformatic - Пишем свою cms - шаг 3

megainformatic - бесплатная флеш игра freeway fury 2 - разработчик Serius Games

megainformatic - бесплатные флеш игры сторонних разработчиков

megainformatic - Как я осваивал Flash

megainformatic - Список уроков на тему создания flash приложений и игр

megainformatic - Как я осваивал Flash - шаг 2 - Основы создания простейших flash - игр

проект портала Идеи Комфорта

megainformatic - игра Веселый Буквоежка

megainformatic - игра Веселый Буквоежка

подробнее

Пишем слайдер на javascript с нуля

Доброго Вам времени суток, странник интернета !!!

Я давно хотел рассказать о том, как можно создать свой слайдер используя javascript - технологию.

Вы скажете - слайдеров уже готовых в интернете - МОРЕ.

Согласен с Вами. Но все они написаны чужой рукой, а значит знания о том, как они писались остаются за бортом :((

Я же хотел бы пополнить и расширить свои и Ваши знания по языку javascript, его применению и главное - сделать что-нибудь полезное, а не демонстрировать слишком "абстрактные" примеры. ;)

В самом низу страницы над футером Вы можете лицезреть готовый, работающий слайдер, показывающий различные продукты моего сайта, которые я делал в разное время. :)))

Итак, рассмотрим какой html-код требуется для отображения слайдера и что должен делать с этим кодом javascript, чтобы этот код превратился в слайдер.

Если посмотреть код html, относящийся к слайдеру, который отображает браузер, то мы увидим следующее

<div id="gl_slider" style="text-align: center;">

<div id="gl_slider_container">

<div class="timedSlideshow jdSlideshow" id="mySlideshow" style="display: block; "><a class="global" href="">

<div class="slideElement" style="position: absolute; left: 0px; top: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; background-image: url('.$slider_dir.'/images/banner/05.gif); visibility: hidden; opacity: 0; background-position: 50% 50%; "></div>

<div class="slideElement" style="position: absolute; left: 0px; top: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; background-image: url('.$slider_dir.'/images/banner/fl_lessons.jpg); visibility: hidden; opacity: 0; background-position: 50% 50%; "></div>

<div class="loadingElement" style="display: none; "></div><div style="visibility: visible; opacity: 0.7; height: 40px; " class="slideInfoZone"><h2>продукты сайта</h2><p>все продукты нашего сайта</p></div></a> </div> <script type="text/javascript">

countArticle = 0;

var mySlideData = new Array();

mySlideData[countArticle++] = new Array(

'modules/slider/images/banner/05.gif',

'http://localhost/megainformatic_ru/?page=40&banner',

'Уроки Photoshop',

'Если Вы хотите изучить профессиональные методы работы в Adobe Photoshop'

);

mySlideData[countArticle++] = new Array(

'modules/slider/images/banner/ph_draw_and_anim.jpg',

'http://localhost/megainformatic_ru/?page=66&banner',

'Уроки Photoshop - Рисуем и анимируем',

'учимся рисовать и анимировать в photoshop'

);

</script>

<script type="text/javascript">

function startSlideshow() {

var slideshow = new timedSlideShow($('mySlideshow'), mySlideData);

}

addLoadEvent(startSlideshow);

</script>

</div>

</div>

Исходя из этого кода можно сделать такой вывод - в блоке div с id mySlideshow размещаются все картинки слайд-шоу в виде блоков div класса slideElement.

Как можно заметить все они имеют атрибут visibility: hidden;
Т. е. скрытый - поэтому они не отображаются.

А вся роль скрипта слайдера сводится к тому, чтобы при возникновении определенного события: от таймера или от нажатия на элементы управления слайдером, следующая картинка слайдера становилась видимой, а предыдущая снова скрытой.

Как видите в теории это достаточно просто.

Посмотрим что имеет место в скрипте фактически.

Сначала выполняются некоторые подготовительные операции -

countArticle = 0;

var mySlideData = new Array();

mySlideData[countArticle++] = new Array(

'modules/slider/images/banner/05.gif',

'http://localhost/megainformatic_ru/?page=40&banner',

'Уроки Photoshop',

'Если Вы хотите изучить профессиональные методы работы в Adobe Photoshop'

);

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

Адрес изображения

Ссылка для перехода по клику на данное изображение

А также некоторые пояснительные надписи

Затем происходит следующее -

function startSlideshow() {

var slideshow = new timedSlideShow($('mySlideshow'), mySlideData);

}

addLoadEvent(startSlideshow);

Т. е. внутри обработчика функции startSlideshow создается экземпляр класса timedSlideShow и ему передаются параметры -

id блока набора элементов слайдера

и массив описаний к этим элементам.

Далее данная функция добавляется в обработчик события onLoad для загрузчика onLoad страницы.

Это стандартный обработчик, с которого начинают свою работу многие javascript-приложения.

В нашем случае таким приложением как раз является скрипт слайдера.

То что мы рассматривали выше - это так называемая подготовительная часть работы, которая описывает html код слайдера вместе с его содержимым (набором картинок), а также вызов метода для создания яваскрипт-объекта слайдера.

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

На самом деле их всего 3:

<script src="<?php echo $slider_dir; ?>/inc/mootools.release.83.js" type="text/javascript"></script>

<script src="<?php echo $slider_dir; ?>/inc/timed.slideshow.js" type="text/javascript"></script>

<link rel="stylesheet" href="<?php echo $slider_dir; ?>/inc/jd.slideshow.css" type="text/css" media="screen">

файл mootools.release.83.js - представляет из себя подключенную, используемую слайдером библиотеку mootools.

файл timed.slideshow.js - содержит собственно логику работы слайдера.

ну и наконец файл jd.slideshow.css - это собственно описание элементов внешнего вида слайдера.

Поскольку все эти 3 файла Вы без каких-либо ограничений можете скачать себе просто путём сохранения данной страницы из браузера на свой компьютер, то я соответственно не буду здесь приводить специально ссылки на получение этих файлов.

Нам с вами остается собственно кратко познакомиться с логикой работы слайдера (т. е. прокомментировать код, описанный в файле timed.slideshow.js).

Этим Мы с вами займёмся в следующей статье - логика работы слайдера на javascript
подробнее

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

Как создать игру ? - Программируем сами.

Рассмотрение программирования игр под DirectX 9c на C++ с использованием среды разработки MSVS 2005 или выше.

 
     
  [содержание] [назад] [страница 1] [далее]  
     
  Vertices - Вершины - страница 1  
     
 

Итогом вставки новой созданной иконки должно стать для Вас сохранение изменений в проект (кнопка Save All на панели инструментов MSVS) и выполнением сборки проекта - по клавише [F7]. Еще раз напомню, что для сборки отладочной версии Debug нужно выбрать соответствующую конфигурацию проекта - в панели инструментов есть соответствующий выпадающий список.

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

 
     
 

Если Вы уже вдоволь наигрались с проектом CreateDevice - сохраняем все внесенные изменения и закрываем проект File > Close Solution.

Переходим к примерам Vertices, Matrices, Lights, Textures, Meshes

 
     
  Все настойки в этих проектах нужно делать абсолютно аналогично, как это описывалось на протяжении наших предыдущих уроков, а более конкретно в уроке - Самый первый шаг - страница 3  
     
 

В примере Vertices рассматривается как работать с вершинами в 3d-пространстве.

Теперь уже наше приложение будет выполнять более полезную работу - выведет на экран разноцветный треугольник.

 
     
  пример Vertices  
     
  По сравнению с предыдущим примером CreateDevice здесь уже рассматривается как создается и инициализируется вершинный буфер для модели треугольника. Треугольник хоть и плоский, но это уже модель, в примере Matrices показано как создать его вращение вокруг своей оси (по оси Y).  
     
 

Функция wWinMain включает использование новой функции -

// Create the vertex buffer
if( SUCCEEDED( InitVB() ) )
{

//...

}

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

// Enter the message loop
MSG msg;
ZeroMemory( &msg, sizeof( msg ) );
while( msg.message != WM_QUIT )
{
if( PeekMessage( &msg, NULL, 0U, 0U, PM_REMOVE ) )
{
TranslateMessage( &msg );
DispatchMessage( &msg );
}
else
Render();
}

Т. е. если сообщения поступают в приложение, они обрабатываются, если нет - выполняется функция Render - другими словами отрисовка выполняется во время нахождения приложения в состоянии бездействия Idle - это и есть то состояние, когда нет системных сообщений, адресованных Вашему приложению.

 
     
 

Функция InitVB

HRESULT InitVB()
{
// инициализируем вершины создаваемого треугольника

//заметьте, что цвет каждой вершины в формате AARRGGBB задается именно здесь!

//о формате задания цвета и определении конкретного цвета мы говорили в уроке - CreateDevice страница 2
CUSTOMVERTEX vertices[] =
{
{ 150.0f, 50.0f, 0.5f, 1.0f, 0xffff0000, }, // x, y, z, rhw, color
{ 250.0f, 250.0f, 0.5f, 1.0f, 0xff00ff00, },
{ 50.0f, 250.0f, 0.5f, 1.0f, 0xff00ffff, },
};

// Создаем вершинный буфер. Здесь мы выделяем достаточно памяти для вершин
// (из буфера по-умолчанию) для хранения 3 вершин в собственном формате. Мы также
// определяем FVF, так что вершинный буфер знает, какие данные он хранит.

if( FAILED( g_pd3dDevice->CreateVertexBuffer( 3 * sizeof( CUSTOMVERTEX ),
0, D3DFVF_CUSTOMVERTEX,
D3DPOOL_DEFAULT, &g_pVB, NULL ) ) )
{
return E_FAIL;
}

// Теперь мы заполняем вершинный буфер. Для этого вызываем Lock() для VB
// для получения доступа к вершинам. Этот механизм необходим, поскольку
// буферы могут располагаться в памяти графического адаптера.

VOID* pVertices;
if( FAILED( g_pVB->Lock( 0, sizeof( vertices ), ( void** )&pVertices, 0 ) ) )
return E_FAIL;
memcpy( pVertices, vertices, sizeof( vertices ) );
g_pVB->Unlock();

return S_OK;
}

 
     
 

Функция Cleanup теперь включает освобождение объекта вершинного буфера.

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

// начало сцены
if( SUCCEEDED( g_pd3dDevice->BeginScene() ) )
{
// Рисуем треугольник из вершин в буфере. Процесс включает несколько

// шагов. Мы передаем вершины в поток, поэтому первое - это определение
// источника для этого потока, это и есть наш вершинный буфер. Затем
// нам нужно позволить D3D узнать какой вершинный шейдер использовать.

// Полнофункциональные, настраиваемые вершинные шейдеры - это
// отдельная тема для разговора, но в большинстве случаев вершинный шейдер -
// просто FVF (Flexible Vertex Format), так что D3D узнает какой тип вершин
// мы применили. Наконец, Мы вызываем функцию DrawPrimitive() которая

// выполняет фактическое рисование
// нашей геометрии (в данном примере - всего лишь 1 треугольник).

g_pd3dDevice->SetStreamSource( 0, g_pVB, 0, sizeof( CUSTOMVERTEX ) );
g_pd3dDevice->SetFVF( D3DFVF_CUSTOMVERTEX );
g_pd3dDevice->DrawPrimitive( D3DPT_TRIANGLELIST, 0, 1 );

// конец сцены
g_pd3dDevice->EndScene();
}

 
     
  Функция MsgProc не включает обработки сообщения WM_PAINT, потому что все d3d-приложения должны выполнять отрисовку находясь в состоянии Idle.  
     
 

Обратите внимание также на начало модуля Vertices.cpp

//-----------------------------------------------------------------------------
// Глобальные переменные
//-----------------------------------------------------------------------------

LPDIRECT3D9 g_pD3D = NULL; // используется для создания D3DDevice
LPDIRECT3DDEVICE9 g_pd3dDevice = NULL; // наше устройство отрисовки
LPDIRECT3DVERTEXBUFFER9 g_pVB = NULL; // буфер для хранения вершин

// структура определяющая собственный тип вершин
struct CUSTOMVERTEX
{
FLOAT x, y, z, rhw; // преобразованная позиция вершины
DWORD color; // цвет вершины
};

// наш настраиваемый тип вершин FVF, который определяет какой тип вершин

// используется для их описания
#define D3DFVF_CUSTOMVERTEX (D3DFVF_XYZRHW|D3DFVF_DIFFUSE)

 
     
  Чтобы проверить насколько Вам ясно как работать с вершинами - попробуйте вывести вместо треугольника - квадрат. Цвета вершин также измените.  
     
  изображение модели квадрата  
     
 

Сначала посмотрите на приведенный рисунок и определите как были описаны координаты для треугольника:

150.0f, 50.0f - это вершина, отмеченная на рисунке цифрой 1,

250.0f, 250.0f - вершина номер 2 и

50.0f, 250.0f - вершина номер 3. Заметьте, что вершины определены в порядке обхода по-часовой стрелке. Это правило для определения видимых граней модели. Если вершины оказываются повернуты к экрану той гранью, где они следуют против часовой стрелки, то такая грань считается невидимой для зрителя стороной и не отрисовывается !

 
     
 

Теперь можно легко определить вершины для нашего квадрата -

CUSTOMVERTEX vertices[] =
{
{ 50.0f, 50.0f, 0.5f, 1.0f, 0xffff0000, },

{ 250.0f, 50.0f, 0.5f, 1.0f, 0xff00ff00, },

{ 250.0f, 250.0f, 0.5f, 1.0f, 0xff00ffff, },

{ 50.0f, 250.0f, 0.5f, 1.0f, 0xff00ffff, },
};

 
     
 

Однако даже правильно изменив количество вершин с 3 на 4 и правильно указав это число в строке кода

if( FAILED( g_pd3dDevice->CreateVertexBuffer( 4 * sizeof( CUSTOMVERTEX ),
0, D3DFVF_CUSTOMVERTEX,
D3DPOOL_DEFAULT, &g_pVB, NULL ) ) )

И указав количество отрисовываемых примитивов в функции Render в строке -

g_pd3dDevice->DrawPrimitive( D3DPT_TRIANGLELIST, 0, 2 );

в количестве 2 вместо 1

 
     
  Результатом будет -  
     
  попытка рисования квадрата 1  
     
  А всё дело в том, что D3D-приспособлен понимать только треугольные грани - состоящие из треугольников. Это сделано из-за того, что три вершины образующие треугольную грань всегда находятся в одной плоскости и следовательно так проще обсчитывать прорисовку сложных моделей.  
     
  Значит нам, для создания модели квадрата, состоящего из 2х треугольных граней нужно использовать не 4, а 6 вершин -  
     
 

CUSTOMVERTEX vertices[] =
{
{ 50.0f, 50.0f, 0.5f, 1.0f, 0xffff0000, },

{ 250.0f, 50.0f, 0.5f, 1.0f, 0xff00ff00, },

{ 250.0f, 250.0f, 0.5f, 1.0f, 0xff0000ff, },

{ 250.0f, 250.0f, 0.5f, 1.0f, 0xff00ffff, },

{ 50.0f, 250.0f, 0.5f, 1.0f, 0xffffff00, },

{ 50.0f, 50.0f, 0.5f, 1.0f, 0xff0000ff, },


};

 
     
  попытка рисования квадрата 2  
     
  Важен и порядок, в котором определена вторая тройка вершин. Если они будут определены в другом порядке, то вторая грань (второй треугольник) выведен не будет. Попробуйте изменить порядок второй тройки вершин и убедитесь в этом сами.  
     
  На рисунке также отчетливо видно какая из вершин в какой цвет окрашена, так что будет более понятно где и какая вершина. На первых порах задайте для каждой из вершин свой цвет - тогда легче будет увидеть где нужная вершина.  
     
     
     
     
     
  [содержание] [назад] [страница 3] [далее]  
     
подробнее



107 океан


просмотров: 543




106 океан


просмотров: 549




105 ria pc game темная сторона


просмотров: 10018




104 ria pc game видеообзор игры часть 9


просмотров: 10019


подробнее

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

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

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

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

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

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

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

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

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

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

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


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

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? 1
Узнал 5 - 6? 1




Ниже привожу полный исходный код программы на языке 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';

Разработка программ на c++

В свете современного мира интерес представляет разработка программ следующих направлений:

Вирусные и антивирусные программы.
Вирусные - для того, чтобы смоделировать возможные уязвимости современных систем, а антивирусные - естественно для защиты от современных вирусов, как смоделированных, так и реально существующих.

Программы ИИ (искусственный интеллект), самообучение и накопление знаний по различным отраслям знаний.

Итак, я ставлю ЗАДАЧУ: Написать антивирус.

Что для этого нужно ?

Сначала решим какой минимальный функционал необходим.

Написать сразу же Dr Web или Kasperky как Вы сами понимаете невозможно. Эти программы создавались профессионалами и не один десяток лет.

А у нас в распоряжении пока ни опыта, ни знаний.

Наш антивирус - VARVE - будет иметь следующий минимальный функционал -

1) Окно, обрадающее обычным поведением окна windows-приложения.

2) Рабочее пространство, в котором например могут быть такие элементы -

антивирус varve

Т. е. что-то похожее на Dr Web CureIt, в котором можно будет выполнить проверку указанных файлов или папок по требованию.

Теперь подумаем какой минимальный функционал нам потребуется для решения поставленной задачи.



Для начала можно сделать прототип антивируса с проверкой файлов на наличие вирусов - антивирусный сканер.

Он должен выполнять проверку файлов на указанных дисках или в папках.

Таким образом должно быть реализовано:

1) открытие любого файла на предмет исследования его содержимого;

1.1) Кнопки выполнения проверки, паузы, остановки;

1.2) Кнопки реакции на зараженный файл - лечение, изоляция (перемещение в папку карантина с переименованием в неисполнимый), пропуск (игнорирование)

1.3) Окно для выбора проверяемого диска, папки или файла (файлов)

2) механизм определения вирусов по сигнатурам;

3) база известных вирусов;

4) механизм анализа содержимого исследуемого файла на определение наличия в нём заражения по сигнатуре;

5) написание небольших тестовых и реальных (но не приносящих вреда) вирусов.

6) проверка срабатывания на обнаружение тестовых вирусов и меры принимаемые программой: оповещение, изоляция зараженного или вирусного файла, предложение пользователю выполнить какие-то действия в программе или в системе.

Как видим поставленные задачи вполне реализуемы.

Тогда приступим к их решению.

Первым делом нужно создать приложение Windows-MFC. О том как это сделать, я уже упоминал в статье - Программируем на C++ с использованием MFC.

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

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



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


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