Search This Blog

Tuesday, 9 July 2013

Small Basic: Walking man (Code)

walkman

Excellent  program written by NaoChanOn
Challenge of the month July 2013 // Walking man by NaochanON

Program Code:


Shapes_Init()
Shapes_Add()
 
While (pos<1100)
   dx=6
   dy=2
   MM=MM+5
   walking()
   If -30<MM And  MM<30 Then
     NN=MM
   ElseIf 30<=MM and MM<90 Then
     NN=60-MM
   Elseif MM=90 then
     MM=-30
   EndIf
   Program.Delay(200)
endwhile
 
Sub armlegmoving
   rad=math.GetRadians(NN)
   ‘————————————– Arm & Hand —————————————————————————————
  ArmCP=”X=”+(shapes.GetLeft(shp[7]["obj"])+shp[7]["width"]/2)+”;Y=”+(shapes.Gettop(shp[7]["obj"]))
   ArmDR= shp[5]["height"]/2
   Shapes.Rotate(shp[8]["obj"],NN)                                        ‘ Left arm // backward
   Shapes.Move(shp[8]["obj"],ArmCP["X"]- ArmDR*Math.Sin(rad), ArmCP["Y"]+ArmDR*Math.cos(rad)-(shp[5]["y"]-shp[7]["y"]))
   Shapes.Rotate(shp[9]["obj"],NN)                                        ‘ Left hand // backward
   Shapes.Move(shp[9]["obj"],ArmCP["X"]- 2*ArmDR*Math.Sin(rad), ArmCP["Y"]+2*ArmDR*Math.cos(rad)+shp[6]["height"]/2)
   Shapes.Rotate(shp[5]["obj"],-NN)                                        ’ Right arm // forward
   Shapes.Move(shp[5]["obj"],ArmCP["X"]+ArmDR*Math.Sin(rad), ArmCP["Y"]+ArmDR*Math.cos(rad) -(shp[8]["y"]-shp[7]["y"]) )
   Shapes.Rotate(shp[6]["obj"],-NN)                                        ‘ Right hand// forward
   Shapes.Move(shp[6]["obj"],ArmCP["X"]+ 2*ArmDR*Math.Sin(rad), ArmCP["Y"]+2*ArmDR*Math.cos(rad)+shp[9]["height"]/2)
   ‘————————————– Leg & Foot ————————————————————————————— —————-
  LegCP=”X=”+(shapes.GetLeft(shp[7]["obj"])+shp[7]["width"]/2-5)+”;Y=”+(shapes.Gettop(shp[7]["obj"]) +shp[7]["height"]-5) ‘ 5… adjustment
   LegDR=shp[10]["height"]/2
   Shapes.Rotate(shp[10]["obj"],NN)                                        ’ Left leg // backward
   Shapes.Move(shp[10]["obj"],LegCP["X"]- LegDR*Math.Sin(rad), LegCP["Y"])
   Shapes.Rotate(shp[11]["obj"],NN)                                        ‘ Left foot // backward
   Shapes.Move(shp[11]["obj"],LegCP["X"]- 2*LegDR*Math.Sin(rad), LegCP["Y"]+2*LegDR*Math.cos(rad))
   Shapes.Rotate(shp[12]["obj"],-NN)                                        ‘ Right leg// forward
   Shapes.Move(shp[12]["obj"],LegCP["X"]+ LegDR*Math.Sin(rad), LegCP["Y"])
   Shapes.Rotate(shp[13]["obj"],-NN)                                        ‘ Left foot // forward
   Shapes.Move(shp[13]["obj"],LegCP["X"]+ 2*LegDR*Math.Sin(rad), LegCP["Y"]+2*LegDR*Math.cos(rad))
EndSub
 
Sub walking
   For k=1 To  Array.GetItemCount(shp)
     Shapes.Move(shp[k]["obj"],Shapes.GetLeft(shp[k]["obj"])+dx,Shapes.Gettop(shp[k]["obj"])+dy)
   endfor
   pos=Shapes.GetLeft(shp[1]["obj"])
   armlegmoving()
EndSub
 
