Skip to content

somzzz/DevAcad---Player

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 

Repository files navigation

public class GameProtocol { boolean Finished; Queue pachet = new LinkedList(); String myCurrentCard, hisCurrentCard; String result; boolean wonRound;

public GameProtocol (){
    Finished = true;
    pachet = deck();
    wonRound = false;
}

public ArrayList<String> deckGenerator (){
    ArrayList<String> deck = new ArrayList<String>();
    for (int i = 2; i <= 14; i++){
        deck.add( i + "-hearts");
        deck.add( i + "-clubs");
        deck.add( i + "-diamonds");
        deck.add( i + "-spades");
    }
    return deck;
}

public Queue<String> deck ()
{
    int randomIndex;
    ArrayList<String> pack = new ArrayList<String>();
    Queue<String> myPack = new LinkedList<String>();
    pack = deckGenerator();
    while (!pack.isEmpty())
    {
        randomIndex = (int) (Math.random() * pack.size());
        myPack.add(pack.get(randomIndex));
        pack.remove(randomIndex);
    }
    return myPack;
}

public int compare(String card1, String card2)
{
    StringTokenizer st1 = new StringTokenizer(card1, "-");
    StringTokenizer st2 = new StringTokenizer(card2, "-");
    if (  Integer.parseInt(st1.nextToken()) >  Integer.parseInt(st2.nextToken()) || Integer.parseInt(st1.nextToken()) == 11 && Integer.parseInt(st2.nextToken()) != 11)
    {
        return 1;
    }
    else
        if ( Integer.parseInt(st1.nextToken()) < Integer.parseInt(st2.nextToken()) || Integer.parseInt(st2.nextToken()) == 11 && Integer.parseInt(st1.nextToken()) != 11)
        {
            return -1;
        }
     return 0;
}

public String processInput (String str)
{
	ArrayList<String> message = new ArrayList<String>();
     StringTokenizer st = new StringTokenizer(str);
     while (st.hasMoreTokens()) {
         message.add(st.nextToken());
     }
     
    if (message.get(0) == null)
    {
        return "Hello!";
    }

    if (message.get(0).compareTo("Hello!") == 0)
    {
        return "wanna_play";
    }
    
    if (message.get(0).compareTo("wanna_play") == 0) {
    	if (Finished) {
    		return "YES";
    	} else {
    		return "NO";
    	}
    }
    
    if (message.get(0).compareTo("YES") == 0)
    {
        Finished = false;
        myCurrentCard = pachet.remove();
        return "war " + myCurrentCard;
    }
    
    if (message.get(0).compareTo("NO") == 0)
    {
        return "Sleep";
    }
    
    if (message.get(0).compareTo("war") == 0) {
    	hisCurrentCard = message.get(1);
    	myCurrentCard = pachet.remove();
    	return myCurrentCard;   	
    }
    
    if (message.get(0).compareTo("result") == 0) {
    	if ( message.get(1).compareTo("WIN") == 0) {
    		pachet.add(hisCurrentCard);
    		pachet.add(myCurrentCard);
    		wonRound = true;
    	} else if (message.get(1).compareTo("LOSE") == 0) {
    		wonRound = false;
    	} else if (message.get(1).compareTo("DRAW") == 0) {
    		
    	}
    	
    	return "ACK";
    	
    }
    
    if (message.get(0).compareTo("ACK") == 0) {
    	if (result.compareTo("WIN") == 0) {
    		pachet.add(hisCurrentCard);
    		pachet.add(myCurrentCard);
    		wonRound = true;
    	} else if (result.compareTo("LOSE") == 0) {
    		wonRound = false;
    	} else if (result.compareTo("DRAW") == 0) {
    		
    	}
    	result = "";
    }
    
    // Card
    hisCurrentCard = message.get(0);
	int compareResult = compare(myCurrentCard, message.get(0));
	if (compareResult == 0) {
		result = "DRAW";
		return "result DRAW";
	} else if (compareResult == 1) {
		result = "WIN";
		
		return "result WIN";
	} else if (compareResult == -1) {
		result = "LOSE";
		wonRound = false;
		return "result LOSE";
	}
	
	if (wonRound) {
        myCurrentCard = pachet.remove();
        return "war " + myCurrentCard;
	}
	
	return "";
}
public boolean notFinished (){
    return Finished;
}

}

About

Hackathon project

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages