|
09.12.2009, 17:22
|
#1
|
Бывалый
Регистрация: 17.05.2009
Адрес: Днепропетровск
Сообщений: 672
Написано 180 полезных сообщений (для 428 пользователей)
|
Интересный глюк
Я начал изучать ИИ. Сделал 3 типа существ. Пока только один наделен полным набором И , остольные тупо стоят на месте. Самое странное то что если создавать больше существ 3 типа то у 1ого типа все происходит быстрее. Т.е. он быстрее дохнит, голадает , устает и так далее. Чем больше третьих тем быстрее первый. ( нету никаких прямых намеков в коде на подобное)
|
(Offline)
|
|
09.12.2009, 17:30
|
#2
|
Элита
Регистрация: 16.01.2008
Сообщений: 1,800
Написано 958 полезных сообщений (для 3,833 пользователей)
|
Ответ: Интересный глюк
Вот вам типичный пример природного отбора.
На самом деле наверное у тебя аи прописаный через множество проходов If,и в их организации мог быть косяк...если нет,тогда незнаю в чем проблема.
|
(Offline)
|
|
09.12.2009, 17:45
|
#3
|
быдло
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений (для 1,489 пользователей)
|
Ответ: Интересный глюк
нету никаких прямых намеков в коде на подобное
|
ога, мы видем, нету намёков таких
|
(Offline)
|
|
09.12.2009, 18:10
|
#4
|
Бывалый
Регистрация: 17.05.2009
Адрес: Днепропетровск
Сообщений: 672
Написано 180 полезных сообщений (для 428 пользователей)
|
Ответ: Интересный глюк
В смысле в организации был косяк? у меня нету if create man3 then man1 faster. И вообще 1 и 3 связывает только ф-я развернуть если дистанция такова.
|
(Offline)
|
|
09.12.2009, 18:11
|
#5
|
Элита
Регистрация: 16.01.2008
Сообщений: 1,800
Написано 958 полезных сообщений (для 3,833 пользователей)
|
Ответ: Интересный глюк
Сядь нормально.....выпрямь спину.....правую руку поставь на монитор,и сосредоточся на своем коде...Я попробую телепатически считать его и увидеть в чем косяк.
|
(Offline)
|
|
Эти 14 пользователя(ей) сказали Спасибо Dzirt за это полезное сообщение:
|
Android (09.12.2009), Arton (18.04.2010), baton4ik (15.04.2010), BlackDragon (09.12.2009), Crayzi (15.01.2010), Dream (09.12.2009), G.A.D (09.12.2009), Horror (09.12.2009), KOPCAP (11.10.2010), L.D.M.T. (10.12.2009), newman (10.12.2009), Nex (15.12.2009), Randomize (09.12.2009), Taugeshtu (09.12.2009)
|
09.12.2009, 19:01
|
#6
|
Бывалый
Регистрация: 17.05.2009
Адрес: Днепропетровск
Сообщений: 672
Написано 180 полезных сообщений (для 428 пользователей)
|
Ответ: Интересный глюк
ты сам этого захотел
Graphics3D 1280,1024,32,2
SetBuffer BackBuffer()
SeedRnd MilliSecs()
Global camPitch#, camYaw#, camDist#, mxs#, mys#, mzs#
cam = CreateCamera()
CameraRange cam,1,10000
eye = CreateSphere()
EntityAlpha eye,0.7
PositionEntity eye,256,0,256
Type cubozavr
Field HP
Field hungry#
Field entity
Field fatigue#
Field speed#
Field keks
Field a
End Type
Type cilozavr
Field HP
Field hungry#
Field entity
Field fatigue#
Field speed#
End Type
Type Bush
Field HP#
Field entity
End Type
font = LoadFont( "arial cyr",24 )
SetFont font
CreateBush(150,150)
CreateCilozavr(266,266)
CreateCubozavr(256,256)
Repeat
If KeyDown(17) MoveEntity eye,0,0,.2
If KeyDown(30) TurnEntity eye,0,2,0
If KeyDown(32) TurnEntity eye,0,-2,0
mxs = MouseXSpeed()
mys = MouseYSpeed()
mzs = MouseZSpeed()
RotateCamOver(cam, eye)
If KeyHit(2) Then
CreateCubozavr(Rnd(0,512),Rnd(0,512))
EndIf
If KeyHit(3) Then
CreateCilozavr(Rnd(0,512),Rnd(0,512))
EndIf
If KeyHit(4) Then
CreateBush(Rnd(0,512),Rnd(0,512))
EndIf
UpdateCilozavr()
z = z + 1
UpdateWorld
RenderWorld
Color 0,0,25
Text 5,20,"Цифра 1 - создать куб : Цифра 2 - создать цилиндр"
Text 5,40,"Отдалять камеру колесиком, вразать зажтием ПКМ"
Text 5,60,"Используйте W A D(клавиши)"+ z
DeleteBush()
UpdateCubozavr()
vFPS=MilliSecs()
If vFPS-vLastFPS>1000
vShowFPS=vCurFPS
vLastFPS=vFPS
vCurFPS=0
Else
vCurFPS=vCurFPS+1
End If
Text 5,30,"FPS: "+vShowFPS
Flip(1)
Until KeyHit(1)
End
Function RotateCamOver(cam, entity)
If MouseDown(2) Then
camPitch# = camPitch + (mys/4)
camYaw# = camYaw - (mxs/4)
EndIf
camDist# = camDist# + (mzs/1)
If camDist <= 1 Then camDist = 1
PositionEntity cam, EntityX(entity,1), EntityY(entity,1), EntityZ(entity,1), 1
RotateEntity cam, camPitch, camYaw, 0
MoveEntity cam, 0, 0, -camDist
End Function
Function CreateCubozavr(x,z)
Local p.cubozavr = New cubozavr
p\entity = CreateCube()
p\hp = 100
p\hungry# = 0
p\fatigue# = 0
p\speed# = 0.05
p\keks = 0
p\a = -1
PositionEntity p\entity,x,0,z
End Function
Function UpdateCubozavr()
For p.cubozavr = Each cubozavr
For x.cilozavr = Each cilozavr
p\hungry# = p\hungry# + 0.0025
If p\hungry<20 Then EntityColor p\entity,0,255,0
If p\hungry>20 And p\hungry<80 Then EntityColor p\entity,0,0,255
If p\hungry>80 Then EntityColor p\entity,255,0,0
MoveEntity p\entity,0,0,p\speed# :
p\fatigue# = p\fatigue# + 0.01:
If a = 0 Then
p\keks = p\keks + 1 :
EndIf
If p\keks>10 Then
p\keks = 0
EndIf
If p\keks = 10 Then
TurnEntity p\entity,0,Rnd(-5,5),0,0
EndIf
If p\hungry<0 Then
p\hungry = 0
EndIf
If p\fatigue# > 10 And p\fatigue# <20 Then
p\speed# =0.04
EndIf
If p\fatigue# > 20 And p\fatigue# <30 Then
p\speed# =0.035
EndIf
If p\fatigue# > 30 And p\fatigue# <40 Then
p\speed# =0.03
EndIf
If p\fatigue# > 40 And p\fatigue# <50 Then
p\speed# =0.025
EndIf
If p\fatigue# > 50 And p\fatigue# <60 Then
p\speed# =0.02
EndIf
If p\fatigue# > 80 And p\fatigue# <90 Then
p\speed# =0.01
EndIf
If p\fatigue#>99 Then
p\speed# =0.0 : p\fatigue# = p\fatigue#+0.015
EndIf
If p\fatigue#>299 Then
p\fatigue# = 0
EndIf
UpdateBushCubozavrAndCilozavr()
Next
Next
End Function
Function CreateCilozavr(xx,z)
Local x.cilozavr = New cilozavr
x\entity = CreateCylinder()
x\hp = 100
x\hungry# = 0
PositionEntity x\entity,xx,0,z
End Function
Function UpdateCilozavr()
For x.cilozavr = Each cilozavr
x\hungry# = x\hungry# + 0.007
If x\hungry<20 Then EntityColor x\entity,0,255,0
If x\hungry>20 And x\hungry<80 Then EntityColor x\entity,0,0,255
If x\hungry>80 Then EntityColor x\entity,255,0,0
Next
End Function
Function CreateBush(x,z)
Local h.Bush = New Bush
h\entity = CreateCone()
h\hp# = 100
PositionEntity h\entity,x,0,z
EntityColor h\entity,20,200,0
RotateEntity h\entity,180,0,0
ScaleEntity h\entity,2,2,2
End Function
Function DeleteBush()
For h.bush = Each bush
Text 500,800,""+h\HP#
If h\HP# < 1 Then
FreeEntity h\entity : Delete h
EndIf
Next
End Function
Function UpdateBushCubozavrAndCilozavr()
For p.cubozavr = Each cubozavr
For x.cilozavr = Each cilozavr
For h.Bush = Each bush
If EntityDistance(p\entity,x\entity)<30 Then
p\a = p\a + 1
EndIf
If EntityDistance(p\entity,x\entity)>30 Then
p\a = 0
EndIf
If p\a = 7 And EntityDistance(p\entity,x\entity)<30 Then
PointEntity(p\entity,x\entity) : TurnEntity p\entity, 0,-180,0
EndIf
If p\hungry > 20 And p\hungry<80 And EntityDistance(p\entity,x\entity)>30 Then
UpdateBushCubozavr3()
EndIf
If p\hungry < 20 And p\hungry>0 And EntityDistance(p\entity,x\entity)>30 Then
UpdateBushCubozavr2()
EndIf
If EntityDistance(p\entity,h\entity)<2 Then
p\hungry = p\hungry - ((0.021)*2.5) : h\HP# = h\HP# - 0.1
EndIf
Next
Next
Next
End Function
Function UpdateBushCubozavr2()
For p.cubozavr = Each cubozavr
For h.Bush = Each Bush
If EntityDistance(p\entity,h\entity)<20 Then
PointEntity p\entity,h\entity
EndIf
If EntityDistance(p\entity,h\entity)<2 Then
p\hungry = p\hungry - 0.00
EndIf
Next
Next
End Function
Function UpdateBushCubozavr3()
For p.cubozavr = Each cubozavr
For h.Bush = Each Bush
If EntityDistance(p\entity,h\entity)<35 Then
PointEntity p\entity,h\entity
EndIf
Next
Next
End Function
Function UpdateBushCubozavr4()
For p.cubozavr = Each cubozavr
For h.Bush = Each Bush
If EntityDistance(p\entity,h\entity)<60 Then
PointEntity p\entity,h\entity
EndIf
Next
Next
End Function
|
|
(Offline)
|
|
09.12.2009, 19:04
|
#7
|
быдло
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений (для 1,489 пользователей)
|
Ответ: Интересный глюк
ты забыл сказать "у ну бл* помогли мне!!!"
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
09.12.2009, 19:07
|
#8
|
быдло
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений (для 1,489 пользователей)
|
Ответ: Интересный глюк
Function UpdateCubozavr()
For p.cubozavr = Each cubozavr
For x.cilozavr = Each cilozavr
p\hungry# = p\hungry# + 0.0025
|
это гениально....
когда научитесь думать и читать код, а не тупо пастить
П.С. самый лучший говнокод который я когда-либо видел , я бы даже сказал отборный
|
(Offline)
|
|
Эти 4 пользователя(ей) сказали Спасибо Dream за это полезное сообщение:
|
|
09.12.2009, 19:29
|
#9
|
Бывалый
Регистрация: 17.05.2009
Адрес: Днепропетровск
Сообщений: 672
Написано 180 полезных сообщений (для 428 пользователей)
|
Ответ: Интересный глюк
вуху
|
(Offline)
|
|
09.12.2009, 20:05
|
#10
|
Дэвелопер
Регистрация: 04.11.2009
Адрес: Украина, Днепропетровск
Сообщений: 1,480
Написано 662 полезных сообщений (для 1,985 пользователей)
|
Ответ: Интересный глюк
Насчет багов в коде
If EntityDistance(p\entity,h\entity)<2 Then
p\hungry = p\hungry - 0.00
EndIf
Next
Next
End Function
|
если тварь ест кустик то голод не увеличивается ты крут)
If EntityDistance(p\entity,x\entity)<30 Then
p\a = p\a + 1
EndIf
If EntityDistance(p\entity,x\entity)>30 Then
p\a = 0
EndIf
If p\a = 7 And EntityDistance(p\entity,x\entity)<30 Then
PointEntity(p\entity,x\entity) : TurnEntity p\entity, 0,-180,0
EndIf
|
Извини, а за что "a" отвечает, нигде в коде найти не могу
|
(Offline)
|
|
09.12.2009, 20:07
|
#11
|
Бывалый
Регистрация: 17.05.2009
Адрес: Днепропетровск
Сообщений: 672
Написано 180 полезных сообщений (для 428 пользователей)
|
Ответ: Интересный глюк
If EntityDistance(p\entity,x\entity)<30 Then
p\a = p\a + 1
EndIf
If EntityDistance(p\entity,x\entity)>30 Then
p\a = 0
EndIf
If p\a = 7 And EntityDistance(p\entity,x\entity)<30 Then
PointEntity(p\entity,x\entity) : TurnEntity p\entity, 0,-180,0
EndIf
|
сюда не смотрите... (это устарелый код)
|
(Offline)
|
|
09.12.2009, 20:08
|
#12
|
быдло
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений (для 1,489 пользователей)
|
Ответ: Интересный глюк
это если обьект кушает у него набирается "АА" и потом он сходить и сделает "АА". реализм ёпт
|
(Offline)
|
|
Эти 3 пользователя(ей) сказали Спасибо Dream за это полезное сообщение:
|
|
09.12.2009, 20:35
|
#13
|
Blitz's Shame !!
Регистрация: 31.03.2007
Сообщений: 3,639
Написано 832 полезных сообщений (для 2,013 пользователей)
|
Ответ: Интересный глюк
это если обьект кушает у него набирается "АА" и потом он сходить и сделает "АА". реализм ёпт
|
ахахаха... а за что отвечает:
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
09.12.2009, 20:40
|
#14
|
быдло
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений (для 1,489 пользователей)
|
Ответ: Интересный глюк
это если дэвид блейн: "Печеньки!!!"
|
(Offline)
|
|
09.12.2009, 22:36
|
#15
|
Бывалый
Регистрация: 17.05.2009
Адрес: Днепропетровск
Сообщений: 672
Написано 180 полезных сообщений (для 428 пользователей)
|
Ответ: Интересный глюк
короче нам всем впадло разгадывать загадку ускорение жизни кубика. Лучше полахать со смешного кекса. А еще воон с той и той строчки. Ну раз уже понесса флуд хотел спросить:
p\hungry# = p\hungry# + 0.0025
|
по4 это гениально? Причем тут копипаст...
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 08:49.
|