GotAI.NET

Форум: Проблемы искусственного интеллекта

 

Регистрация | Вход

 Все темы | Новая тема Стр.1 (1)   Поиск:  
 Автор Тема: Очень мне интересно. Вот такай подход, у кого нибудь был?
гость
95.83.129.*
Очень мне интересно. Вот такай подход, у кого нибудь был?
Добавлено: 15 дек 10 19:08
Программу писал в этом редакторе. http://petriv.ho.ua/algo/rus/algo_rus.zip Школьный язык программирования, на основе языка паскаль. Думаю проблем разобраться с языком, не у кого не возникнет. На вопросы по коду отвечу.
Program NoName; 

Var
a: array [2 ..18 ] of string;
akt,pas,szd,m:boolean;
razv,x,y,j:integer;
temper,golod:integer;

Procedure ZAP(i:integer);
{Записывает события и "возможные события"}

Var
n:integer;
Begin
Repeat
n:=Pos('1', a[i]);
If n<>0 then
Begin
a[i][n]:='2';
end
until n=0;
Repeat
n:=Pos('0', a[i]);
If n<>0 then
Begin
a[i][n]:='3';
end
until n=0;
end;

Procedure CTR(i:integer);
{Стерает происшедшие события}

Var
n:integer;
Begin
For n:=3 to 18 do
If a[n][i*2]='2' then
a[n][i*2]:='1';
end;
{------------------------------}
{------------------------------}

Procedure BLK(i:integer);
{Блокирует невозможные события}

Var
n:integer;
Begin
For n:=3 to 18 do
If a[n][i*2]='2' then
a[n][i*2]:='4';
end;
{------------------------------}
{------------------------------}

Procedure PRO(i:integer);
{Проверяет наличие событиий}

Var
n:integer;
s:string;
Begin
s:='';
akt:=false;
pas:=false;
szd:=false;
For n:=3 to 18 do
s:=s+a[n][i*2];
If Pos('1', s)<>0 then
pas:=true;
If Pos('2', s)<>0 then
akt:=true;
If Pos('3', s)<>0 then
szd:=true;
end;
{------------------------------}
{------------------------------}

Procedure SOZ(i:integer);
{создаёт событие из "возможного события"}

Var
n,n1:integer;
Begin
If (a[2][i*2]='3') or (a[2][i*2]='4') then
Begin
For n:=3 to 18 do
If a[n][i*2]='3' then
Begin
a[n][i*2]:='2';
Repeat
n1:=Pos('3', a[n]);
If n1<>0 then
a[n][n1]:='0';
until n1=0;
end;
If (a[2][i*2]='3') then
a[2][i*2]:='0';
end;
end;
{------------------------------}
{------------------------------}

Procedure VIV;
{Вывод массива памяти}

Var
t:integer;
Begin
Font(8 ,0 ,600 );
TextColor( 200,0,0 );
MoveTo(0,15);
For t:=2 to 18 do
WriteLn( a[t] );
end;
{------------------------------}
{------------------------------}

Procedure UDO(j:integer);
{Удоляет лишние "возможные события"}

Var
n,n1:integer;
Begin
For n:=3 to 18 do
If (a[n][j*2]='1') or (a[n][j*2]='2') then
Repeat
n1:=Pos('3', a[n]);
If n1<>0 then
a[n][n1]:='0';
until n1=0;
end;
{------------------------------}
{------------------------------}

Procedure DV1; {Движения в среде}

Begin
WriteLn( 'd' );
If razv=1 then
x:=x-10
else
x:=x+10;
m:=true;
end;

Procedure DV2;

Begin
WriteLn( 'r' );
{y:=y+10;}
If razv=1 then
razv:=0
else
razv:=1;
m:=true;
end;
{------------------------------}
{------------------------------}

Procedure RIS;

Begin
Brush( 1, 255, 255, 255 );
Pen( 3,255,255,255 );
Rectangle( 150, 180, 400, 650 );
Pen( 1,250,100,70 );
Rectangle(150 ,180 ,400 ,250 );
Font(20 ,0 ,800 );
TextColor( 250,100,70 );
MoveTo(230,200);
WriteLn( 'ПИЩА' );
Pen( 1,150,100,200 );
Rectangle( 150,580 ,400 ,650 );
TextColor( 150,100,200 );
MoveTo(225,595);
WriteLn( '' );
end;
{------------------------------}
{------------------------------}

