private ArrayList<CardPattern> hasBomb(ArrayList<Card> cards){
		ArrayList<CardPattern> bombCardPatterns = new ArrayList<CardPattern>();
		CardPatternFactory factory = new CardPatternFactory();
		
		Collections.sort(cards);
		int i=0;
		int sameCardsCounter=0;
		int size = cards.size();
		int value=0;
		while(i<size){
			if(value==cards.get(i).getValue()){
				sameCardsCounter++;
				if(sameCardsCounter==4){
					ArrayList<Card> bombCards = new ArrayList<Card>();
					bombCards.add(cards.get(i-3));
					bombCards.add(cards.get(i-2));
					bombCards.add(cards.get(i-1));
					bombCards.add(cards.get(i));
					
					bombCardPatterns.add(factory.createCardPattern(bombCards));
					
					sameCardsCounter=0;
				}
			}else{
				value=cards.get(i).getValue();
				sameCardsCounter=0;
			}
			i++;
		}
		
		Collections.sort(cards, new CardComparatorPerColorPerVal());
		
		
		i=0;		
		size = cards.size();
		int cardsCount=0;
		int color=0;
		value=0;
		while(i<size){
			if((cards.get(i).getColor()==color) && (cards.get(i).getValue()==value+1)){
				value=cards.get(i).getValue();
				cardsCount++;
				if(cardsCount>=4){
					ArrayList<Card> bombCards = new ArrayList<Card>();
					for(int j=0;j<=cardsCount;j++){
						bombCards.add(cards.get(i-j));
					}
					bombCardPatterns.add(factory.createCardPattern(bombCards));
				}
			}else{
				value=cards.get(i).getValue();
				color = cards.get(i).getColor();
				cardsCount=0;
			}
			i++;
		}
		
		return bombCardPatterns;
	}