Domino

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 3

import java.net.

*;
import java.io.*;
import java.util.ArrayList;
import java.util.Random;
class ServerThread extends Thread {
Socket socketofFirstPlayer;
Socket socketofSecondPlayer;
ArrayList<String> AllDominos ;
//Constructeur
public ServerThread(Socket socket1_, Socket socket2_) {
socketofFirstPlayer = socket1_;
socketofSecondPlayer = socket2_;
AllDominos = new ArrayList<>();
String x="" ; String y="" ;
for (int i = 0; i <= 6; i++) {
for (int j = i; j <= 6; j++) {
all.add(x.valueOf(i)+","+y.valueOf(j));
}
}
}
//Méthode run
public void run() {

//Etablissement de la communication avec les deux Players


InputStream is1 = socketofFirstPlayer.getInputStream();
InputStreamReader isr1 = new InputStreamReader(is1);
BufferedReader br1 = new BufferedReader(isr1);
OutputStream os1 = socketofFirstPlayer.getOutputStream();
PrintWriter pw1 = new PrintWriter(os1,true);

InputStream is2 = socketofFirstPlayer.getInputStream();


InputStreamReader isr2 = new InputStreamReader(is2);
BufferedReader br2= new BufferedReader(isr2);
OutputStream os2 = socketofFirstPlayer.getOutputStream();
PrintWriter pw2 = new PrintWriter(os2,true);

PrintWriter writer = pw1;


BufferedReader reader = br1;
ArrayList<String> player1= new ArrayList<>();// Domino player1
ArrayList<String> player2= new ArrayList<>();// Domino player2
ArrayList<String> TableDeJeux= new ArrayList<>();// Domino player2
ArrayList<String> player=player1;
hand(player1,AllDominos); // pour ajoute les domino a list de player1
hand(player2,AllDominos); // pour ajoute les domino a list de player2
String ContenuDeTableDeJeux = TableDeJeux(player);
String STR = "Vide";
String userInput;

while(true) {
writer.println("typle de jeux"+STR );
while (true) {
writer.println(" si vous n'avez pas de domino Approprié pour jouer :y/n");
userInput = reader.readLine();
if(userInput.equals("n")){
player1.add(randomTable(AllDominos));
}
else{
writer.println("Choisir un nombre :");
userInput = reader.readLine();
if (validMove(Integer.parseInt(userInput)))
break;
else{
writer.println("Votre choix n'est pas valide");
}
}
}
TableGameMove(TableGame, Player1,integer.parsInt(userInput));
writer.print(tableDeJeux(TableGame));
if(AllDominos.size()==0){
if(hasContestantWon(player)) {
writer.println("Felicitation! Vous avez gagne!");
writer = (player == player1)?pw2:pw1;
writer.println("Desole! Vous avez perdu.");
return;
}
}
if(GameFinish(player)){
pw1.println("Le jeu se termine par une egalite!");
pw2.println("Le jeu se termine par une egalite!");
return;
}
STR =TableDeJeux.toString();
writer = (ContenuDeTableDeJeux == TableDeJeux(player))?pw2:pw1;
reader = (ContenuDeTableDeJeux == TableDeJeux(player))?br2:br1;
writer.println("Dezole vous avez perdu");

}
private boolean GameFinish() {
if(plyer.size()!=0)
return false;
return true;
}
private boolean hasContestantWon(ArrayList<String>player1 ,ArrayList<String>player2 ,ArrayList<String>player ) {
if (player.size()==0)
return true;
else{
int som1 = 0 ;
int som2 = 0;

for(int i=0 ; i<player1.size();i++){

String AF=player1.get(i);
String[] JR = Af.split(",");
som1=integer.parsInt(JR[0])+Integer.parseInt(JR[1])+som1;
}
for(int i=0 ; i<player2.size();i++){
String AF= player2.get(i);
String[] JR = AF.split(",");
som2 = Integer.parseInt(JR[0])+Integer.parseInt(JR[1])+som2;
}
if(som1<som2){
if(play==player1)
return true;
else
return false
}
}
}
private static String randomTable(ArrayList<String> all) {
Random rand = new Random();
String value = all.get(rand.nextInt(all.size()));
return value;
}
private static void hand(ArrayList<String> player,ArrayList<String> list) {
do{
String valueaa = randomTable(list);

player.add(valueaa);
list.remove(valueaa);

}while(player.size()!=7);
System.out.println(player);
}
private String void tableDeJeux(ArrayList<String> player){
String tablejeu="";
for( int i=0 ; i<player.size(),i++)
tablejeu = " pour choisir "+player.get(0)+"click sur "+ (i+1) +
"/n"+ tablejeu ;
}

private boolean validMove(int position) {


}

}
public class DominoGameServer {
public static void main(String[] args) throws Exception {
int port = Integer.parseInt(args[0]); // numéro de port
ServerSocket serverSocket = new ServerSocket(port); //Lancement de Server
Socket s1, s2;
while (true) {
s1 = serverSocket.accept();
s2 = serverSocket.accept();
new ServerThread(s1, s2).start(); //lancement d'un nouveau thread
}
}
}
import java.io.*;
import java.net.*;
import java.util.Scanner;
public class TicTacToeGamer {
public static void main(String args[]) throws Exception {
InetAddress serveur = InetAddress.getByName(args[0]);
int port = Integer.parseInt(args[1]);
// Instanciation d'un socket client de type TCP
Socket socket = new Socket(serveur, port);
//Etablissement de la communication avec le Server
PrintWriter writer = new PrintWriter(socket.getOutputStream(), true);
BufferedReader reader = new BufferedReader(new
InputStreamReader(socket.getInputStream()));
int n;
Scanner sc = new Scanner(System.in);
String str;
System.out.println("Attendre votre adversaire");
while(true){
str = reader.readLine();
if(str.equals("Felicitation! Vous avez gagne!") || str.equals("Desole! Vous avez
perdu.") || str.equals("Le match s'est termine par une egalite!")){
System.out.println(str);
return;
}
str = String.join("\n", str.split(":"));
System.out.println(str);
while(true){
str = reader.readLine();
System.out.println(str);
n = sc.nextInt();
writer.println(n);
str = reader.readLine();
if(!str.equals("Votre choix n'est pas valide"))
break;
System.out.println(str);
}
str = String.join("\n", str.split(":"));
System.out.println(str);
}
}
}

You might also like