Sauvegarde dans la base de données
This commit is contained in:
parent
5336bbc109
commit
130de1177d
|
@ -4,24 +4,30 @@ import android.preference.PreferenceManager;
|
|||
import android.util.SparseArray;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.GsonBuilder;
|
||||
import com.google.gson.TypeAdapter;
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
import com.google.gson.stream.JsonReader;
|
||||
import com.google.gson.stream.JsonToken;
|
||||
import com.google.gson.stream.JsonWriter;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStreamReader;
|
||||
import java.net.HttpURLConnection;
|
||||
import java.net.URL;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.Executors;
|
||||
|
||||
public class Game {
|
||||
private static final Gson GSON;
|
||||
private static final SparseArray<Game> GAMES = new SparseArray<>();
|
||||
|
||||
public int id;
|
||||
public GameType type;
|
||||
public Set<Player> players;
|
||||
public GameType gameType;
|
||||
public List<Player> players;
|
||||
public Bet bet;
|
||||
public Player attacker;
|
||||
public Player follower;
|
||||
|
@ -29,19 +35,60 @@ public class Game {
|
|||
// public boolean little, twenty_one, excuse;
|
||||
public int ends;
|
||||
public int handle;
|
||||
public Map<Player, Boolean> miseries;
|
||||
public List<Boolean> miseries;
|
||||
public boolean littleForAttacker, littleForDefenser;
|
||||
public boolean chelemAnnounced, chelemRealized;
|
||||
public List<Integer> points;
|
||||
|
||||
static {
|
||||
GSON = new GsonBuilder().registerTypeAdapter(Player.class, new TypeAdapter<Player>() {
|
||||
@Override
|
||||
public void write(JsonWriter out, Player value) throws IOException {
|
||||
if (value == null)
|
||||
out.nullValue();
|
||||
else
|
||||
out.value(value.getId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Player read(JsonReader in) throws IOException {
|
||||
if (in.peek() == JsonToken.NULL) {
|
||||
in.nextNull();
|
||||
return null;
|
||||
}
|
||||
|
||||
return Player.getPlayerById(in.nextInt());
|
||||
}
|
||||
}).registerTypeAdapter(Game.GameType.class, new TypeAdapter<Game.GameType>() {
|
||||
@Override
|
||||
public void write(JsonWriter out, GameType value) throws IOException {
|
||||
if (value == null)
|
||||
out.nullValue();
|
||||
else
|
||||
out.value(value.getNbPlayers());
|
||||
}
|
||||
|
||||
@Override
|
||||
public GameType read(JsonReader in) throws IOException {
|
||||
if (in.peek() == JsonToken.NULL) {
|
||||
in.nextNull();
|
||||
return null;
|
||||
}
|
||||
|
||||
return Game.GameType.values()[3 + in.nextInt()];
|
||||
}
|
||||
}).create();
|
||||
}
|
||||
|
||||
public int getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public GameType getType() {
|
||||
return type;
|
||||
public GameType getGameType() {
|
||||
return gameType;
|
||||
}
|
||||
|
||||
public Set<Player> getPlayers() {
|
||||
public List<Player> getPlayers() {
|
||||
return players;
|
||||
}
|
||||
|
||||
|
@ -69,7 +116,7 @@ public class Game {
|
|||
return handle;
|
||||
}
|
||||
|
||||
public Map<Player, Boolean> getMiseries() {
|
||||
public List<Boolean> getMiseries() {
|
||||
return miseries;
|
||||
}
|
||||
|
||||
|
@ -89,7 +136,7 @@ public class Game {
|
|||
return chelemRealized;
|
||||
}
|
||||
|
||||
public int calculateScore() {
|
||||
public void calculateScores() {
|
||||
// int ends = (little ? 1 : 0) + (twenty_one ? 1 : 0) + (excuse ? 1 : 0);
|
||||
int bound = ends == 0 ? 56 : ends == 1 ? 51 : ends == 2 ? 41 : 36;
|
||||
boolean win = attackScore >= bound;
|
||||
|
@ -119,11 +166,68 @@ public class Game {
|
|||
else if (chelemRealized)
|
||||
score += 200;
|
||||
|
||||
return score;
|
||||
attackScore = score;
|
||||
|
||||
Map<Player, Integer> scores = new HashMap<>();
|
||||
|
||||
for (int i = 0; i < getGameType().getNbPlayers(); ++i) {
|
||||
Player p = players.get(i);
|
||||
|
||||
int playerScore = 0;
|
||||
if (p != attacker && p != follower)
|
||||
playerScore = -score;
|
||||
else {
|
||||
if (p == attacker)
|
||||
playerScore += getGameType().getAttackMultiplier() * score;
|
||||
if (p == follower)
|
||||
playerScore += getGameType().getFollowMultiplier() * score;
|
||||
}
|
||||
|
||||
scores.put(p, playerScore);
|
||||
}
|
||||
|
||||
for (int i = 0; i < getGameType().getNbPlayers(); ++i) {
|
||||
System.err.println(getMiseries());
|
||||
if (getMiseries().get(i)) {
|
||||
//noinspection ConstantConditions
|
||||
scores.put(players.get(i), scores.get(players.get(i)) + 10 * (getGameType().getNbPlayers() - 1));
|
||||
for (int j = 0; j < getGameType().getNbPlayers(); ++j) {
|
||||
if (i == j)
|
||||
continue;
|
||||
//noinspection ConstantConditions
|
||||
scores.put(players.get(j), scores.get(players.get(j)) - 10);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
points = new ArrayList<>();
|
||||
for (int i = 0; i < getGameType().getNbPlayers(); ++i) {
|
||||
points.add(scores.get(players.get(i)));
|
||||
}
|
||||
}
|
||||
|
||||
public String toJson() {
|
||||
return GSON.toJson(this);
|
||||
}
|
||||
|
||||
public enum GameType {
|
||||
THREE_PLAYERS, FOUR_PLAYERS, FIVE_PLAYERS, SIX_PLAYERS;
|
||||
THREE_PLAYERS(2, 0), FOUR_PLAYERS(3, 0), FIVE_PLAYERS(2, 1), SIX_PLAYERS(3, 1);
|
||||
|
||||
private final int attackMultiplier;
|
||||
private final int followMultiplier;
|
||||
|
||||
GameType(int attack, int follow) {
|
||||
this.attackMultiplier = attack;
|
||||
this.followMultiplier = follow;
|
||||
}
|
||||
|
||||
public int getAttackMultiplier() {
|
||||
return attackMultiplier;
|
||||
}
|
||||
|
||||
public int getFollowMultiplier() {
|
||||
return followMultiplier;
|
||||
}
|
||||
|
||||
public int getNbPlayers() {
|
||||
return ordinal() + 3;
|
||||
|
@ -170,7 +274,7 @@ public class Game {
|
|||
co.setRequestProperty("token", PreferenceManager.getDefaultSharedPreferences(MainActivity.INSTANCE).getString("token", null));
|
||||
co.connect();
|
||||
|
||||
final List<Game> games = new Gson().fromJson(new InputStreamReader(co.getInputStream()), new TypeToken<ArrayList<Game>>(){}.getType());
|
||||
final List<Game> games = GSON.fromJson(new InputStreamReader(co.getInputStream()), new TypeToken<ArrayList<Game>>(){}.getType());
|
||||
GAMES.clear();
|
||||
for (Game g : games) {
|
||||
GAMES.put(g.getId(), g);
|
||||
|
|
|
@ -31,7 +31,7 @@ public class Player {
|
|||
|
||||
private int score3, score4, score5, score6;
|
||||
|
||||
private int getId() {
|
||||
public int getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
|
@ -97,6 +97,10 @@ public class Player {
|
|||
return PLAYERS.values();
|
||||
}
|
||||
|
||||
public static Player getPlayerById(int id) {
|
||||
return PLAYERS.get(id);
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public String toString() {
|
||||
|
|
|
@ -5,23 +5,30 @@ import android.preference.PreferenceManager;
|
|||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.AdapterView;
|
||||
import android.widget.ArrayAdapter;
|
||||
import android.widget.Button;
|
||||
import android.widget.CompoundButton;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.SeekBar;
|
||||
import android.widget.Spinner;
|
||||
import android.widget.SpinnerAdapter;
|
||||
import android.widget.Switch;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
import android.widget.ToggleButton;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.lifecycle.ViewModelProviders;
|
||||
|
||||
import org.apache.commons.io.IOUtils;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.HttpURLConnection;
|
||||
import java.net.URL;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashSet;
|
||||
import java.util.Locale;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.Executors;
|
||||
|
||||
import fr.ynerant.tarot.Game;
|
||||
import fr.ynerant.tarot.MainActivity;
|
||||
|
@ -59,17 +66,28 @@ public class NewGameFragment extends Fragment {
|
|||
final LinearLayout player5_layout = root.findViewById(R.id.player5_layout);
|
||||
final LinearLayout player6_layout = root.findViewById(R.id.player6_layout);
|
||||
|
||||
final List<Player> players = new ArrayList<>();
|
||||
|
||||
//noinspection ConstantConditions
|
||||
ArrayAdapter<Player> adapter = new ArrayAdapter<>(getContext(), android.R.layout.simple_spinner_item, new ArrayList<>(Player.getAllPlayers()));
|
||||
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
|
||||
player1.setAdapter(adapter);
|
||||
player2.setAdapter(adapter);
|
||||
player2.setSelection(1);
|
||||
player3.setAdapter(adapter);
|
||||
player3.setSelection(2);
|
||||
player4.setAdapter(adapter);
|
||||
player4.setSelection(3);
|
||||
player5.setAdapter(adapter);
|
||||
player5.setSelection(4);
|
||||
player6.setAdapter(adapter);
|
||||
player6.setSelection(5);
|
||||
final Spinner[] spinners = new Spinner[]{player1, player2, player3, player4, player5, player6};
|
||||
|
||||
final Spinner attacker = root.findViewById(R.id.attacker);
|
||||
final Spinner follower = root.findViewById(R.id.follower);
|
||||
final LinearLayout follower_layout = root.findViewById(R.id.follower_layout);
|
||||
final Spinner dealer = root.findViewById(R.id.dealer);
|
||||
final SeekBar attack_points = root.findViewById(R.id.attack_score);
|
||||
final SeekBar bet = root.findViewById(R.id.bet);
|
||||
final SeekBar nb_ends = root.findViewById(R.id.nb_ends);
|
||||
|
@ -77,32 +95,143 @@ public class NewGameFragment extends Fragment {
|
|||
final Switch chelem_realized = root.findViewById(R.id.chelem_realized);
|
||||
final SeekBar little_end = root.findViewById(R.id.little_end);
|
||||
final SeekBar handle = root.findViewById(R.id.handle);
|
||||
final ToggleButton misery1 = root.findViewById(R.id.player1_misery);
|
||||
final ToggleButton misery2 = root.findViewById(R.id.player2_misery);
|
||||
final ToggleButton misery3 = root.findViewById(R.id.player3_misery);
|
||||
final ToggleButton misery4 = root.findViewById(R.id.player4_misery);
|
||||
final ToggleButton misery5 = root.findViewById(R.id.player5_misery);
|
||||
final ToggleButton misery6 = root.findViewById(R.id.player6_misery);
|
||||
final ToggleButton[] miseries = new ToggleButton[]{misery1, misery2, misery3, misery4, misery5, misery6};
|
||||
final TextView misery1Text = root.findViewById(R.id.player1_misery_text);
|
||||
final TextView misery2Text = root.findViewById(R.id.player2_misery_text);
|
||||
final TextView misery3Text = root.findViewById(R.id.player3_misery_text);
|
||||
final TextView misery4Text = root.findViewById(R.id.player4_misery_text);
|
||||
final TextView misery5Text = root.findViewById(R.id.player5_misery_text);
|
||||
final TextView misery6Text = root.findViewById(R.id.player6_misery_text);
|
||||
final TextView points1 = root.findViewById(R.id.player1_points);
|
||||
final TextView points2 = root.findViewById(R.id.player2_points);
|
||||
final TextView points3 = root.findViewById(R.id.player3_points);
|
||||
final TextView points4 = root.findViewById(R.id.player4_points);
|
||||
final TextView points5 = root.findViewById(R.id.player5_points);
|
||||
final TextView points6 = root.findViewById(R.id.player6_points);
|
||||
final TextView[] points = new TextView[]{points1, points2, points3, points4, points5, points6};
|
||||
final TextView points1Text = root.findViewById(R.id.player1_points_text);
|
||||
final TextView points2Text = root.findViewById(R.id.player2_points_text);
|
||||
final TextView points3Text = root.findViewById(R.id.player3_points_text);
|
||||
final TextView points4Text = root.findViewById(R.id.player4_points_text);
|
||||
final TextView points5Text = root.findViewById(R.id.player5_points_text);
|
||||
final TextView points6Text = root.findViewById(R.id.player6_points_text);
|
||||
|
||||
final Runnable updateScore = new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
TextView textView = root.findViewById(R.id.nb_points);
|
||||
Game game = new Game();
|
||||
game.attackScore = attack_points.getProgress();
|
||||
game.type = Game.GameType.getGameType(nb_players.getProgress() + 3);
|
||||
game.players = new HashSet<>();
|
||||
for (int i = 0; i < 3 + nb_players.getProgress(); ++i) {
|
||||
game.players.add((Player) spinners[i].getSelectedItem());
|
||||
Game game = getGame();
|
||||
|
||||
for (int i = 0; i < game.getGameType().getNbPlayers(); ++i) {
|
||||
points[i].setText(String.valueOf(game.points.get(i)));
|
||||
}
|
||||
}
|
||||
|
||||
public Game getGame() {
|
||||
Game game = new Game();
|
||||
game.gameType = Game.GameType.getGameType(nb_players.getProgress() + 3);
|
||||
game.attacker = (Player) attacker.getSelectedItem();
|
||||
if (game.getGameType().getNbPlayers() >= 5)
|
||||
game.follower = (Player) follower.getSelectedItem();
|
||||
game.attackScore = attack_points.getProgress();
|
||||
game.players = players;
|
||||
game.bet = Game.Bet.values()[bet.getProgress()];
|
||||
game.ends = nb_ends.getProgress();
|
||||
game.handle = handle.getProgress();
|
||||
game.chelemAnnounced = chelem_announced.isChecked();
|
||||
game.chelemRealized = chelem_realized.isChecked();
|
||||
game.littleForAttacker = little_end.getProgress() == 1;
|
||||
game.littleForDefenser = little_end.getProgress() == 2;
|
||||
game.handle = handle.getProgress();
|
||||
List<Boolean> miseriesList = new ArrayList<>();
|
||||
for (int i = 0; i < game.getGameType().getNbPlayers(); ++i)
|
||||
miseriesList.add(miseries[i].isChecked());
|
||||
game.miseries = miseriesList;
|
||||
game.calculateScores();
|
||||
|
||||
|
||||
textView.setText(String.format(Locale.getDefault(), "%d points (hors misères)", game.calculateScore()));
|
||||
return game;
|
||||
}
|
||||
};
|
||||
|
||||
final Spinner.OnItemSelectedListener updatePlayers = new Spinner.OnItemSelectedListener() {
|
||||
@Override
|
||||
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
|
||||
players.clear();
|
||||
players.add((Player) player1.getSelectedItem());
|
||||
players.add((Player) player2.getSelectedItem());
|
||||
players.add((Player) player3.getSelectedItem());
|
||||
if (nb_players.getProgress() >= 1)
|
||||
players.add((Player) player4.getSelectedItem());
|
||||
if (nb_players.getProgress() >= 2)
|
||||
players.add((Player) player5.getSelectedItem());
|
||||
if (nb_players.getProgress() == 3)
|
||||
players.add((Player) player6.getSelectedItem());
|
||||
|
||||
//noinspection ConstantConditions
|
||||
ArrayAdapter<Player> adapter = new ArrayAdapter<>(getContext(), android.R.layout.simple_spinner_item, new ArrayList<>(players));
|
||||
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
|
||||
attacker.setAdapter(adapter);
|
||||
dealer.setAdapter(adapter);
|
||||
follower.setAdapter(adapter);
|
||||
|
||||
misery1Text.setText(((Player) player1.getSelectedItem()).getName());
|
||||
misery2Text.setText(((Player) player2.getSelectedItem()).getName());
|
||||
misery3Text.setText(((Player) player3.getSelectedItem()).getName());
|
||||
misery4Text.setText(((Player) player4.getSelectedItem()).getName());
|
||||
misery5Text.setText(((Player) player5.getSelectedItem()).getName());
|
||||
misery6Text.setText(((Player) player6.getSelectedItem()).getName());
|
||||
points1Text.setText(((Player) player1.getSelectedItem()).getName());
|
||||
points2Text.setText(((Player) player2.getSelectedItem()).getName());
|
||||
points3Text.setText(((Player) player3.getSelectedItem()).getName());
|
||||
points4Text.setText(((Player) player4.getSelectedItem()).getName());
|
||||
points5Text.setText(((Player) player5.getSelectedItem()).getName());
|
||||
points6Text.setText(((Player) player6.getSelectedItem()).getName());
|
||||
|
||||
updateScore.run();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNothingSelected(AdapterView<?> parent) {}
|
||||
};
|
||||
|
||||
Spinner.OnItemSelectedListener justUpdate = new Spinner.OnItemSelectedListener() {
|
||||
@Override
|
||||
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
|
||||
updateScore.run();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNothingSelected(AdapterView<?> parent) {
|
||||
}
|
||||
};
|
||||
|
||||
ToggleButton.OnCheckedChangeListener justUpdate2 = new ToggleButton.OnCheckedChangeListener() {
|
||||
@Override
|
||||
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
|
||||
updateScore.run();
|
||||
}
|
||||
};
|
||||
|
||||
updatePlayers.onItemSelected(null, null, 0, 0);
|
||||
player1.setOnItemSelectedListener(updatePlayers);
|
||||
player2.setOnItemSelectedListener(updatePlayers);
|
||||
player3.setOnItemSelectedListener(updatePlayers);
|
||||
player4.setOnItemSelectedListener(updatePlayers);
|
||||
player5.setOnItemSelectedListener(updatePlayers);
|
||||
player6.setOnItemSelectedListener(updatePlayers);
|
||||
attacker.setOnItemSelectedListener(justUpdate);
|
||||
follower.setOnItemSelectedListener(justUpdate);
|
||||
dealer.setOnItemSelectedListener(justUpdate);
|
||||
misery1.setOnCheckedChangeListener(justUpdate2);
|
||||
misery2.setOnCheckedChangeListener(justUpdate2);
|
||||
misery3.setOnCheckedChangeListener(justUpdate2);
|
||||
misery4.setOnCheckedChangeListener(justUpdate2);
|
||||
misery5.setOnCheckedChangeListener(justUpdate2);
|
||||
misery6.setOnCheckedChangeListener(justUpdate2);
|
||||
|
||||
nb_players.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
|
||||
@Override
|
||||
|
@ -126,17 +255,47 @@ public class NewGameFragment extends Fragment {
|
|||
nb_players_info.setText(resource);
|
||||
|
||||
player4_layout.setVisibility(View.GONE);
|
||||
misery4Text.setVisibility(View.GONE);
|
||||
misery4.setVisibility(View.GONE);
|
||||
points4Text.setVisibility(View.GONE);
|
||||
points4.setVisibility(View.GONE);
|
||||
player5_layout.setVisibility(View.GONE);
|
||||
misery5Text.setVisibility(View.GONE);
|
||||
misery5.setVisibility(View.GONE);
|
||||
points5Text.setVisibility(View.GONE);
|
||||
points5.setVisibility(View.GONE);
|
||||
player6_layout.setVisibility(View.GONE);
|
||||
misery6Text.setVisibility(View.GONE);
|
||||
misery6.setVisibility(View.GONE);
|
||||
points6Text.setVisibility(View.GONE);
|
||||
points6.setVisibility(View.GONE);
|
||||
follower_layout.setVisibility(View.GONE);
|
||||
|
||||
switch (progress + 3) {
|
||||
case 6:
|
||||
player6_layout.setVisibility(View.VISIBLE);
|
||||
misery6Text.setVisibility(View.VISIBLE);
|
||||
misery6.setVisibility(View.VISIBLE);
|
||||
points6Text.setVisibility(View.VISIBLE);
|
||||
points6.setVisibility(View.VISIBLE);
|
||||
case 5:
|
||||
player5_layout.setVisibility(View.VISIBLE);
|
||||
misery5Text.setVisibility(View.VISIBLE);
|
||||
misery5.setVisibility(View.VISIBLE);
|
||||
points5Text.setVisibility(View.VISIBLE);
|
||||
points5.setVisibility(View.VISIBLE);
|
||||
follower_layout.setVisibility(View.VISIBLE);
|
||||
case 4:
|
||||
player4_layout.setVisibility(View.VISIBLE);
|
||||
misery4Text.setVisibility(View.VISIBLE);
|
||||
misery4.setVisibility(View.VISIBLE);
|
||||
points4Text.setVisibility(View.VISIBLE);
|
||||
points4.setVisibility(View.VISIBLE);
|
||||
|
||||
}
|
||||
|
||||
updatePlayers.onItemSelected(null, null, 0, 0);
|
||||
updateScore.run();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -314,7 +473,52 @@ public class NewGameFragment extends Fragment {
|
|||
btn.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
Toast.makeText(getContext(), "La partie sera sauvegardée ultérieurement.", Toast.LENGTH_SHORT).show();
|
||||
Toast.makeText(getContext(), "La partie est enregistrée !", Toast.LENGTH_SHORT).show();
|
||||
Executors.newSingleThreadExecutor().execute(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
Game g = getGame();
|
||||
|
||||
try {
|
||||
URL url = new URL("https://galaxyoyo.com/tarot/game.php?add_game");
|
||||
HttpURLConnection co = (HttpURLConnection) url.openConnection();
|
||||
co.setRequestMethod("POST");
|
||||
co.setRequestProperty("token", PreferenceManager.getDefaultSharedPreferences(MainActivity.INSTANCE).getString("token", null));
|
||||
co.setRequestProperty("json", g.toJson());
|
||||
co.connect();
|
||||
System.out.println(g.toJson());
|
||||
System.err.println(IOUtils.readLines(co.getInputStream()));
|
||||
co.disconnect();
|
||||
} catch (IOException ex) {
|
||||
ex.printStackTrace();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
public Game getGame() {
|
||||
Game game = new Game();
|
||||
game.gameType = Game.GameType.getGameType(nb_players.getProgress() + 3);
|
||||
game.attacker = (Player) attacker.getSelectedItem();
|
||||
if (game.getGameType().getNbPlayers() >= 5)
|
||||
game.follower = (Player) follower.getSelectedItem();
|
||||
game.attackScore = attack_points.getProgress();
|
||||
game.players = players;
|
||||
game.bet = Game.Bet.values()[bet.getProgress()];
|
||||
game.ends = nb_ends.getProgress();
|
||||
game.handle = handle.getProgress();
|
||||
game.chelemAnnounced = chelem_announced.isChecked();
|
||||
game.chelemRealized = chelem_realized.isChecked();
|
||||
game.littleForAttacker = little_end.getProgress() == 1;
|
||||
game.littleForDefenser = little_end.getProgress() == 2;
|
||||
List<Boolean> miseriesList = new ArrayList<>();
|
||||
for (int i = 0; i < game.getGameType().getNbPlayers(); ++i)
|
||||
miseriesList.add(miseries[i].isChecked());
|
||||
game.miseries = miseriesList;
|
||||
game.calculateScores();
|
||||
|
||||
return game;
|
||||
}
|
||||
});
|
||||
|
||||
|
|
|
@ -167,6 +167,23 @@
|
|||
android:layout_height="wrap_content" />
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:text="Preneur :" />
|
||||
|
||||
<Spinner
|
||||
android:id="@+id/attacker"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content" />
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/follower_layout"
|
||||
android:layout_width="match_parent"
|
||||
|
@ -189,7 +206,6 @@
|
|||
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/dealer_layout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="horizontal">
|
||||
|
@ -426,18 +442,192 @@
|
|||
</LinearLayout>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/nb_points"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textAlignment="center"
|
||||
android:textSize="30sp" />
|
||||
android:layout_weight="1"
|
||||
android:text="Misères" />
|
||||
|
||||
</LinearLayout>
|
||||
<TableLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="horizontal"
|
||||
android:textAlignment="center">
|
||||
|
||||
<TableRow
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/player1_misery_text"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/player2_misery_text"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/player3_misery_text"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/player4_misery_text"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/player5_misery_text"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:visibility="gone" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/player6_misery_text"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:visibility="gone" />
|
||||
</TableRow>
|
||||
|
||||
<TableRow
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<ToggleButton
|
||||
android:id="@+id/player1_misery"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content" />
|
||||
|
||||
<ToggleButton
|
||||
android:id="@+id/player2_misery"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content" />
|
||||
|
||||
<ToggleButton
|
||||
android:id="@+id/player3_misery"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content" />
|
||||
|
||||
<ToggleButton
|
||||
android:id="@+id/player4_misery"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content" />
|
||||
|
||||
<ToggleButton
|
||||
android:id="@+id/player5_misery"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:visibility="gone" />
|
||||
|
||||
<ToggleButton
|
||||
android:id="@+id/player6_misery"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:visibility="gone" />
|
||||
</TableRow>
|
||||
|
||||
</TableLayout>
|
||||
|
||||
<TableLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="horizontal"
|
||||
android:textAlignment="center">
|
||||
|
||||
<TableRow
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/player1_points_text"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textSize="24sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/player2_points_text"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textSize="24sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/player3_points_text"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textSize="24sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/player4_points_text"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textSize="24sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/player5_points_text"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:visibility="gone"
|
||||
android:textSize="24sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/player6_points_text"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:visibility="gone"
|
||||
android:textSize="24sp" />
|
||||
</TableRow>
|
||||
|
||||
<TableRow
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/player1_points"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textSize="24sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/player2_points"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textSize="24sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/player3_points"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textSize="24sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/player4_points"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textSize="24sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/player5_points"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:visibility="gone"
|
||||
android:textSize="24sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/player6_points"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:visibility="gone"
|
||||
android:textSize="24sp" />
|
||||
</TableRow>
|
||||
|
||||
</TableLayout>
|
||||
|
||||
<Button
|
||||
android:id="@+id/add_game_button"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Enregistrer la partie" />
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
Loading…
Reference in New Issue