Begin
m:=false;
RIS;
razv:=1;
x:=600;
y:=110;
golod:=200;
temper:=0;
{|------Память-----|}
a[2]:= ' 4 4 3 3 3 3 3 3 3 3 3 3';
a[3]:= ' 4 4 0 0 0 0 0 0 0 0 0 0';
a[4]:= ' 4 4 0 0 0 0 0 0 0 0 0 0';
a[5]:= ' 4 4 0 0 0 0 0 0 0 0 0 0';
a[6]:= ' 4 4 0 0 0 0 0 0 0 0 0 0';
a[7]:= ' 4 4 0 0 0 0 0 0 0 0 0 0';
a[8]:= ' 4 4 0 0 0 0 0 0 0 0 0 0';
a[9]:= ' 4 4 0 0 0 0 0 0 0 0 0 0';
a[10]:=' 4 4 0 0 0 0 0 0 0 0 0 0';
a[11]:=' 0 0 0 0 0 0 0 0 0 0 0 0';
a[12]:=' 0 0 0 0 0 0 0 0 0 0 0 0';
a[13]:=' 0 0 0 0 0 0 0 0 0 0 0 0';
a[14]:=' 0 0 0 0 0 0 0 0 0 0 0 0';
a[15]:=' 0 0 0 0 0 0 0 0 0 0 0 0';
a[16]:=' 0 0 0 0 0 0 0 0 0 0 0 0';
a[17]:=' 0 0 0 0 0 0 0 0 0 0 0 0';
a[18]:=' 0 0 0 0 0 0 0 0 0 0 0 0';
Repeat
{--События среды--}
If m=true then
Begin
temper:=temper+1;
golod:=golod-1;
end;
m:=false;
If (x>180)and(x<250) then
golod:=200;
If golod>100 then
ZAP(4)
else
ZAP(6);
If (x<=400) then
zap(9);
If (x>400) then
zap(10);
If razv=1 then
zap(3)
else
zap(5);
{--события среды--}
For j:=1 to 12 do
Begin
PRO(j);
If (szd=true) then
Begin
SOZ(j);
end;
If(akt=true)or(pas=true) then
If(szd=false) then
Begin
UDO(j);
end;
end;
For j:=1 to 12 do
Begin
PRO(j);
If(akt=true) and (pas=true) then
CTR(j);
end;
For j:=3 to 12 do
Begin
PRO(j);
If(akt=true) and (pas=false) and(j>2) then
Begin
CTR(j);
ZAP(j+8);
end;
end;
VIV;
{--Действия в среде--}
For j:=1 to 2 do
Begin
PRO(j);
If(akt=true) then
Begin
If j=1 then
Begin
DV1;
If ((razv=1)and (x<190)) or ((razv=0)and (x>600)) then
Begin
BLK(j);
end ;
CTR(j);
end;
If j=2 then
Begin
DV2;
If ((razv=1)and (x<190)) or ((razv=0)and (x>600)) then
Begin
BLK(j);
end;
CTR(j);
end;
end;
end;
{--дейсвия в среде--}
RIS;
Pen( 3,150,250,70 );
Brush( 0,0,0,0 );
Ellipse( 150+y,x ,150+y+30 ,x+30 );
TextColor( 0,0,0 );
MoveTo(180,50);
Font(10 ,0 ,800 );
WriteLn( 'X=',x:3,' Y=',y:3,' razv=',razv,' golod=',golod:4,' temper=',temper:4 );
MoveTo(170,80);
until j<0;
end.
[Ответ][Цитата]
NO.
Сообщений: 10364
На: Очень мне интересно. Вот такай подход, у кого нибудь был?
Добавлено: 16 дек 10 17:00
Планирование, перебор вариантов, поиск с возвратами.
Программа очень небольшая, наверняка уже были ВСЕ возможные программы такого размера.
Я могу написать генерацию и испытания таких программок. Они будут работать даже если я не знаю что, как и зачем они делают. За секунду будут писаться и выбрасываться тысячи штук. Понимаете какова цена этой, чего-то в районе 0,0000001 копейки.
Дальше нужно распознавание. Вот например у Вас проблема найти подходящее название и посмотреть в гугле было ли такое у кого-нибудь раньше. Вы с ней не справляетесь, поэтому спрашиваете в форуме, то есть написать тоже не сможете.
[Ответ][Цитата]
гость
95.83.129.*
На: Очень мне интересно. Вот такай подход, у кого нибудь был?
Добавлено: 16 дек 10 17:53
Цитата:
наверняка уже были ВСЕ возможные программы такого размера

