aer1
 
Microsoft Small Basic  Program Listing:   ID: KJW676  http://smallbasic.com/smallbasic.com/program/?ZZD394
  1. ‘ 1942 like Game ID: KJW676
    ‘ Copyright (C) 2010, Laurent GIRAUD laurent.giraud1@free.fr
    ‘ License: MIT license http://www.opensource.org/licenses/mit-license.php
    ‘most of Game artwork created by Ari Feldman ari@arifeldman.com”
    ‘ and others grabed from free web sprites‘————————-
    ‘replace by your directory path
    ‘Path =”file://C:/Users/Laurent/Desktop/small basic/images1942/”
    Path= ”http://imode.free.fr/images1942/”
    ‘replace by your directory path
    ‘————————-‘ Game area controls
    gameWidth  = 640
    gameHeight = 480
    fps = 50
    bgs = 2 ‘backgroundspeed
    Player_Lives = 10
    nbrisland = 5 ‘nomber of island images
    islandcount = 5 ‘nomber of island in the wall field
    ‘ Window title
    gameTitle = ”1942, Score: “
    GraphicsWindow.Hide()
    GraphicsWindow.Title = gameTitle + ”0″
    GraphicsWindow.CanResize = ”False”
    GraphicsWindow.Width = gameWidth
    GraphicsWindow.Height = gameHeight
    ‘Presentation
    ‘ todo
    ‘ Start game
    Init()
    define_paths()
    TimePlay = 0
    pathNBR = 1
    ‘create_enemies1()
    Play()
    ‘ Setup world
    Sub Init
    GraphicsWindow.Hide()
    Mouse.HideCursor()
    ‘ addImage in the right order is needed to define the shapes depth
    island4= ImageList.LoadImage(Path + ”island4.png”)
    island1= ImageList.LoadImage(Path + ”island1.png”)
    island2= ImageList.LoadImage(Path + ”island2.png”)
    island3= ImageList.LoadImage(Path + ”island3.png”)
    island5= ImageList.LoadImage(Path + ”island5.png”)
    player0 = ImageList.LoadImage(Path + ”myplane1.png”)
    background = ImageList.LoadImage(Path + ”fond.png”)
    bullet0 = ImageList.LoadImage(Path + ”bullet.png”)
    enemy= ImageList.LoadImage(Path + ”enemy1.png”)
    enemy2 = ImageList.LoadImage(Path + ”enemy2.png”)
    enemy_expl1=ImageList.LoadImage(Path + ”explo1.png”)
    enemy_expl2=ImageList.LoadImage(Path + ”explo2.png”)
    player_expl=ImageList.LoadImage(Path + ”explo2.png”)
    Enemy_bullet=ImageList.LoadImage(Path + ”E_bullet.png”)
    end = ImageList.LoadImage(Path + ”End.png”)
    enemy_Array = ”EnemyArray” ‘Array that contain all the enemies
    ‘ every enemy in tha array has 5 informations
    ‘ TimeLine: each enemy has its own timeline
    ‘ PathNBR: the precalculated path defineing the movement
    ‘ the movement is decomposed in LineNbr differents lines
    ‘ each line is define in the enemy_path table with rotation, deltaY and deltaY
    ‘ PositonX, PositonY: position in space


    enemy_TimeLine = ”EnemyTimeLine”
    enemy_line = ”enemyLineNbr”
    enemy_PosX = ”enemyPositonX”
    enemy_PosY = ”enemyPositonY”
    enemy_PathNBR=”enemy_PathNBR”
    enemy_Nbr = 6
    enemy_Count = 0
    enemy_speed = 4
    ‘enemy_NextRemove = 1
    enemy_Life = 10
    player_size= 65
    enemy_size = 32
    enemy_ammo_size = 8
    player_bullet_size = 32
    island_Array = ”Island array”
    IslandsPosition()
    create_level1()
    fond= Shapes.AddImage(background)
    Array.SetValue(island_Array,1,Shapes.AddImage(island1))
    Array.SetValue(island_Array,2,Shapes.AddImage(island2))
    Array.SetValue(island_Array,3,Shapes.AddImage(island3))
    Array.SetValue(island_Array,4,Shapes.AddImage(island4))
    Array.SetValue(island_Array,5,Shapes.AddImage(island5))
    For i = 6 to  islandcount
    Array.SetValue(island_Array,i,Array.getValue(island_Array,Math.Remainder(i,4)))
    Endfor
    player = Shapes.AddImage(player0)
    GraphicsWindow.FontSize = 20
    GraphicsWindow.BackgroundColor = ”Grey”
    GraphicsWindow.PenColor = ”Yellow”
    Player_Ammo = ”Player_AmmoArray”
    Player_AmmoAge = ”Player_AmmoAge”
    Player_AmmoMax = 50
    Player_AmmoCount = 0
    Player_Ammospeed = bgs +4
    Player_AmmoLife = 100
    Enemy_Ammo = ”Enemy_AmmoArray”
    Enemy_AmmoAge = ”Enemy_AmmoAge”
    Enemy_Ammo_Angle=”Enemy_Ammo_Angle”
    Enemy_AmmoMax = 30
    Enemy_AmmoCount = 0
    Enemy_Ammospeed = bgs +4
    Enemy_AmmoLife = 50
    Enemy_Agresivity = 200
    score = 0
    EndSub
    ‘ Main gane routine
    Sub Play
    GraphicsWindow.Show()
    ‘ Main loop
    play = 1
    pause = 0
    incx =0   ‘ X-axis increment for background
    incy = 0  ‘ Y-axis increment for background
    incbx = 0  ‘increment for bullets and all objects on X
    incby = 0 ‘increment for bullets and all objects on Y
    squadron = 1
    ‘ Island initial position
    j= 0
    For i= 1 To islandcount
    j=Math.Remainder(i,6)
    posy[i]= islandPos[j][2]
    posx[i]= islandPos[j][3]
    incislandx[i] = 0
    incislandy[i] = 0
    EndFor
    TimePlay = 0
    Shapes.Move(player, gameWidth/2 , gameHeight -80 )
    While(play = 1)
    Program.Delay(1000/fps)
    TimePlay = TimePlay +1
    If (pause = 0) Then
    If (TimePlay = level1[squadron][1]) then
    pathNBR = level1[squadron][2]
    enemyPosX1 = level1[squadron][3]  ‘X position
    enemyPosY1 = level1[squadron][4]  ‘Y position
    enemy_Nbr = level1[squadron][6]
    enemy_type = level1[squadron][7]
    if (level1[squadron][5]=1) then
    create_enemies_left()
    Else
    create_enemies_right()
    endif
    squadron = squadron + 1
    endif
    If (TimePlay > 4000) then
    Shapes.Move(Shapes.addImage(end), 230,200)
    Program.Delay(5000)
    Program.End()
    Endif
    moveall()
    GraphicsWindow.MouseMove = OnMouseMove
    GraphicsWindow.MouseDown = OnMouseDown
    AgePlayer_Ammo()
    EndIf
    EndWhile
    EndSub
    Sub OnMouseMove
    paddleX = GraphicsWindow.MouseX - player_size/2
    paddleY = GraphicsWindow.MouseY- player_size
    If (paddleX < 0) then
    paddleX = 0
    endif
    Shapes.Move(player, paddleX , paddleY )
    EndSub
    Sub OnMouseDown
    ShootX = GraphicsWindow.MouseX - 15 ‘ in order to be from the neck of the plane
    ShootY = GraphicsWindow.MouseY - 80
    Fire()
    EndSub
    Sub moveall
    incbx = 0
    incby =0
    GraphicsWindow.Title = gameTitle + score +” Lives:”+Player_Lives
    If (paddleX >(gameWidth-62) ) Then
    incx = incx - bgs
    incbx = incbx - bgs
    For i= 1 To islandcount
    incislandx[i] = incislandx[i] - bgs
    EndFor
    If (incx = -32 ) Then
    incx =0
    Endif
    Endif
    If (paddleX < 64 ) Then
    incx = incx + bgs
    incbx = incbx + bgs
    For i= 1 To islandcount
    incislandx[i] = incislandx[i] + bgs
    EndFor
    If (incx = 32 ) Then
    incx =0
    Endif
    Endif
    Shapes.Move(fond,incx -32 ,incy - 32)
    For i= 1 To islandcount
    islx = posx[i]+incislandx[i]
    isly = posy[i]+incislandy[i]
    Shapes.Move(Array.GetValue(island_Array,i),islx,isly)
    EndFor
    incy = incy + bgs
    incby = incby+ bgs
    For i= 1 To islandcount
    incislandy[i] = incislandy[i] + bgs
    EndFor
    If (incy = 32) Then
    incy =0
    Endif
    For i= 1 To islandcount
    If ((posy[i]+incislandy[i]) > (gameHeight+15)) Then ‘relaunch island if no more visible
    R= Math.Round(Math.GetRandomNumber(nbrisland))
    AA = Math.Remainder(TimePlay,6)
    ‘give new coordinates
    posx[i]= islandPos[AA][2]
    posy[i]= islandPos[AA][3]
    Shapes.move(Array.GetValue(island_Array,R),posx[i],posy[i])
    incislandy[i]=0
    incislandx[i]=0
    EndIf
    ENDFOR
    ‘ Move playerammo
    For i = 1 To Player_AmmoCount
    Player_Ammox = Shapes.GetLeft(Array.GetValue(Player_Ammo, i)) +incbx
    Player_Ammoy = Shapes.GetTop(Array.GetValue(Player_Ammo, i)) - Player_Ammospeed
    Shapes.Move(Array.GetValue(Player_Ammo, i), Player_Ammox, Player_Ammoy)
    Array.SetValue(Player_AmmoAge, i, Array.GetValue(Player_AmmoAge, i) + 1)
    EndFor
    ‘ Move Enemy ammo
    For iea = 1 To Enemy_AmmoCount
    dx =(Math.Sin((Array.GetValue(Enemy_Ammo_Angle, iea) )) * Enemy_Ammospeed)
    dy =(Math.Cos((Array.GetValue(Enemy_Ammo_Angle, iea) ))* Enemy_Ammospeed)
    Enemy_Ammox = Shapes.GetLeft(Array.GetValue(Enemy_Ammo, iea)) +dx+incbx
    Enemy_Ammoy = Shapes.GetTop(Array.GetValue(Enemy_Ammo, iea)) +dy+incby*0.1
    Shapes.Move(Array.GetValue(Enemy_Ammo, iea), Enemy_Ammox, Enemy_Ammoy)
    Array.SetValue(Enemy_AmmoAge, iea, Array.GetValue(Enemy_AmmoAge, iea) + 1)
    EndFor
    ‘ move ennemies
    For i=1 To enemy_Count
    ‘ move as TimeLine and Path say
    eNBR= Array.GetValue(enemy_PathNBR,i)
    uu =Array.GetValue(enemy_line,i)
    Time= Array.GetValue(enemy_TimeLine, i)
    etl=enemyPath[eNBR][1][uu]  ‘enemy own timeLine
    IF (Time=etl) Then  ‘it’s time to rotate enemy
    rr = enemyPath[eNBR][2][uu+1]
    Shapes.Rotate(Array.GetValue(enemy_Array,i),rr)
    EndIf
    IF (Time > etl)  Then
    uu = uu+1
    Array.SetValue(enemy_line,i,uu)    ‘ next line for enemy move
    EndIf
    xx1=Array.GetValue(enemy_PosX,i)
    yy1= Array.GetValue(enemy_PosY,i)
    xx = xx1+enemyPath[eNBR][3][uu]+incbx
    yy = yy1+enemyPath[eNBR][4][uu]+incby*0.1
    ‘ Randomly fire-enemy
    If (Math.GetRandomNumber(Enemy_Agresivity)=1) Then
    Enemy_ShootX = xx1 + 16
    Enemy_ShootY = yy1 + 4
    If (yy1 > 0 AND xx1 > 0 And yy1< gameHeight And xx1 < gameWidth) then
    ‘this avoid enemy fire from outside the screen
    fire_Enemy()
    Endif
    EndIf
    Shapes.Move(Array.GetValue(enemy_Array,i),xx,yy)
    Array.SetValue(enemy_PosX,i,xx)
    Array.SetValue(enemy_PosY,i,yy)
    Array.SetValue(enemy_TimeLine, i, Time + 1)
    If ((uu > enemyPath[eNBR][0][0]) And (Time > etl)) Then ‘ if last timelife remove the enemy sprite
    next_enemy_remove = i
    remove_enemy()
    endif
    Collision_pbe()
    Collision_ep()
    EndFor
    EndSub
    Sub RemovePlayer_Ammo
    Shapes.Remove(Array.GetValue(Player_Ammo, Player_Ammo_nextRemove))
    For iz = Player_Ammo_nextRemove To Player_AmmoCount - 1
    Array.SetValue(Player_Ammo, iz, Array.GetValue(Player_Ammo, iz+1))
    Array.SetValue(Player_AmmoAge, iz, Array.GetValue(Player_AmmoAge, iz+1))
    EndFor
    Array.RemoveValue(Player_Ammo, Player_AmmoCount)
    Array.RemoveValue(Player_AmmoAge, Player_AmmoCount)
    Player_AmmoCount = Player_AmmoCount - 1
    EndSub
    Sub RemoveEnemy_Ammo
    Shapes.Remove(Array.GetValue(Enemy_Ammo, Enemy_Ammo_nextRemove))
    For irea = Enemy_Ammo_nextRemove To Enemy_AmmoCount - 1
    Array.SetValue(Enemy_Ammo, irea, Array.GetValue(Enemy_Ammo, irea+1))
    Array.SetValue(Enemy_AmmoAge, irea, Array.GetValue(Enemy_AmmoAge, irea+1))
    Array.SetValue(Enemy_Ammo_Angle, irea, Array.GetValue(Enemy_Ammo_Angle,irea+1))
    EndFor
    Array.RemoveValue(Enemy_Ammo, Enemy_AmmoCount)
    Array.RemoveValue(Enemy_AmmoAge, Enemy_AmmoCount)
    Array.RemoveValue(Enemy_Ammo_Angle,Enemy_AmmoCount)
    Enemy_AmmoCount = Enemy_AmmoCount - 1
    EndSub
    Sub fire
    ‘ Remove additional player Ammo
    While(Player_AmmoCount > Player_AmmoMax )
    Player_Ammo_nextRemove = 1
    RemovePlayer_Ammo()
    EndWhile
    ‘ Add the player Ammo
    Player_AmmoCount = Player_AmmoCount + 1
    Array.SetValue(Player_Ammo, Player_AmmoCount, Shapes.AddImage(bullet0))
    Shapes.Move(Array.GetValue(Player_Ammo, Player_AmmoCount), ShootX, ShootY)
    EndSub
    Sub fire_Enemy
    ‘ Remove additional Enemy Ammo
    While(Enemy_AmmoCount > (Enemy_AmmoMax - 1))
    Enemy_Ammo_nextRemove = 1
    RemoveEnemy_Ammo()
    EndWhile
    ‘ Add the Enemy Ammo
    Enemy_AmmoCount = Enemy_AmmoCount + 1
    Array.SetValue(Enemy_Ammo, Enemy_AmmoCount, Shapes.AddImage(Enemy_bullet))
    Array.SetValue(Enemy_Ammo_Angle, Enemy_AmmoCount,Math.ArcTan((paddleX- Enemy_ShootX+player_size/2)/(paddleY-Enemy_ShootY)))
    Shapes.Move(Array.GetValue(Enemy_Ammo, Enemy_AmmoCount), Enemy_ShootX, Enemy_ShootY)
    EndSub
    ‘Check playerammo age
    Sub AgePlayer_Ammo
    While (Array.GetValue(Player_AmmoAge, 1) > Player_AmmoLife)
    Player_Ammo_nextRemove = 1
    RemovePlayer_Ammo()
    EndWhile
    EndSub
    ‘Check enemy ammo age
    Sub AgeEnemy_Ammo
    While (Array.GetValue(Enemy_AmmoAge, 1) > Enemy_AmmoLife)
    Enemy_Ammo_nextRemove = 1
    RemoveEnemy_Ammo()
    EndWhile
    EndSub
    Sub remove_enemy
    Shapes.remove(Array.GetValue(enemy_Array,next_enemy_remove))
    ‘ Remove all references from the arrays
    For ii = next_enemy_remove To enemy_Count - 1
    Array.SetValue(enemy_Array, ii, Array.GetValue(enemy_Array, ii+1))
    Array.SetValue(enemy_line, ii, Array.GetValue(enemy_line, ii+1))
    Array.SetValue(enemy_PosX, ii, Array.GetValue(enemy_PosX, ii+1))
    Array.SetValue(enemy_PosY, ii, Array.GetValue(enemy_PosY, ii+1))
    Array.SetValue(enemy_TimeLine, ii, Array.GetValue(enemy_TimeLine, ii+1))
    Array.SetValue(enemy_PathNBR, ii , Array.GetValue(enemy_PathNBR, ii+1))
    EndFor
    Array.RemoveValue(enemy_Array, enemy_Count)
    Array.RemoveValue(enemy_line, enemy_Count)
    Array.RemoveValue(enemy_PosX, enemy_Count)
    Array.RemoveValue(enemy_PosY, enemy_Count)
    Array.RemoveValue(enemy_TimeLine, enemy_Count)
    Array.RemoveValue(enemy_PathNBR,enemy_Count)
    enemy_Count = enemy_Count - 1
    EndSub
    Sub create_enemies_left
    TimeLine1 =0
    For i=1 To enemy_Nbr
    enemy_Count= enemy_Count + 1
    Array.SetValue(enemy_PathNBR,enemy_Count,pathNBR)
    If (enemy_type = 2) Then
    Array.SetValue(enemy_Array, enemy_Count,Shapes.AddImage(enemy2))
    Else
    Array.SetValue(enemy_Array, enemy_Count,Shapes.AddImage(enemy))
    EndIf
    Array.SetValue(enemy_line,enemy_Count,1)
    Array.SetValue(enemy_PosX, enemy_Count,enemyPosX1)
    Array.SetValue(enemy_PosY, enemy_Count,enemyPosY1)
    Array.SetValue(enemy_TimeLine, enemy_Count, TimeLine1)
    enemyPosX1 = enemyPosX1 - 64 ‘distance between ennemies
    TimeLine1 = TimeLine1 - 64 / enemy_speed
    EndFor
    For i=(enemy_Count-enemy_Nbr+1) To enemy_Count
    xxx=Array.GetValue(enemy_PosX,i)
    yyy= Array.GetValue(enemy_PosY,i)
    Shapes.Move(Array.GetValue(enemy_Array,i),xxx,yyy)
    EndFor
    EndSub
    Sub create_enemies_right
    TimeLine1 =0
    For i=1 To enemy_Nbr
    enemy_Count= enemy_Count + 1
    Array.SetValue(enemy_PathNBR,enemy_Count,pathNBR)
    Array.SetValue(enemy_Array, enemy_Count,Shapes.AddImage(enemy))
    Array.SetValue(enemy_line,enemy_Count,1)
    Array.SetValue(enemy_PosX, enemy_Count,enemyPosX1)
    Array.SetValue(enemy_PosY, enemy_Count,enemyPosY1)
    Array.SetValue(enemy_TimeLine, enemy_Count, TimeLine1)
    enemyPosX1 = enemyPosX1 + 64 ‘distance between ennemies
    TimeLine1 = TimeLine1 - 64 / enemy_speed
    EndFor
    For i=(enemy_Count-enemy_Nbr+1) To enemy_Count
    xxx=Array.GetValue(enemy_PosX,i)
    yyy= Array.GetValue(enemy_PosY,i)
    Shapes.Move(Array.GetValue(enemy_Array,i),xxx,yyy)
    EndFor
    EndSub
    Sub Collision_pbe   ‘for player-bullet and enemies
    For i1 = 1 To Player_AmmoCount
    ‘ player bullet position
    Player_Ammox = Shapes.GetLeft(Array.GetValue(Player_Ammo, i1))
    Player_Ammoy = Shapes.GetTop(Array.GetValue(Player_Ammo, i1))
    px1=Player_Ammox+player_bullet_size/3   ‘in order to have a more precise collison than the bullet image size
    py1=Player_Ammoy+player_bullet_size/3
    px2=px1+2*player_bullet_size/3
    py2=py1+2*player_bullet_size/3
    For i2 = 1 to enemy_Count
    ‘ enemy position
    ax1=Array.GetValue(enemy_PosX,i2)+enemy_size/4
    ay1=Array.GetValue(enemy_PosY,i2)+enemy_size/4
    ax2=ax1+3*enemy_size/4
    ay2=ay1+3*enemy_size/4
    If ( (ax1 < px1 And ax2 > px1) Or (ax1 < px2 And ax2 > px2) ) Then
    If ( (ay1 < py1 And ay2 > py1) Or (ay1 < py2 And ay2 > py2) ) Then
    ‘ collision between enemy nbr i2 and player bullet i
    ‘ remove bullet i and animate explosion and remove enemy i2
    Player_Ammo_nextRemove = i1
    RemovePlayer_Ammo()
    next_enemy_remove = i2
    remove_enemy()
    ‘ begin animation for explosion at coordinate ax1, ay1
    toto= Shapes.AddImage(enemy_expl1)
    Shapes.move(toto,ax1,ay1)
    Program.Delay(30)
    Shapes.Remove(toto)
    toto= Shapes.AddImage(enemy_expl2)
    Shapes.move(toto,ax1,ay1)
    Program.Delay(30)
    Shapes.Remove(toto)
    score = score +100
    EndIf
    EndIf
    EndFor
    Endfor
    EndSub
    Sub Collision_ep   ‘for enemies and player
    px1 = Shapes.GetLeft(player)
    py1 = Shapes.GetTop(player)
    px2 = px1 + player_size
    py2 = py1 + player_size
    ‘Shapes.Move(Shapes.AddRectangle(px2-px1 ,py2-py1), px1, py1)
    For i2 = 1 to enemy_Count
    ‘ enemy position
    ax1=Array.GetValue(enemy_PosX,i2)
    ay1=Array.GetValue(enemy_PosY,i2)
    ax2=ax1+enemy_size
    ay2=ay1+enemy_size
    ‘Shapes.Move(Shapes.AddRectangle(ax2-ax1 ,ay2-ay1), ax1, ay1)
    If ( (px1 < ax1 And px2 > ax1) Or (px1 < ax2 And px2 > ax2) ) Then
    If ( (py1 < ay1 And py2 > ay1) Or (py1 < ay2 And py2 > ay2) ) Then
    ‘ collision between enemy nbr i2 and player
    ‘ animate explosion and decrease lives
    next_enemy_remove = i2
    remove_enemy()
    ‘ begin animation for explosion at coordinate ax1, ay1
    toto= Shapes.AddImage(enemy_expl1)
    Shapes.move(toto,ax1,ay1)
    Program.Delay(30)
    Shapes.Remove(toto)
    toto= Shapes.AddImage(player_expl)
    Shapes.move(toto,ax1,ay1)
    Program.Delay(300)
    Shapes.Remove(toto)
    Player_Lives = Player_Lives -1
    If (Player_Lives = 0) THEN
    Program.End()
    EndIf
    EndIf
    EndIf
    EndFor
    px1 = paddleX
    py1 = paddleY
    px2 = px1 + player_size
    py2 = py1 + player_size
    ‘Shapes.Move(Shapes.AddRectangle(px2-px1 ,py2-py1), px1, py1)
    For i3 = 1 to Enemy_AmmoCount
    ‘ enemy position
    ax1=Shapes.GetLeft(Array.GetValue(enemy_Ammo,i3))
    ay1=Shapes.GetTop(Array.GetValue(enemy_Ammo,i3))
    ax2=ax1+enemy_ammo_size
    ay2=ay1+enemy_ammo_size
    ‘Shapes.Move(Shapes.AddRectangle(ax2-ax1 ,ay2-ay1), ax1, ay1)
    If ( (px1 < ax1 And px2 > ax1) Or (px1 < ax2 And px2 > ax2) ) Then
    If ( (py1 < ay1 And py2 > ay1) Or (py1 < ay2 And py2 > ay2) ) Then
    ‘ collision between enemy ammo nbr i3 and player
    ‘ animate explosion and decrease lives
    Enemy_Ammo_nextRemove = i3
    RemoveEnemy_Ammo()
    ‘ begin animation for explosion at coordinate ax1, ay1
    toto= Shapes.AddImage(enemy_expl1)
    Shapes.move(toto,paddleX+ player_size/2,paddleY+ player_size/2)
    Program.Delay(30)
    Shapes.Remove(toto)
    toto= Shapes.AddImage(player_expl)
    Shapes.move(toto,paddleX+ player_size/2,paddleY+ player_size/2)
    Program.Delay(300)
    Shapes.Remove(toto)
    Player_Lives = Player_Lives -1
    If (Player_Lives = 0) THEN
    Program.End()
    EndIf
    EndIf
    EndIf
    EndFor
    EndSub
    Sub IslandsPosition
    ‘ island positions, avoid randomGeneration and islands overlap
    islandPos[0][1]=1
    islandPos[0][2]=0
    islandPos[0][3]=-150
    islandPos[1][1]=1
    islandPos[1][2]=-Math.Round(gameWidth/2)
    islandPos[1][3]=-150
    islandPos[2][1]=2
    islandPos[2][2]=-2*Math.Round(gameWidth/3)
    islandPos[2][3]=-150
    islandPos[3][1]=1
    islandPos[3][2]=2*Math.Round(gameWidth/3)
    islandPos[3][3]=-150
    islandPos[4][1]=2
    islandPos[4][2]=gameWidth
    islandPos[4][3]=-150
    islandPos[5][1]=3
    islandPos[5][2]=Math.Round(gameWidth/3)
    islandPos[5][3]=-150
    islandPos[6][1]=3
    islandPos[6][2]=-gameWidth
    islandPos[6][3]=-150
    EndSub
    Sub define_paths
    enemyPath[0][0][0] = 3  ‘nbr of strait lines of path
    enemyPath[0][1][1] = 30  ‘from 0 to this in timeline
    enemyPath[0][1][2] = 100 ‘ from this to next in timeline
    enemyPath[0][1][3] = 400   ‘sprite goes up
    enemyPath[0][2][1] = 0 ‘first line rotation = 0
    enemyPath[0][2][2] = 45 ‘ second line rotation = 45
    enemyPath[0][2][3] = 45
    enemyPath[0][3][1] = enemy_speed ‘ first line x movment
    enemyPath[0][3][2] = enemy_speed ‘second line x movment
    enemyPath[0][3][3] = enemy_speed ‘ third line …
    enemyPath[0][4][1] = 0 ‘ first line y movment
    enemyPath[0][4][2] = enemy_speed
    enemyPath[0][4][3] = enemy_speed
    ‘———- second path
    enemyPath[1][0][0] = 4
    enemyPath[1][1][1] = 1
    enemyPath[1][1][2] = 1
    enemyPath[1][1][3] = 100
    enemyPath[1][1][4] = 400
    enemyPath[1][2][1] = 180
    enemyPath[1][2][2] = 135
    enemyPath[1][2][3] = 135
    enemyPath[1][2][4] = 90
    enemyPath[1][3][1] = -enemy_speed
    enemyPath[1][3][2] = -enemy_speed
    enemyPath[1][3][3] = -enemy_speed
    enemyPath[1][3][4] = 0
    enemyPath[1][4][1] = 0
    enemyPath[1][4][2] = 0
    enemyPath[1][4][3] = enemy_speed
    enemyPath[1][4][4] = enemy_speed
    ’round r=5
    enemyPath[2][0][0]=21
    enemyPath[2][1][1]=50
    enemyPath[2][1][2]=55
    enemyPath[2][1][3]=60
    enemyPath[2][1][4]=65
    enemyPath[2][1][5]=70
    enemyPath[2][1][6]=75
    enemyPath[2][1][7]=80
    enemyPath[2][1][8]=85
    enemyPath[2][1][9]=90
    enemyPath[2][1][10]=95
    enemyPath[2][1][11]=100
    enemyPath[2][1][12]=105
    enemyPath[2][1][13]=110
    enemyPath[2][1][14]=115
    enemyPath[2][1][15]=120
    enemyPath[2][1][16]=125
    enemyPath[2][1][17]=130
    enemyPath[2][1][18]=135
    enemyPath[2][1][19]=140
    enemyPath[2][1][20]=145
    enemyPath[2][1][21]=350
    enemyPath[2][2][1]=0
    enemyPath[2][2][2]=18
    enemyPath[2][2][3]=36
    enemyPath[2][2][4]=54
    enemyPath[2][2][5]=72
    enemyPath[2][2][6]=90
    enemyPath[2][2][7]=108
    enemyPath[2][2][8]=126
    enemyPath[2][2][9]=144
    enemyPath[2][2][10]=162
    enemyPath[2][2][11]=180
    enemyPath[2][2][12]=198
    enemyPath[2][2][13]=216
    enemyPath[2][2][14]=234
    enemyPath[2][2][15]=252
    enemyPath[2][2][16]=-90
    enemyPath[2][2][17]=-72
    enemyPath[2][2][18]=-54
    enemyPath[2][2][19]=-36
    enemyPath[2][2][20]=-18
    enemyPath[2][2][21]=0
    enemyPath[2][3][1]=enemy_speed
    enemyPath[2][3][2]=0.95*enemy_speed
    enemyPath[2][3][3]=0.81*enemy_speed
    enemyPath[2][3][4]=0.59*enemy_speed
    enemyPath[2][3][5]=0.31*enemy_speed
    enemyPath[2][3][6]=0
    enemyPath[2][3][7]=-0.31*enemy_speed
    enemyPath[2][3][8]=-0.59*enemy_speed
    enemyPath[2][3][9]=-0.81*enemy_speed
    enemyPath[2][3][10]=-0.95*enemy_speed
    enemyPath[2][3][11]=-enemy_speed
    enemyPath[2][3][12]=-0.95*enemy_speed
    enemyPath[2][3][13]=-0.81*enemy_speed
    enemyPath[2][3][14]=-0.59*enemy_speed
    enemyPath[2][3][15]=-0.31*enemy_speed
    enemyPath[2][3][16]=0
    enemyPath[2][3][17]=0.31*enemy_speed
    enemyPath[2][3][18]=0.59*enemy_speed
    enemyPath[2][3][19]=0.81*enemy_speed
    enemyPath[2][3][20]=0.95*enemy_speed
    enemyPath[2][3][21]=enemy_speed
    enemyPath[2][4][1]=0
    enemyPath[2][4][2]=0.31*enemy_speed
    enemyPath[2][4][3]=0.59*enemy_speed
    enemyPath[2][4][4]=0.81*enemy_speed
    enemyPath[2][4][5]=0.95*enemy_speed
    enemyPath[2][4][6]=enemy_speed
    enemyPath[2][4][7]=0.95*enemy_speed
    enemyPath[2][4][8]=0.81*enemy_speed
    enemyPath[2][4][9]=0.59*enemy_speed
    enemyPath[2][4][10]=0.31*enemy_speed
    enemyPath[2][4][11]=0
    enemyPath[2][4][12]=-0.31*enemy_speed
    enemyPath[2][4][13]=-0.59*enemy_speed
    enemyPath[2][4][14]=-0.81*enemy_speed
    enemyPath[2][4][15]=-0.95*enemy_speed
    enemyPath[2][4][16]=-enemy_speed
    enemyPath[2][4][17]=-0.95*enemy_speed
    enemyPath[2][4][18]=-0.81*enemy_speed
    enemyPath[2][4][19]=-0.59*enemy_speed
    enemyPath[2][4][20]=-0.31*enemy_speed
    enemyPath[2][4][21]=0
    ’round r=20
    enemyPath[3][0][0]=21
    enemyPath[3][1][1]=120
    enemyPath[3][1][2]=140
    enemyPath[3][1][3]=160
    enemyPath[3][1][4]=180
    enemyPath[3][1][5]=200
    enemyPath[3][1][6]=220
    enemyPath[3][1][7]=240
    enemyPath[3][1][8]=260
    enemyPath[3][1][9]=280
    enemyPath[3][1][10]=300
    enemyPath[3][1][11]=320
    enemyPath[3][1][12]=340
    enemyPath[3][1][13]=360
    enemyPath[3][1][14]=380
    enemyPath[3][1][15]=400
    enemyPath[3][1][16]=420
    enemyPath[3][1][17]=440
    enemyPath[3][1][18]=460
    enemyPath[3][1][19]=480
    enemyPath[3][1][20]=500
    enemyPath[3][1][21]=600
    enemyPath[3][2][1]=0
    enemyPath[3][2][2]=18
    enemyPath[3][2][3]=36
    enemyPath[3][2][4]=54
    enemyPath[3][2][5]=72
    enemyPath[3][2][6]=90
    enemyPath[3][2][7]=108
    enemyPath[3][2][8]=126
    enemyPath[3][2][9]=144
    enemyPath[3][2][10]=162
    enemyPath[3][2][11]=180
    enemyPath[3][2][12]=198
    enemyPath[3][2][13]=216
    enemyPath[3][2][14]=234
    enemyPath[3][2][15]=252
    enemyPath[3][2][16]=-90
    enemyPath[3][2][17]=-72
    enemyPath[3][2][18]=-54
    enemyPath[3][2][19]=-36
    enemyPath[3][2][20]=-18
    enemyPath[3][2][21]=0
    enemyPath[3][3][1]=enemy_speed
    enemyPath[3][3][2]=0.95*enemy_speed
    enemyPath[3][3][3]=0.81*enemy_speed
    enemyPath[3][3][4]=0.59*enemy_speed
    enemyPath[3][3][5]=0.31*enemy_speed
    enemyPath[3][3][6]=0
    enemyPath[3][3][7]=-0.31*enemy_speed
    enemyPath[3][3][8]=-0.59*enemy_speed
    enemyPath[3][3][9]=-0.81*enemy_speed
    enemyPath[3][3][10]=-0.95*enemy_speed
    enemyPath[3][3][11]=-enemy_speed
    enemyPath[3][3][12]=-0.95*enemy_speed
    enemyPath[3][3][13]=-0.81*enemy_speed
    enemyPath[3][3][14]=-0.59*enemy_speed
    enemyPath[3][3][15]=-0.31*enemy_speed
    enemyPath[3][3][16]=0
    enemyPath[3][3][17]=0.31*enemy_speed
    enemyPath[3][3][18]=0.59*enemy_speed
    enemyPath[3][3][19]=0.81*enemy_speed
    enemyPath[3][3][20]=0.95*enemy_speed
    enemyPath[3][3][21]=enemy_speed
    enemyPath[3][4][1]=0
    enemyPath[3][4][2]=0.31*enemy_speed
    enemyPath[3][4][3]=0.59*enemy_speed
    enemyPath[3][4][4]=0.81*enemy_speed
    enemyPath[3][4][5]=0.95*enemy_speed
    enemyPath[3][4][6]=enemy_speed
    enemyPath[3][4][7]=0.95*enemy_speed
    enemyPath[3][4][8]=0.81*enemy_speed
    enemyPath[3][4][9]=0.59*enemy_speed
    enemyPath[3][4][10]=0.31*enemy_speed
    enemyPath[3][4][11]=0
    enemyPath[3][4][12]=-0.31*enemy_speed
    enemyPath[3][4][13]=-0.59*enemy_speed
    enemyPath[3][4][14]=-0.81*enemy_speed
    enemyPath[3][4][15]=-0.95*enemy_speed
    enemyPath[3][4][16]=-enemy_speed
    enemyPath[3][4][17]=-0.95*enemy_speed
    enemyPath[3][4][18]=-0.81*enemy_speed
    enemyPath[3][4][19]=-0.59*enemy_speed
    enemyPath[3][4][20]=-0.31*enemy_speed
    enemyPath[3][4][21]=0
    ’round r=10
    enemyPath[4][0][0]=21
    enemyPath[4][1][1]=110
    enemyPath[4][1][2]=120
    enemyPath[4][1][3]=130
    enemyPath[4][1][4]=140
    enemyPath[4][1][5]=150
    enemyPath[4][1][6]=160
    enemyPath[4][1][7]=170
    enemyPath[4][1][8]=180
    enemyPath[4][1][9]=190
    enemyPath[4][1][10]=200
    enemyPath[4][1][11]=210
    enemyPath[4][1][12]=220
    enemyPath[4][1][13]=230
    enemyPath[4][1][14]=240
    enemyPath[4][1][15]=250
    enemyPath[4][1][16]=260
    enemyPath[4][1][17]=270
    enemyPath[4][1][18]=280
    enemyPath[4][1][19]=290
    enemyPath[4][1][20]=300
    enemyPath[4][1][21]=500
    enemyPath[4][2][1]=0
    enemyPath[4][2][2]=18
    enemyPath[4][2][3]=36
    enemyPath[4][2][4]=54
    enemyPath[4][2][5]=72
    enemyPath[4][2][6]=90
    enemyPath[4][2][7]=108
    enemyPath[4][2][8]=126
    enemyPath[4][2][9]=144
    enemyPath[4][2][10]=162
    enemyPath[4][2][11]=180
    enemyPath[4][2][12]=198
    enemyPath[4][2][13]=216
    enemyPath[4][2][14]=234
    enemyPath[4][2][15]=252
    enemyPath[4][2][16]=-90
    enemyPath[4][2][17]=-72
    enemyPath[4][2][18]=-54
    enemyPath[4][2][19]=-36
    enemyPath[4][2][20]=-18
    enemyPath[4][2][21]=0
    enemyPath[4][3][1]=enemy_speed
    enemyPath[4][3][2]=0.95*enemy_speed
    enemyPath[4][3][3]=0.81*enemy_speed
    enemyPath[4][3][4]=0.59*enemy_speed
    enemyPath[4][3][5]=0.31*enemy_speed
    enemyPath[4][3][6]=0
    enemyPath[4][3][7]=-0.31*enemy_speed
    enemyPath[4][3][8]=-0.59*enemy_speed
    enemyPath[4][3][9]=-0.81*enemy_speed
    enemyPath[4][3][10]=-0.95*enemy_speed
    enemyPath[4][3][11]=-enemy_speed
    enemyPath[4][3][12]=-0.95*enemy_speed
    enemyPath[4][3][13]=-0.81*enemy_speed
    enemyPath[4][3][14]=-0.59*enemy_speed
    enemyPath[4][3][15]=-0.31*enemy_speed
    enemyPath[4][3][16]=0
    enemyPath[4][3][17]=0.31*enemy_speed
    enemyPath[4][3][18]=0.59*enemy_speed
    enemyPath[4][3][19]=0.81*enemy_speed
    enemyPath[4][3][20]=0.95*enemy_speed
    enemyPath[4][3][21]=enemy_speed
    enemyPath[4][4][1]=0
    enemyPath[4][4][2]=0.31*enemy_speed
    enemyPath[4][4][3]=0.59*enemy_speed
    enemyPath[4][4][4]=0.81*enemy_speed
    enemyPath[4][4][5]=0.95*enemy_speed
    enemyPath[4][4][6]=enemy_speed
    enemyPath[4][4][7]=0.95*enemy_speed
    enemyPath[4][4][8]=0.81*enemy_speed
    enemyPath[4][4][9]=0.59*enemy_speed
    enemyPath[4][4][10]=0.31*enemy_speed
    enemyPath[4][4][11]=0
    enemyPath[4][4][12]=-0.31*enemy_speed
    enemyPath[4][4][13]=-0.59*enemy_speed
    enemyPath[4][4][14]=-0.81*enemy_speed
    enemyPath[4][4][15]=-0.95*enemy_speed
    enemyPath[4][4][16]=-enemy_speed
    enemyPath[4][4][17]=-0.95*enemy_speed
    enemyPath[4][4][18]=-0.81*enemy_speed
    enemyPath[4][4][19]=-0.59*enemy_speed
    enemyPath[4][4][20]=-0.31*enemy_speed
    enemyPath[4][4][21]=0
    ’round r=15 + exit down
    enemyPath[5][0][0]=27
    enemyPath[5][1][1]=120
    enemyPath[5][1][2]=125
    enemyPath[5][1][3]=150
    enemyPath[5][1][4]=165
    enemyPath[5][1][5]=180
    enemyPath[5][1][6]=195
    enemyPath[5][1][7]=210
    enemyPath[5][1][8]=225
    enemyPath[5][1][9]=240
    enemyPath[5][1][10]=255
    enemyPath[5][1][11]=270
    enemyPath[5][1][12]=285
    enemyPath[5][1][13]=300
    enemyPath[5][1][14]=315
    enemyPath[5][1][15]=330
    enemyPath[5][1][16]=345
    enemyPath[5][1][17]=360
    enemyPath[5][1][18]=375
    enemyPath[5][1][19]=390
    enemyPath[5][1][20]=405
    enemyPath[5][1][21]=600
    enemyPath[5][1][22]=615
    enemyPath[5][1][23]=630
    enemyPath[5][1][24]=645
    enemyPath[5][1][254]=660
    enemyPath[5][1][26]=675
    enemyPath[5][1][27]=800
    enemyPath[5][2][1]=0
    enemyPath[5][2][2]=18
    enemyPath[5][2][3]=36
    enemyPath[5][2][4]=54
    enemyPath[5][2][5]=72
    enemyPath[5][2][6]=90
    enemyPath[5][2][7]=108
    enemyPath[5][2][8]=126
    enemyPath[5][2][9]=144
    enemyPath[5][2][10]=162
    enemyPath[5][2][11]=180
    enemyPath[5][2][12]=198
    enemyPath[5][2][13]=216
    enemyPath[5][2][14]=234
    enemyPath[5][2][15]=252
    enemyPath[5][2][16]=-90
    enemyPath[5][2][17]=-72
    enemyPath[5][2][18]=-54
    enemyPath[5][2][19]=-36
    enemyPath[5][2][20]=-18
    enemyPath[5][2][21]=0
    enemyPath[5][2][22]=18
    enemyPath[5][2][23]=36
    enemyPath[5][2][24]=54
    enemyPath[5][2][25]=72
    enemyPath[5][2][26]=90
    enemyPath[5][2][27]=90
    enemyPath[5][3][1]=enemy_speed
    enemyPath[5][3][2]=0.95*enemy_speed
    enemyPath[5][3][3]=0.81*enemy_speed
    enemyPath[5][3][4]=0.59*enemy_speed
    enemyPath[5][3][5]=0.31*enemy_speed
    enemyPath[5][3][6]=0
    enemyPath[5][3][7]=-0.31*enemy_speed
    enemyPath[5][3][8]=-0.59*enemy_speed
    enemyPath[5][3][9]=-0.81*enemy_speed
    enemyPath[5][3][10]=-0.95*enemy_speed
    enemyPath[5][3][11]=-enemy_speed
    enemyPath[5][3][12]=-0.95*enemy_speed
    enemyPath[5][3][13]=-0.81*enemy_speed
    enemyPath[5][3][14]=-0.59*enemy_speed
    enemyPath[5][3][15]=-0.31*enemy_speed
    enemyPath[5][3][16]=0
    enemyPath[5][3][17]=0.31*enemy_speed
    enemyPath[5][3][18]=0.59*enemy_speed
    enemyPath[5][3][19]=0.81*enemy_speed
    enemyPath[5][3][20]=0.95*enemy_speed
    enemyPath[5][3][21]=enemy_speed
    enemyPath[5][3][22]=0.95*enemy_speed
    enemyPath[5][3][23]=0.81*enemy_speed
    enemyPath[5][3][24]=0.59*enemy_speed
    enemyPath[5][3][25]=0.31*enemy_speed
    enemyPath[5][3][26]=0
    enemyPath[5][3][27]=0
    enemyPath[5][4][1]=0
    enemyPath[5][4][2]=0.31*enemy_speed
    enemyPath[5][4][3]=0.59*enemy_speed
    enemyPath[5][4][4]=0.81*enemy_speed
    enemyPath[5][4][5]=0.95*enemy_speed
    enemyPath[5][4][6]=enemy_speed
    enemyPath[5][4][7]=0.95*enemy_speed
    enemyPath[5][4][8]=0.81*enemy_speed
    enemyPath[5][4][9]=0.59*enemy_speed
    enemyPath[5][4][10]=0.31*enemy_speed
    enemyPath[5][4][11]=0
    enemyPath[5][4][12]=-0.31*enemy_speed
    enemyPath[5][4][13]=-0.59*enemy_speed
    enemyPath[5][4][14]=-0.81*enemy_speed
    enemyPath[5][4][15]=-0.95*enemy_speed
    enemyPath[5][4][16]=-enemy_speed
    enemyPath[5][4][17]=-0.95*enemy_speed
    enemyPath[5][4][18]=-0.81*enemy_speed
    enemyPath[5][4][19]=-0.59*enemy_speed
    enemyPath[5][4][20]=-0.31*enemy_speed
    enemyPath[5][4][21]=0
    enemyPath[5][4][22]=0.31*enemy_speed
    enemyPath[5][4][23]=0.59*enemy_speed
    enemyPath[5][4][24]=0.81*enemy_speed
    enemyPath[5][4][25]=0.95*enemy_speed
    enemyPath[5][4][26]=enemy_speed
    enemyPath[5][4][27]=enemy_speed
    enemyPath[6][0][0]=3
    enemyPath[6][1][1]=1
    enemyPath[6][1][2]=80
    enemyPath[6][1][3]=200
    enemyPath[6][2][1]=0
    enemyPath[6][2][2]=90
    enemyPath[6][2][3]=-90
    enemyPath[6][3][1]=0
    enemyPath[6][3][2]=0
    enemyPath[6][3][3]=0
    enemyPath[6][4][1]=0
    enemyPath[6][4][2]=enemy_speed
    enemyPath[6][4][3]=-enemy_speed
    EndSub
    Sub create_level1   ‘this define the behavior of the différent squadron along the time play for level 1
    level1[1][1]=20    ‘when timeplay=level1[1][1]
    level1[1][2]= 2     ‘ lauch enemy with Path level1[1][2]
    level1[1][3]= -10   ‘ at x coordinate level1[1][3]
    level1[1][4] = 0      ‘ at y coordinate level1[1][4]
    level1[1][5] = 1      ‘ 1 for create enemy at the left side; 2 for the right side of screen
    level1[1][6] = 4      ‘level[1][6] is the number of enemies
    level1[1][7] = 1      ‘type of enemy
    level1[2][1]= 80
    level1[2][2]= 6
    level1[2][3]= gameWidth/2
    level1[2][4] = -500
    level1[2][5] = 1
    level1[2][6] = 3
    level1[2][7] = 1
    level1[3][1]= 150
    level1[3][2]= 0
    level1[3][3]= -10
    level1[3][4] = 0
    level1[3][5] = 1
    level1[3][6] = 6
    level1[3][7] = 2
    level1[4][1]= 280
    level1[4][2]= 4
    level1[4][3]= -10
    level1[4][4] = 0
    level1[4][5] = 1
    level1[4][6] = 3
    level1[4][7] = 2
    level1[5][1]= 410
    level1[5][2]= 6
    level1[5][3]= gameWidth/3
    level1[5][4] = -50
    level1[5][5] = 1
    level1[5][6] = 3
    level1[5][7] = 1
    level1[6][1]= 430
    level1[6][2]= 6
    level1[6][3]= 2*gameWidth/3
    level1[6][4] = -50
    level1[6][5] = 2
    level1[6][6] = 3
    level1[6][7] = 1
    level1[5][1]= 500
    level1[5][2]= 6
    level1[5][3]= gameWidth/3
    level1[5][4] = -50
    level1[5][5] = 1
    level1[5][6] = 6
    level1[5][7] = 2
    level1[6][1]= 590
    level1[6][2]= 5
    level1[6][3]= 100
    level1[6][4] = -80
    level1[6][5] = 1
    level1[6][6] = 3
    level1[6][7] = 3
    level1[7][1]= 690
    level1[7][2]= 6
    level1[7][3]= gameWidth/3
    level1[7][4] = -50
    level1[7][5] = 2
    level1[7][6] = 3
    level1[7][7] = 2
    For i= 1 To 10
    Level1[7+i][1]=700+50*i
    level1[7+i][2]= 6
    level1[7+i][3]=  math.GetrandomNumber(gameWidth)
    level1[7+i][4] = -50 +i
    level1[7+i][5] = math.GetrandomNumber(2)
    level1[7+i][6] = math.GetrandomNumber(3)
    level1[7+i][7] = math.GetrandomNumber(2)
    EndFor
    level1[18][1]= 1300
    level1[18][2]= 1
    level1[18][3]= gameWidth
    level1[18][4] = -10
    level1[18][5] = 2
    level1[18][6] = 6
    level1[18][7] = 2
    For i= 1 To 10
    Level1[18+i][1]=1330+50*i
    level1[18+i][2]= 4+math.GetrandomNumber(2)
    level1[18+i][3]=  math.GetrandomNumber(50)
    level1[18+i][4] = i
    level1[18+i][5] = 1
    level1[18+i][6] = math.GetrandomNumber(3)
    level1[18+i][7] = math.GetrandomNumber(2)
    EndFor
    For i= 1 To 10
    Level1[28+i][1]=1900+50*i
    level1[28+i][2]= 4+math.GetrandomNumber(2)
    level1[28+i][3]=  -math.GetrandomNumber(50)
    level1[28+i][4] = i
    level1[28+i][5] = 1
    level1[28+i][6] = math.GetrandomNumber(3)
    level1[28+i][7] = math.GetrandomNumber(2)
    EndFor
    For i= 1 To 10
    Level1[38+i][1]=2450+100*i
    level1[38+i][2]= 6
    level1[38+i][3]=  math.GetrandomNumber(gameWidth)
    level1[38+i][4] = -50 +i
    level1[38+i][5] = math.GetrandomNumber(2)
    level1[38+i][6] = math.GetrandomNumber(5)
    level1[38+i][7] = math.GetrandomNumber(2)
    EndFor
    EndSub
  2. // ‘ Copyright (c) Microsoft Corporation. All rights reserved.

vea también:   http://www.empiezoinformatica.wordpress.com