-
Notifications
You must be signed in to change notification settings - Fork 1
/
Card.java
81 lines (71 loc) · 2.42 KB
/
Card.java
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
import java.util.*;
/**
* <h1>Card Class</h1>
* Kelas ini merepresentasikan kartu yang digunakan
* dalam permainan
*
* @author Ardi W
* @version 1.0
*/
public class Card{
protected String CardName;
protected String Description;
/**Konstruktor default untuk kelas Card ini */
public Card(){
CardName = "";
Description = "";
}
/**Konstruktor kelas Card dengan parameter
* @param Name memberikan nama dari kartu yang diinstansiasi
* @param desc memberikan deskripsi, penjelasan dari kartu yang diinstansiasi*/
public Card(String Name, String desc){
CardName = Name;
Description = desc;
}
/**Method untuk memainkan kartu tersebut ke dalam permainan dan memberi dampak tertentu,
* akan dioverwrite oleh kelas yang menginherit kelas Card ini
* */
public void PlayCard(){}
/**Method untuk memainkan kartu tersebut ke dalam permainan dan memberi dampak tertentu,
* akan dioverwrite oleh kelas yang menginherit kelas Card ini, method ini menggunakan
* parameter khususnya untuk digunakan saat TrapTriggered
* @param target indeks (1-nplayer) untuk menentukan pemain yang dituju kartu
* */
public void PlayCard(int target){}
/**Method untuk memilih pemain yang akan dikenakan efek
* kartu dengan input dari pengguna via command line
* @return indeks dari pemain yang akan dikenakan efek kartu
* */
public int SelectTarget(){
Scanner targetin = new Scanner(System.in);
Random rnd = new Random();
int targetpl;
System.out.println("Choose Target: ");
try{
targetpl = targetin.nextInt();
if(targetpl<1||targetpl>Game.getPlayers().size()){
throw new Exception();
}
}
catch(Exception e){
System.out.println("target tidak valid, target dirandom");
targetpl = 1+rnd.nextInt(Game.getPlayers().size()-1);
}
return targetpl;
}
/**Method untuk membuang kartu ke discard pile*/
public void Discard(){ Game.getDP().GetCard(this); }
/**Getter untuk atribut CardName
* @return CardName nama dari kartu yang bersangkutan*/
public String getCardName(){ return CardName; }
/**Getter untuk atribut Description
* @return Description nama dari kartu yang bersangkutan*/
public String getDescription(){ return Description; }
/**konverter toString() untuk Kelas Card untuk ditampilkan saat kartu dimainkan
* atau ditampilkan saat melihat hand
* @return String berisi CardName\nDescription*/
public String toString(){
String S = getCardName() + "\n" + getDescription();
return S;
}
}