Сомнительно или я не понял.
Цитата:
Я могу написать генерацию и испытания таких программок. Они будут работать даже если я не знаю что, как и зачем они делают.

Тоже не всё ясно. Эта программа находит ,несовсем мне понятное, но решение конкретной поставленной задачи. Измениться задача измениться решение. Давольно гибко. Зачем их генерировать пачками.
Цитата:
За секунду будут писаться и выбрасываться тысячи штук.

У Вас за один такт процессора будет генерироваться целая программа?
Цитата:
Дальше нужно распознавание. Вот например у Вас проблема найти подходящее название...

Как связаны два эти предложения. И зачем во втором обзаце, повторять мой вопрос не давая ответа.
[Ответ][Цитата]
гость
213.227.201.*
На: Очень мне интересно. Вот такай подход, у кого нибудь был?
Добавлено: 16 дек 10 18:15
Цитата:
Автор: гость 95.83.129.*
Как связаны два эти предложения
Рекуррентно.
[Ответ][Цитата]
гость
95.83.129.*
На: Очень мне интересно. Вот такай подход, у кого нибудь был?
Добавлено: 16 дек 10 18:21
[Ответ][Цитата]
NO.
Сообщений: 10364
На: Очень мне интересно. Вот такай подход, у кого нибудь был?
Добавлено: 16 дек 10 19:11
Это "довольно гибко" Вам обойдется рублей в 500, а стоит будет ничего. Поэтому Вы просто не будете этого делать. Соответственно вместо заявленного "довольно гибко" на деле окажется "никак".
[Ответ][Цитата]
гость
95.83.129.*
На: Очень мне интересно. Вот такай подход, у кого нибудь был?
Добавлено: 16 дек 10 19:12
Цитата:
Планирование, перебор вариантов, поиск с возвратами.

Если Вы предлагаети искать по этим словам. То смысла нет. В программе этого нет.
[Ответ][Цитата]
гость
95.83.129.*
На: Очень мне интересно. Вот такай подход, у кого нибудь был?
Добавлено: 16 дек 10 19:25
Цитата:
Это "довольно гибко" Вам обойдется рублей в 500.

Ну усложните условия среды, добавте условия движения по оси Х, усложните возможность разваротов, увеличпе массив и длину строк в нём. И получиться "довольно гибко". Программа простая как лапата. За вечер можно разабраться и усложнить. Самое примитивное использование- по достижению, отслеживаемого параметра, определённого значения, курсор перемещается в определённую облость, с которой связано действие.
[Ответ][Цитата]
гость
185.220.101.*
На: Очень мне интересно. Вот такай подход, у кого нибудь был?
Добавлено: 13 фев 18 8:36
Цитата:
Автор: гость

Цитата:
Автор: NO.
Программа очень небольшая, наверняка уже были ВСЕ возможные программы такого размера.
Я могу написать генерацию и испытания таких программок. Они будут работать даже если я не знаю что, как и зачем они делают.

Сомнительно или я не понял.
не слушайте местного юродивого NO, или как его ещё называют "Вечно Сидящий у Реки", дятял не вкурсе что над бэк пропом который уместится в 70 строк кода всё человечество мозловало 20 лет, а тёт 300 строк, в 300 строк кода можно гугл запихнуть, основной алгоритм, если постараться м получится строчка кода = миллиард баксов

NO - нищий неудачник, у него как у телок одни "сложности" и всё дешевое, как его галимая жизнь
[Ответ][Цитата]
NO.
Сообщений: 10364
На: Очень мне интересно. Вот такай подход, у кого нибудь был?
Добавлено: 14 фев 18 0:14
иди работать, солнце уже высоко
[Ответ][Цитата]
Обыватель
Сообщений: 174
На: Очень мне интересно. Вот такай подход, у кого нибудь был?
Добавлено: 17 фев 18 0:48
Вы где сие отрыли.
Я уже и не помню в чём смысл этой программы. Фигасе я упёртым был.
[Ответ][Цитата]
 Стр.1 (1)