multiple objects with same tag not recognized

im making a game where by if the player drops a object to house he scores a point. i have done it so that when the object touchs a collider on the house the object is destoryed and then the point get appended by one. how ever i have several houses all with the same tag so when i use the following code nothing happens… help

public Despawn_Objects ScoreFromSnow;
//public Despawn_Objects ScoreFrom1;
public int points;
// Use this for initialization
void Start () {
	GetComponent<Despawn_Objects> (); //get the script despawn_objects
}

// Update is called once per frame
void Update () {
	GameObject colliderSnow = GameObject.FindGameObjectsWithTag ("scorer")[0]; 
	ScoreFromSnow = colliderSnow.GetComponent<Despawn_Objects> ();
	if(ScoreFromSnow.gone==true){
		ScoreFromSnow.gone=false;
		points++;
		guiText.text = points.ToString ();
	}

}

}

the code only works when i have only one object with tag “scorer” any more than that and nothing works.

Why would you expect this code to EVER loop more then once?

 while(ScoreFromSnow.gone==true){
         ScoreFromSnow.gone=false;
         ...
}

Here is the code fix

void Update () {
    GameObject[] colliderSnow = GameObject.FindGameObjectsWithTag ("scorer"); 
    for each(GameObject scorer in colliderSnow){
        ScoreFromSnow = scorer.GetComponent<Despawn_Objects> ();
        if(ScoreFromSnow.gone==true){
            ScoreFromSnow.gone=false;
            points++;
            guiText.text = points.ToString ();
        }
    }
}

Note this is a horribly inefficient script.