Repository navigation
Expand file tree
/
Copy pathSpieler.java
More file actions
145 lines (125 loc) · 3.6 KB
/
Copy pathSpieler.java
File metadata and controls
145 lines (125 loc) · 3.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
package Version_Norman;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.util.ArrayList;
import java.util.List;
public class Spieler {
private Socket socket;
private BufferedReader input;
private PrintWriter output;
private String nickname = "";
private String handle;
private ArrayList<Karte> hand;
public Spieler(Socket psocket) throws IOException {
this.socket = psocket;
this.input = new BufferedReader(new InputStreamReader(socket.getInputStream()));
this.output = new PrintWriter(socket.getOutputStream(), true);
this.handle = this.socket.getInetAddress().getHostAddress() +":"+ this.socket.getPort();
this.hand = new ArrayList<Karte>();
}
public void changeNick(String newnickname) {
if(newnickname.length() <2) {
this.output.println("Dieser Nickname ist zu kurz!");
return;
}
if(newnickname.length() >21) {
this.output.println("Dieser Nickname ist zu lang!");
return;
}
this.nickname = newnickname;
//Server gibt die Adresse und den Port des an den Client gebundenen Socket wieder sowie dessen Nickname
this.output.println("Nickname "+this.nickname+" wurde bestätigt");
System.out.println("Spieler verbunden von "+this.handle+" ist bekannt unter "+this.nickname);
}
//Methode, um Karten legen zu können. Sucht nach der gewünschten Karte anhand der Konsoleneingabe.
//Anfrage wird wiederholt, wenn der
public void karteLegen() {
}
//Methode, um die Hand zu zeigen. Funktioniert
//Erweiterung: Karten graphisch darstellen. Noch zu erledigen
protected void kartenAnzeigen() {
for(int j = 0; j < 6; j++) {
switch(j) {
case 0:
for(int i = 0; i < this.hand.size(); i++) {
this.output.print("_______ ");
}
this.output.println();
break;
case 1:
for(int i = 0; i < this.hand.size(); i++) {
this.output.print("| "+this.hand.get(i).getFarbe()+"|");
}
this.output.println();
break;
case 2:
for(int i = 0; i < this.hand.size(); i++) {
this.output.print("| | ");
}
this.output.println();
break;
case 3:
for(int i = 0; i < this.hand.size(); i++) {
this.output.print("| "+this.hand.get(i).getWert()+" | ");
}
this.output.println();
break;
case 4:
for(int i = 0; i < this.hand.size(); i++) {
this.output.print("\u00AF\u00AF\u00AF\u00AF\u00AF\u00AF\u00AF ");
}
this.output.println();
break;
case 5:
for(int i = 0; i < this.hand.size(); i++) {
this.output.print(" "+(i+1)+" ");
}
this.output.println();
break;
}
}
}
//Mehtode, um die Größe der Hand zu zeigen
public int anzahlKartenHand() {
return this.hand.size();
}
public Socket getSocket() {
return this.socket;
}
public void closeSocket() throws IOException {
this.socket.close();
}
public String getNickname() {
return this.nickname;
}
public void setNickname(String name) {
this.nickname = name;
}
public BufferedReader getInput() {
return this.input;
}
public PrintWriter getOutput() {
return this.output;
}
public ArrayList<Karte> getHand() {
return this.hand;
}
public Karte getKarte(int index) {
return this.hand.get(index);
}
public void setHand(List<Karte> karten){
this.hand.addAll(karten);
}
public void removeKarte(int index) {
this.hand.remove(index);
}
public void drawKarte(Karte karte) {
this.hand.add(karte);
}
public String getHandle() {
return this.handle;
}
}