код для заполнения компьютера мусором по 1КБ
Set WshShell=WScript.CreateObject(”WScript.Shell”)
do C=WshShell.Run(”notepad”,true) loop
что?
этот код будет запускать бесконечное количество блокнотов
Так можно создать и более мощные приложения, типа Винды, офиса или игр типа НФС или наподобие.
вдвоем?
ты не представляешь объем работ
простейший симулятор частиц
без инерции ибо недописано
esc - выход, m - режим, +/- регулирует силу
particles.exe
; particles
; определяем параметры дисплея
ExamineDesktops()
Global DesktopW = DesktopWidth(0)
Global DesktopH = DesktopHeight(0)
Global DesktopD = DesktopDepth(0)
Global DesktopF = DesktopFrequency(0)
; загружаем шрифт для вывода инфы (не обязательно)
If Not LoadFont(1,"Arial",12,#PB_Font_Bold)
DisplayInfo = #False
Else
DisplayInfo = #True
EndIf
; берем количество частиц из параметра
Global numParticles = Val(ProgramParameter())-1
If numParticles < 0
numParticles = 9999
EndIf
; открываем окно
If Not InitSprite() Or Not InitKeyboard() Or Not InitMouse() : End : EndIf
;OpenWindow(1,0,0,DesktopW,DesktopH,"particles!",#PB_Window_BorderLess|#PB_Window_ScreenCentered|#PB_Window_Maximize)
;SetActiveWindow(1)
OpenScreen(DesktopW,DesktopH,DesktopD,"particles!",#PB_Screen_SmartSynchronization,DesktopF)
; создаем спрайт-курсор
;CreateSprite(1,5,5)
;StartDrawing(SpriteOutput(1))
;Box(0,0,5,5,$aaaaaa)
;StopDrawing()
; задаем начальные рандомные координаты частиц
Global Dim ParticleCoordsX(numParticles)
For i=0 To numParticles
ParticleCoordsX(i) = Random(DesktopW)
Next
Global Dim ParticleCoordsY(numParticles)
For i=0 To numParticles
ParticleCoordsY(i) = Random(DesktopH)
Next
Global mX,mY
Global PointerMode = 0
Global forceR = 200
; физика
Procedure DoPhysics()
For i=0 To numParticles
; элемент ВНЕЗАПНОСТИ
If Random(10) > 2
; если частица в радиусе окружности
If Pow(forceR,2) >= Pow(ParticleCoordsX(i)-mX,2) + Pow(ParticleCoordsY(i)-mY,2)
; если расстояние до курсора по оси Х больше чем по оси У
If Pow(mX-ParticleCoordsX(i),2) >= Pow(mY-ParticleCoordsY(i),2)
; если курсор справа
If mX > ParticleCoordsX(i)
; если курсор притягивает то отдаляемся от него на два пикселя, иначе приближаемся
; дальше по аналогии
If PointerMode = 0 : ParticleCoordsX(i)+2 : Else : ParticleCoordsX(i)-2 : EndIf
If mY > ParticleCoordsY(i)
If PointerMode = 0 : ParticleCoordsY(i)+1 : Else : ParticleCoordsY(i)-1 : EndIf
ElseIf mY = ParticleCoordsY(i)
Else
If PointerMode = 0 : ParticleCoordsY(i)-1 : Else : ParticleCoordsY(i)+1 : EndIf
EndIf
; если на том же уровне (ничего не делаем)
ElseIf mX = ParticleCoordsX(i)
; если курсор слева
Else
If PointerMode = 0 : ParticleCoordsX(i)-2 : Else : ParticleCoordsX(i)+2 : EndIf
If mY > ParticleCoordsY(i)
If PointerMode = 0 : ParticleCoordsY(i)+1 : Else : ParticleCoordsY(i)-1 : EndIf
ElseIf mY = ParticleCoordsY(i)
Else
If PointerMode = 0 : ParticleCoordsY(i)-1 : Else : ParticleCoordsY(i)+1 : EndIf
EndIf
EndIf
; если расстояние до курсора по оси Х меньше чем по оси У
Else
If mY > ParticleCoordsY(i)
If PointerMode = 0 : ParticleCoordsY(i)+2 : Else : ParticleCoordsY(i)-2 : EndIf
If mX > ParticleCoordsX(i)
If PointerMode = 0 : ParticleCoordsX(i)+1 : Else : ParticleCoordsX(i)-1 : EndIf
ElseIf mX = ParticleCoordsX(i)
Else
If PointerMode = 0 : ParticleCoordsX(i)-1 : Else : ParticleCoordsX(i)+1 : EndIf
EndIf
ElseIf mY = ParticleCoordsY(i)
Else
If PointerMode = 0 : ParticleCoordsY(i)-2 : Else : ParticleCoordsY(i)+2 : EndIf
If mX > ParticleCoordsX(i)
If PointerMode = 0 : ParticleCoordsX(i)+1 : Else : ParticleCoordsX(i)-1 : EndIf
ElseIf mX = ParticleCoordsX(i)
Else
If PointerMode = 0 : ParticleCoordsX(i)-1 : Else : ParticleCoordsX(i)+1 : EndIf
EndIf
EndIf
EndIf
EndIf
EndIf
; задаем тупое рандомное движение в любые стороны
mov = 1
Select Random(8)
Case 0:
ParticleCoordsX(i)+mov
Case 1:
ParticleCoordsY(i)+mov
Case 2:
ParticleCoordsX(i)-mov
Case 3:
ParticleCoordsY(i)-mov
Case 4:
ParticleCoordsX(i)+mov
ParticleCoordsY(i)+mov
Case 5:
ParticleCoordsX(i)-mov
ParticleCoordsY(i)-mov
Case 6:
ParticleCoordsX(i)+mov
ParticleCoordsY(i)-mov
Case 7:
ParticleCoordsX(i)-mov
ParticleCoordsY(i)+mov
EndSelect
Next
EndProcedure
; начинаем считать время чтобы выводить FPS
CurTime = ElapsedMilliseconds()
; главный цикл
Repeat
mX = MouseX()
mY = MouseY()
; заливаем экран чооорным
ClearScreen($000000)
; вызываем процедурку обрабатывающую движение частиц
DoPhysics()
activeParticles = 0
; рисуем частицы по их координатам
activeParticles = 0
StartDrawing(ScreenOutput())
For i=0 To numParticles
If ParticleCoordsX(i) < DesktopW And ParticleCoordsY(i) < DesktopH And ParticleCoordsX(i) => 0 And ParticleCoordsY(i) => 0
;Debug ParticleCoordsX(i)
;Debug ParticleCoordsY(i)
Plot(ParticleCoordsX(i),ParticleCoordsY(i),$ffffff)
activeParticles + 1
EndIf
Next
; выводим курсор
mX - 1
mY - 1
For x=0 To 4
For y=0 To 4
If mX+x < DesktopW And mY+y < DesktopH And mX+x => 0 And mY+y => 0
Plot(mX+x,mY+y,$aaaaaa)
EndIf
Next
Next
; выводим инфо
If DisplayInfo
FPSCounter + 1
DrawingMode(#PB_2DDrawing_Transparent)
DrawingFont(FontID(1))
DrawText(4,DesktopH-60,"FPS: " + Str(FPS))
DrawText(4,DesktopH-40,"Free vmem: " + Str(Round(AvailableScreenMemory()/1024/1024,#PB_Round_Nearest)))
DrawText(4,DesktopH-20,"Display: " + Str(DesktopW) + "x" + Str(DesktopH) + "@" + Str(DesktopD) + "bpp")
If ElapsedMilliseconds() - CurTime >= 1000
CurTime = ElapsedMilliseconds()
FPS = FPSCounter
FPSCounter = 0
EndIf
DrawText(4,4,"Particles: " + Str(activeParticles))
If PointerMode = 0
DrawText(4,24,"Pointer mode (m): attraction")
Else
DrawText(4,24,"Pointer mode (m): repulsion")
EndIf
DrawText(4,44,"Force radius (-/+): " + Str(forceR))
EndIf
StopDrawing()
; смотрим что за время последнего цикла произошло с мышкой и клавой
ExamineKeyboard()
ExamineMouse()
If KeyboardReleased(#PB_Key_M)
If PointerMode = 0
PointerMode = 1
Else
PointerMode = 0
EndIf
EndIf
If KeyboardPushed(#PB_Key_Equals)
forceR + 1
EndIf
If KeyboardPushed(#PB_Key_Minus)
If forceR - 1 => 0
forceR - 1
EndIf
EndIf
; меняем местами буфер чтобы показать что мы там нарисовали
FlipBuffers()
If IsScreenActive() = 0
OpenWindow (0,1,1,1,1, "particles!" , #PB_Window_Minimize|#PB_Window_BorderLess )
CloseScreen()
Repeat
Event=WaitWindowEvent()
If Event = #WM_CLOSE
ExitProg = 1
Break
EndIf
Until Event = #WM_PAINT
If ExitProg = 0
CloseWindow(0)
OpenScreen(DesktopW,DesktopH,DesktopD,"particles!",#PB_Screen_SmartSynchronization,DesktopF)
Else
End
EndIf
EndIf
Until KeyboardPushed(#PB_Key_Escape)
Сам писал? Подписываем язык.