Sub Shapes_Add
   GraphicsWindow.BackgroundColor=”Lightcyan”
   GraphicsWindow.Width=1200
   GraphicsWindow.Height=700
   For i = 1 To Array.GetItemCount(shp)
     GraphicsWindow.PenWidth = shp[i]["pw"]
     GraphicsWindow.PenColor = shp[i]["pc"]
     GraphicsWindow.BrushColor = shp[i]["bc"]
     If shp[i]["func"] = “rect” Then
       shp[i]["obj"] = shapes.AddRectangle(shp[i]["width"], shp[i]["height"])
     ElseIf shp[i]["func"] = “ell” Then
       shp[i]["obj"] = shapes.AddEllipse(shp[i]["width"], shp[i]["height"])
     ElseIf shp[i]["func"] = “tri” Then
       shp[i]["obj"] = shapes.AddTriangle(shp[i]["x1"], shp[i]["y1"], shp[i]["x2"], shp[i]["y2"], shp[i]["x3"], shp[i]["y3"] )
     ElseIf shp[i]["func"] = “line” Then
       shp[i]["obj"] = shapes.AddLine(shp[i]["x1"], shp[i]["y1"], shp[i]["x2"], shp[i]["y2"])
     EndIf
     Shapes.Move(shp[i]["obj"], X0 + shp[i]["x"], Y0 + shp[i]["y"])
     If shp[i]["angle"] <> 0 Then
       Shapes.Rotate(shp[i]["obj"], shp[i]["angle"])
     EndIf
   EndFor
EndSub
 
Sub Shapes_Init
   X0 = 10        ‘ x offset
   Y0 = 50       ‘ y offset
   shp[1] = “func=ell;x=42;y=0;width=34;height=45;bc=#EB9869;pc=#EB9869;pw=2;”               ‘ face
   shp[2] = “func=line;x=65;y=13;x1=0;y1=0;x2=8;y2=1;pc=#6A5ACD;pw=4;”                       ‘ Eye
   shp[3] = “func=line;x=65;y=29;x1=0;y1=0;x2=8;y2=3;pc=#F80800;pw=2;”                       ’ mouse
   shp[4] = “func=tri;x=74;y=17;x1=0;y1=0;x2=10;y2=8;x3=0;y3=12;angle=0;bc=#EB9869;pc=#EB9869;pw=1;”  ‘nose
   shp[5] = “func=rect;x=53;y=50;width=8;height=60;angle=0;bc=#6A5ACD;pc=#000000;pw=1;”      ‘ Left arm
   shp[6] = “func=ell;x=53;y=110;width=13;height=22;angle=0;bc=#EB9869;pc=#EB9869;pw=8;”     ‘ Left hand
   shp[7] = “func=ell;x=40;y=42;width=33;height=103;bc=#00AA00;pc=#00AA00;pw=2;”             ‘ body
   shp[8] = “func=rect;x=53;y=50;width=8;height=60;angle=0;bc=#00BB00;pc=#000000;pw=1;”      ‘ Right arm
   shp[9] = “func=ell;x=53;y=110;width=13;height=22;angle=0;bc=#EB9869;pc=#EB9869;pw=2;”     ‘ Right hand
   shp[10] = “func=rect;x=50;y=140;width=12;height=71;angle=0;bc=#6A5ACD;pc=#6A5ACD;pw=2;”   ‘ left Leg
   shp[11] = “func=ell;x=50;y=209;width=33;height=13;angle=0;bc=#BED3CA;pc=#414C3E;pw=2;”    ‘ left foot
   shp[12] = “func=rect;x=50;y=140;width=12;height=71;angle=0;bc=#00AA00;pc=#6A5ACD;pw=2;”   ‘ Right Leg
   shp[13] = “func=ell;x=50;y=209;width=33;height=13;angle=0;bc=#1AD3CA;pc=#414C3E;pw=2;”    ‘ Right foot
EndSub

Deja un comentario








    Monday, 8 July 2013

    Ecuaciones (Visual Basic – Código)

    La siguiente aplicación utiliza objetos de una clase CEcuacion para evaluar ecuaciones de la forma:

    ax³ + bx² + cx + d

    Una ecuación se puede ver como un objeto que envuelve el exponente del término de mayor grado, los coeficientes y los métodos que permitan manipularla.
    Los objetos CEcuacion tendrán unos atributos que serán los coeficientes y unos métodos Ecuación y ValorPara para manipularlos.
    El método ValorPara evaluará la ecuación para el valor de x pasado como argumento. Este método, utilizando la sentencia Return, devolverá como resultado el valor calculado. El tipo devuelto por el método
    es Double.
    Escribimos en en primer lugar  la clase CEcuacion


    ecuaciones_class

    Escribimos otro archivo fuente con un módulo MiSplicacion, que utilice la clas4e de objetos CEcuacion


    ecuaciones


    El procedimiento Main es por donde empieza a ejecutarse la aplicación.
    Una vez escrito el programa se compila.
    Después se ejecuta y observa los resultados


    ecuaciones1

    Deja un comentario