package server;
import java.io.File;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.Socket;
import org.json.JSONException;
import org.json.JSONObject;
import org.json.JSONTokener;
public class ClientGame extends BaseGame {
Socket socket;
int selectedPlayer;
int selectedCards;
int chosenColor;
int chosenValue;
boolean useColor;
boolean useValue;
boolean placeCard;
boolean trashCard;
//Options stuff
final File options = new File("options.json");
JSONObject root;
int difficulty;
int fontSize;
protected void loadOptions(){
try {
JSONTokener tokener = new JSONTokener(options.toURI().toURL().openStream());
root = new JSONObject(tokener);
difficulty = root.getInt("difficulty");
fontSize = root.getInt("fontSize");
if(difficulty < 0) difficulty = 0;
if(fontSize <= 0) fontSize = 20;
} catch (JSONException e) {
e.printStackTrace();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public void resetMoveValues(){
selectedPlayer = -1;
chosenColor = -1;
chosenValue = -1;
selectedCards = 0;
useColor = useValue = trashCard = placeCard = false;
}
boolean checkValidMove(){
if(selectedCards == 0) return false;
if(!hintAvailable() && (useColor || useValue)) return false;
if((trashCard || placeCard) && selectedCards == 1) return true;
int countCards = 0;
for(int i=0; i<CARDS_PER_PLAYER; ++i){
AbstractPlayer p = players[selectedPlayer];
if(useColor){
if(p.getCard(i).getColorInt() == chosenColor) countCards++;
} else if(useValue){
if(p.getCard(i).getValue() == chosenValue) countCards++;
}
}
return countCards == selectedCards;
}
@Override
protected void createUI() {
// TODO Auto-generated method stub
}
@Override
protected void setNoCard(int index) {
// TODO Auto-generated method stub
}
@Override
public void loadFont() {
// TODO Auto-generated method stub
}
@Override
public Object getFont() {
// TODO Auto-generated method stub
return null;
}
@Override
public void printMessage(String msg, MSG_TYPES type) {
// TODO Auto-generated method stub
}
@Override
protected void showTrash() {
// TODO Auto-generated method stub
}
}