Identical Arrays not identical

BlitzMax Forums/BlitzMax Programming/Identical Arrays not identical

I have four Arrays that are indentical - [60,60]. I set each value in all four to True at the same time. I then set the same values to False at the same time:

For CountC = 1 To 553
    Local X, Y
    ReadData X, Y
    Shield1[X,Y] = False
    Shield2[X,Y] = False
    Shield3[X,Y] = False
    Shield4[X,Y] = False
Next


But when i access them it turns out that they aren't identical. 1 and 3 are identical, 2 and 4 are identical but aren't how they should be (because i'm plotting the True values and 2 and 4 have got a whole diagonal chunk missing from the image).

I have tried changing where they are but that didn't work and in the above code i tried to set it up as:

For CountC = 1 To 553
	Local X, Y
	ReadData X, Y
	Shield1[X,Y] = False
	Shield2[X,Y] = Shield1[X,Y]
	Shield3[X,Y] = False
	Shield4[X,Y] = Shield1[X,Y]
Next


But that didn't work either. After i set the False values i only access them to draw them so i can't see what's going wrong?

Can anyone help?

I'll have a look if u post a working example.

Ok thanks, here's the whole code:

Strict

Type Invader
	Field ID:TLink
	Field PosX:Float
	Field PosY:Float
	Field IType:Int
	
	Global MoveX:Float
	Global MoveY:Float
	
	Method Draw()
		If IType = 1 Then SetColor 255, 0, 0
		If IType = 2 Then SetColor 0, 255, 0
		If IType = 3 Then SetColor 0, 0, 255
		
		DrawRect PosX+5, PosY+5, 40, 40
	End Method
End Type

Type Bullet
	Field ID:TLink
	Field PosX:Float
	Field PosY:Float
	Field Direction:Float
	Field BType:Int
End Type

Global InvaderList:TList = CreateList()
Global BulletList:TList  = CreateList()

Global ColArr[11,5]
Global RowArr[5,11]

Global Shield1[60,60]
Global Shield2[60,60]
Global Shield3[60,60]
Global Shield4[60,60]

AppTitle = "Space Invaders"
Graphics 800, 600, 0, 0
HideMouse

CreateInvaders()

While Not KeyHit(KEY_ESCAPE)
	Draw()
	
	FlushMem
Wend


Function Draw()
	Local D:Invader
	Local CountX:Int
	Local CountY:Int
	
	Cls
	SetColor 255, 255, 255
	DrawLine 0, 25, 800, 25
	DrawLine 0, 560, 800, 560
	DrawText "Score: ", 5, 5
	
	For CountX = 1 To 59
	For CountY = 1 To 59
		If Shield1[CountX,CountY] = True Then Plot(CountX+112,CountY+450)
		If Shield2[CountX,CountY] = True Then Plot(CountX+284,CountY+450)
		If Shield3[CountX,CountY] = True Then Plot(CountX+456,CountY+450)
		If Shield4[CountX,CountY] = True Then Plot(CountX+628,CountY+450)
	Next
	Next
	
	For D:Invader = EachIn InvaderList
		D.Draw()
	Next
	Flip
	
	D      = Null
	CountX = Null
	CountY = Null
End Function


Function CreateInvaders()
	Local C:Invader
	Local CountC:Int
	Local CountR:Int
	
	For CountC = 0 To 10
		For CountR = 0 To 4
			C:Invader = New Invader
			C.ID = ListAddLast(InvaderList,C)
			C.PosX = Float(CountC*50)
			C.PosY = Float((CountR*50)+85)
			
			If CountR+1 = 1 Then C.IType = 3; Continue 'This gives a difference in the rows
			If CountR+1 < 4 Then C.IType = 2; Continue
			If CountR+1 < 6 Then C.IType = 1; Continue
			
			Rem
				Allows us to know where each Invader is situated. This means we can see which
				invaders can fire (as we will only allow the front line to shoot - dont want to
				kill themselves!)
			End Rem
			ColArr[CountC+1,CountR+1] = C.ID
			RowArr[CountR+1,CountC+1] = C.ID
		Next
	Next
	
	C.MoveX = 125.0 'Positions the invaders directly in middle of screen
	C.MoveY = 0.0
	
	For CountC = 1 To 60
		For CountR = 1 To 60
			Shield1[CountC,CountR] = True
			Shield2[CountC,CountR] = Shield1[CountC,CountR]
			Shield3[CountC,CountR] = True
			Shield4[CountC,CountR] = Shield1[CountC,CountR]
		Next
	Next
	
	RestoreData Color
	For CountC = 1 To 553
		Local X, Y
		ReadData X, Y
		Shield1[X,Y] = False
		Shield2[X,Y] = False
		Shield3[X,Y] = False
		Shield4[X,Y] = False
	Next
	
	C      = Null
	CountC = Null
	CountR = Null
End Function

#Color
DefData 1, 1
DefData 1, 2
DefData 1, 3
DefData 1, 4
DefData 1, 5
DefData 1, 6
DefData 1, 7
DefData 1, 8
DefData 1, 9
DefData 1, 10
DefData 1, 11
DefData 1, 12
DefData 1, 13
DefData 1, 14
DefData 2, 1
DefData 2, 2
DefData 2, 3
DefData 2, 4
DefData 2, 5
DefData 2, 6
DefData 2, 7
DefData 2, 8
DefData 2, 9
DefData 2, 10
DefData 2, 11
DefData 2, 12
DefData 2, 13
DefData 3, 1
DefData 3, 2
DefData 3, 3
DefData 3, 4
DefData 3, 5
DefData 3, 6
DefData 3, 7
DefData 3, 8
DefData 3, 9
DefData 3, 10
DefData 3, 11
DefData 3, 12
DefData 4, 1
DefData 4, 2
DefData 4, 3
DefData 4, 4
DefData 4, 5
DefData 4, 6
DefData 4, 7
DefData 4, 8
DefData 4, 9
DefData 4, 10
DefData 4, 11
DefData 5, 1
DefData 5, 2
DefData 5, 3
DefData 5, 4
DefData 5, 5
DefData 5, 6
DefData 5, 7
DefData 5, 8
DefData 5, 9
DefData 5, 10
DefData 6, 1
DefData 6, 2
DefData 6, 3
DefData 6, 4
DefData 6, 5
DefData 6, 6
DefData 6, 7
DefData 6, 8
DefData 6, 9
DefData 7, 1
DefData 7, 2
DefData 7, 3
DefData 7, 4
DefData 7, 5
DefData 7, 6
DefData 7, 7
DefData 7, 8
DefData 8, 1
DefData 8, 2
DefData 8, 3
DefData 8, 4
DefData 8, 5
DefData 8, 6
DefData 8, 7
DefData 9, 1
DefData 9, 2
DefData 9, 3
DefData 9, 4
DefData 9, 5
DefData 9, 6
DefData 10, 1
DefData 10, 2
DefData 10, 3
DefData 10, 4
DefData 10, 5
DefData 11, 1
DefData 11, 2
DefData 11, 3
DefData 11, 4
DefData 12, 1
DefData 12, 2
DefData 12, 3
DefData 13, 1
DefData 13, 2
DefData 14, 1
DefData 19, 46
DefData 19, 47
DefData 19, 48
DefData 19, 49
DefData 19, 50
DefData 19, 51
DefData 19, 52
DefData 19, 53
DefData 19, 54
DefData 19, 55
DefData 19, 56
DefData 19, 57
DefData 19, 58
DefData 19, 59
DefData 20, 45
DefData 20, 46
DefData 20, 47
DefData 20, 48
DefData 20, 49
DefData 20, 50
DefData 20, 51
DefData 20, 52
DefData 20, 53
DefData 20, 54
DefData 20, 55
DefData 20, 56
DefData 20, 57
DefData 20, 58
DefData 20, 59
DefData 21, 45
DefData 21, 46
DefData 21, 47
DefData 21, 48
DefData 21, 49
DefData 21, 50
DefData 21, 51
DefData 21, 52
DefData 21, 53
DefData 21, 54
DefData 21, 55
DefData 21, 56
DefData 21, 57
DefData 21, 58
DefData 21, 59
DefData 22, 45
DefData 22, 46
DefData 22, 47
DefData 22, 48
DefData 22, 49
DefData 22, 50
DefData 22, 51
DefData 22, 52
DefData 22, 53
DefData 22, 54
DefData 22, 55
DefData 22, 56
DefData 22, 57
DefData 22, 58
DefData 22, 59
DefData 23, 45
DefData 23, 46
DefData 23, 47
DefData 23, 48
DefData 23, 49
DefData 23, 50
DefData 23, 51
DefData 23, 52
DefData 23, 53
DefData 23, 54
DefData 23, 55
DefData 23, 56
DefData 23, 57
DefData 23, 58
DefData 23, 59
DefData 24, 45
DefData 24, 46
DefData 24, 47
DefData 24, 48
DefData 24, 49
DefData 24, 50
DefData 24, 51
DefData 24, 52
DefData 24, 53
DefData 24, 54
DefData 24, 55
DefData 24, 56
DefData 24, 57
DefData 24, 58
DefData 24, 59
DefData 25, 45
DefData 25, 46
DefData 25, 47
DefData 25, 48
DefData 25, 49
DefData 25, 50
DefData 25, 51
DefData 25, 52
DefData 25, 53
DefData 25, 54
DefData 25, 55
DefData 25, 56
DefData 25, 57
DefData 25, 58
DefData 25, 59
DefData 26, 45
DefData 26, 46
DefData 26, 47
DefData 26, 48
DefData 26, 49
DefData 26, 50
DefData 26, 51
DefData 26, 52
DefData 26, 53
DefData 26, 54
DefData 26, 55
DefData 26, 56
DefData 26, 57
DefData 26, 58
DefData 26, 59
DefData 27, 45
DefData 27, 46
DefData 27, 47
DefData 27, 48
DefData 27, 49
DefData 27, 50
DefData 27, 51
DefData 27, 52
DefData 27, 53
DefData 27, 54
DefData 27, 55
DefData 27, 56
DefData 27, 57
DefData 27, 58
DefData 27, 59
DefData 28, 45
DefData 28, 46
DefData 28, 47
DefData 28, 48
DefData 28, 49
DefData 28, 50
DefData 28, 51
DefData 28, 52
DefData 28, 53
DefData 28, 54
DefData 28, 55
DefData 28, 56
DefData 28, 57
DefData 28, 58
DefData 28, 59
DefData 29, 45
DefData 29, 46
DefData 29, 47
DefData 29, 48
DefData 29, 49
DefData 29, 50
DefData 29, 51
DefData 29, 52
DefData 29, 53
DefData 29, 54
DefData 29, 55
DefData 29, 56
DefData 29, 57
DefData 29, 58
DefData 29, 59
DefData 30, 45
DefData 30, 46
DefData 30, 47
DefData 30, 48
DefData 30, 49
DefData 30, 50
DefData 30, 51
DefData 30, 52
DefData 30, 53
DefData 30, 54
DefData 30, 55
DefData 30, 56
DefData 30, 57
DefData 30, 58
DefData 30, 59
DefData 31, 45
DefData 31, 46
DefData 31, 47
DefData 31, 48
DefData 31, 49
DefData 31, 50
DefData 31, 51
DefData 31, 52
DefData 31, 53
DefData 31, 54
DefData 31, 55
DefData 31, 56
DefData 31, 57
DefData 31, 58
DefData 31, 59
DefData 32, 45
DefData 32, 46
DefData 32, 47
DefData 32, 48
DefData 32, 49
DefData 32, 50
DefData 32, 51
DefData 32, 52
DefData 32, 53
DefData 32, 54
DefData 32, 55
DefData 32, 56
DefData 32, 57
DefData 32, 58
DefData 32, 59
DefData 33, 45
DefData 33, 46
DefData 33, 47
DefData 33, 48
DefData 33, 49
DefData 33, 50
DefData 33, 51
DefData 33, 52
DefData 33, 53
DefData 33, 54
DefData 33, 55
DefData 33, 56
DefData 33, 57
DefData 33, 58
DefData 33, 59
DefData 34, 45
DefData 34, 46
DefData 34, 47
DefData 34, 48
DefData 34, 49
DefData 34, 50
DefData 34, 51
DefData 34, 52
DefData 34, 53
DefData 34, 54
DefData 34, 55
DefData 34, 56
DefData 34, 57
DefData 34, 58
DefData 34, 59
DefData 35, 45
DefData 35, 46
DefData 35, 47
DefData 35, 48
DefData 35, 49
DefData 35, 50
DefData 35, 51
DefData 35, 52
DefData 35, 53
DefData 35, 54
DefData 35, 55
DefData 35, 56
DefData 35, 57
DefData 35, 58
DefData 35, 59
DefData 36, 45
DefData 36, 46
DefData 36, 47
DefData 36, 48
DefData 36, 49
DefData 36, 50
DefData 36, 51
DefData 36, 52
DefData 36, 53
DefData 36, 54
DefData 36, 55
DefData 36, 56
DefData 36, 57
DefData 36, 58
DefData 36, 59
DefData 37, 45
DefData 37, 46
DefData 37, 47
DefData 37, 48
DefData 37, 49
DefData 37, 50
DefData 37, 51
DefData 37, 52
DefData 37, 53
DefData 37, 54
DefData 37, 55
DefData 37, 56
DefData 37, 57
DefData 37, 58
DefData 37, 59
DefData 38, 45
DefData 38, 46
DefData 38, 47
DefData 38, 48
DefData 38, 49
DefData 38, 50
DefData 38, 51
DefData 38, 52
DefData 38, 53
DefData 38, 54
DefData 38, 55
DefData 38, 56
DefData 38, 57
DefData 38, 58
DefData 38, 59
DefData 39, 45
DefData 39, 46
DefData 39, 47
DefData 39, 48
DefData 39, 49
DefData 39, 50
DefData 39, 51
DefData 39, 52
DefData 39, 53
DefData 39, 54
DefData 39, 55
DefData 39, 56
DefData 39, 57
DefData 39, 58
DefData 39, 59
DefData 40, 46
DefData 40, 47
DefData 40, 48
DefData 40, 49
DefData 40, 50
DefData 40, 51
DefData 40, 52
DefData 40, 53
DefData 40, 54
DefData 40, 55
DefData 40, 56
DefData 40, 57
DefData 40, 58
DefData 40, 59
DefData 45, 1
DefData 46, 1
DefData 46, 2
DefData 47, 1
DefData 47, 2
DefData 47, 3
DefData 48, 1
DefData 48, 2
DefData 48, 3
DefData 48, 4
DefData 49, 1
DefData 49, 2
DefData 49, 3
DefData 49, 4
DefData 49, 5
DefData 50, 1
DefData 50, 2
DefData 50, 3
DefData 50, 4
DefData 50, 5
DefData 50, 6
DefData 51, 1
DefData 51, 2
DefData 51, 3
DefData 51, 4
DefData 51, 5
DefData 51, 6
DefData 51, 7
DefData 52, 1
DefData 52, 2
DefData 52, 3
DefData 52, 4
DefData 52, 5
DefData 52, 6
DefData 52, 7
DefData 52, 8
DefData 53, 1
DefData 53, 2
DefData 53, 3
DefData 53, 4
DefData 53, 5
DefData 53, 6
DefData 53, 7
DefData 53, 8
DefData 53, 9
DefData 54, 1
DefData 54, 2
DefData 54, 3
DefData 54, 4
DefData 54, 5
DefData 54, 6
DefData 54, 7
DefData 54, 8
DefData 54, 9
DefData 54, 10
DefData 55, 1
DefData 55, 2
DefData 55, 3
DefData 55, 4
DefData 55, 5
DefData 55, 6
DefData 55, 7
DefData 55, 8
DefData 55, 9
DefData 55, 10
DefData 55, 11
DefData 56, 1
DefData 56, 2
DefData 56, 3
DefData 56, 4
DefData 56, 5
DefData 56, 6
DefData 56, 7
DefData 56, 8
DefData 56, 9
DefData 56, 10
DefData 56, 11
DefData 56, 12
DefData 57, 1
DefData 57, 2
DefData 57, 3
DefData 57, 4
DefData 57, 5
DefData 57, 6
DefData 57, 7
DefData 57, 8
DefData 57, 9
DefData 57, 10
DefData 57, 11
DefData 57, 12
DefData 57, 13
DefData 58, 1
DefData 58, 2
DefData 58, 3
DefData 58, 4
DefData 58, 5
DefData 58, 6
DefData 58, 7
DefData 58, 8
DefData 58, 9
DefData 58, 10
DefData 58, 11
DefData 58, 12
DefData 58, 13
DefData 58, 14
DefData 59, 1
DefData 59, 2
DefData 59, 3
DefData 59, 4
DefData 59, 5
DefData 59, 6
DefData 59, 7
DefData 59, 8
DefData 59, 9
DefData 59, 10
DefData 59, 11
DefData 59, 12
DefData 59, 13
DefData 59, 14
DefData 59, 15


The length is just because of all the datastatements i have in there atm.

first thing I've spotted is that your for loops are going 1 to 60 not 0 to 59 so you will get an attempt to index beyond array length error.

Ah. Well 0 to 59 sort of solved the problem but the image still looked a bit strange but 1 to 59 seemed to work. Wow that was confusing...

Thanks for the help!