examples/blocks/blocks/field.go
func (f *Field) flushLine(j int) bool {
	for i := 0; i < fieldBlockNumX; i++ {
		if f.blocks[i][j] == BlockTypeNone {
			return false
		}
	}
	for j2 := j; 1 <= j2; j2-- {
		for i := 0; i < fieldBlockNumX; i++ {
			f.blocks[i][j2] = f.blocks[i][j2-1]
		}
	}
	for i := 0; i < fieldBlockNumX; i++ {
		f.blocks[i][0] = BlockTypeNone
	}
	return true
}
func (f *Field) flushLine(j int) bool {
	for i := 0; i < fieldBlockNumX; i++ {
		if f.blocks[i][j] == BlockTypeNone {
			return false
		}
	}
	for j2 := j; 1 <= j2; j2-- {
		for i := 0; i < fieldBlockNumX; i++ {
			f.blocks[i][j2] = f.blocks[i][j2-1]
		}
	}
	for i := 0; i < fieldBlockNumX; i++ {
		f.blocks[i][0] = BlockTypeNone
	}
	return true
}
func ( f * Field ) flushLine ( j int ) bool { for i := 0 ; i < fieldBlockNumX ; i ++ { if f . blocks [ i ] [ j ] == BlockTypeNone { return false } } for j2 := j ; 1 <= j2 ; j2 -- { for i := 0 ; i < fieldBlockNumX ; i ++ { f . blocks [ i ] [ j2 ] = f . blocks [ i ] [ j2 - 1 ] } } for i := 0 ; i < fieldBlockNumX ; i ++ { f . blocks [ i ] [ 0 ] = BlockTypeNone } return true }
// flushLine flushes the line j if possible, and if the line is flushed,
// the other lines above the line go down.
//
// flushLine returns a boolean value indicating whether
// the line is actually flushed.
flushLine flushes the line j if possible and if the line is flushed the other lines above the line go down . flushLine returns a boolean value indicating whether the line is actually flushed .