-
Notifications
You must be signed in to change notification settings - Fork 0
/
PlayerHuman.py
130 lines (121 loc) · 7.19 KB
/
PlayerHuman.py
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
from PlayerAI import PlayerAgent, PlayerAI
from game import Roles, Game, ColorTextExt
import random
from action import Action, ActionType
class PlayerHuman(PlayerAgent):
def lookOwnCard(self, playerObject):
self.sureCard = [-1] * len(playerObject.gameObject.gameTable)
self.sureCard[playerObject.playerID] = playerObject.myCard
def useSkill(self, playerObject):
#1 SEER
#2 Thief
#0 Wolf
if playerObject.myCard == Roles.SEER:
numbers = -1
while(numbers <= 0 or numbers > playerObject.gameObject.numberOfPlayers+playerObject.gameObject.CENTER_NUMBER - 1):
var = raw_input("You are SEER, look at number (1-"+ str(playerObject.gameObject.numberOfPlayers+playerObject.gameObject.CENTER_NUMBER - 1) +"): ")
print ColorTextExt(0), "looking at", var, ColorTextExt.RESET
try:
numbers = int(float(var))
except ValueError:
numbers = -1
randomCard = numbers
# look at table
if randomCard >= playerObject.gameObject.numberOfPlayers:
for i in range(playerObject.gameObject.numberOfPlayers, playerObject.gameObject.numberOfPlayers+playerObject.gameObject.CENTER_NUMBER):
print ColorTextExt(0), i, "is", playerObject.gameObject.lookAtCard(i).name, ColorTextExt.RESET
else:
print ColorTextExt(0),randomCard, "is", playerObject.gameObject.lookAtCard(randomCard).name, ColorTextExt.RESET
elif playerObject.myCard == Roles.THIEF:
numbers = -1
while(numbers < 0 or numbers > playerObject.gameObject.numberOfPlayers - 1):
var = raw_input("You are THIEF, switch with number (0-" + str(playerObject.gameObject.numberOfPlayers-1) + "): ")
print ColorTextExt(0), "switching with", var, ColorTextExt.RESET
try:
numbers = int(float(var))
except ValueError:
numbers = -1
randomCard = numbers
print ColorTextExt(0), "New role:", playerObject.gameObject.switchCard(playerObject.playerID, randomCard).name,ColorTextExt.RESET
elif playerObject.myCard == Roles.WEREWOLF:
print ColorTextExt(0), "You are WEREWOLF", ColorTextExt.RESET
for i in range(0, playerObject.gameObject.numberOfPlayers):
if playerObject.gameObject.gameTable[i] is Roles.WEREWOLF:
print ColorTextExt(0), i, "is WEREWOLF", ColorTextExt.RESET
elif playerObject.myCard == Roles.VILLAGER:
print ColorTextExt(0), "You are VILLAGER", ColorTextExt.RESET
var = raw_input("Press ENTER to begin game")
class PlayerVoteHuman(PlayerAI):
def lookOwnCard(self, playerObject):
self.sureCard = [-1] * len(playerObject.gameObject.gameTable)
self.sureCard[playerObject.playerID] = playerObject.myCard
def useSkill(self, playerObject):
#1 SEER
#2 Thief
#0 Wolf
if playerObject.myCard == Roles.SEER:
numbers = -1
while(numbers <= 0 or numbers > playerObject.gameObject.numberOfPlayers+playerObject.gameObject.CENTER_NUMBER - 1):
var = raw_input("You are SEER, look at number (1-"+ str(playerObject.gameObject.numberOfPlayers+playerObject.gameObject.CENTER_NUMBER - 1) +"): ")
print ColorTextExt(0), "looking at", var, ColorTextExt.RESET
try:
numbers = int(float(var))
except ValueError:
numbers = -1
randomCard = numbers
# look at table
if randomCard >= playerObject.gameObject.numberOfPlayers:
for i in range(playerObject.gameObject.numberOfPlayers, playerObject.gameObject.numberOfPlayers+playerObject.gameObject.CENTER_NUMBER):
print ColorTextExt(0), i, "is", playerObject.gameObject.lookAtCard(i).name, ColorTextExt.RESET
else:
print ColorTextExt(0),randomCard, "is", playerObject.gameObject.lookAtCard(randomCard).name, ColorTextExt.RESET
if randomCard >= playerObject.gameObject.numberOfPlayers:
for i in range(playerObject.gameObject.numberOfPlayers, playerObject.gameObject.numberOfPlayers+playerObject.gameObject.CENTER_NUMBER):
self.sureCard[i] = playerObject.gameObject.lookAtCard(i)
playerObject.addAction(Action(playerObject.playerID, ActionType.LOOK, i, self.sureCard[i]))
playerObject.usedSkillOn = i
else:
self.sureCard[randomCard] = playerObject.gameObject.lookAtCard(randomCard)
playerObject.addAction(Action(playerObject.playerID, ActionType.LOOK, randomCard, self.sureCard[randomCard]))
playerObject.usedSkillOn = randomCard
elif playerObject.myCard == Roles.THIEF:
numbers = -1
while(numbers < 0 or numbers > playerObject.gameObject.numberOfPlayers - 1):
var = raw_input("You are THIEF, switch with number (0-" + str(playerObject.gameObject.numberOfPlayers-1) + "): ")
print ColorTextExt(0), "switching with", var, ColorTextExt.RESET
try:
numbers = int(float(var))
except ValueError:
numbers = -1
randomCard = numbers
newcard = playerObject.gameObject.switchCard(playerObject.playerID, randomCard)
print ColorTextExt(0), "New role:", newcard.name,ColorTextExt.RESET
playerObject.addAction(Action(playerObject.playerID, ActionType.TRADE, randomCard, newcard, playerObject.myCard))
self.sureCard[randomCard] = playerObject.myCard
self.sureCard[playerObject.playerID] = newcard
playerObject.myCard = newcard
# playerObject.myFirstCard = Roles.WEREWOLF
playerObject.usedSkillOn = randomCard
elif playerObject.myCard == Roles.WEREWOLF:
print ColorTextExt(0), "You are WEREWOLF", ColorTextExt.RESET
for i in range(0, playerObject.gameObject.numberOfPlayers):
if playerObject.gameObject.gameTable[i] is Roles.WEREWOLF:
print ColorTextExt(0), i, "is WEREWOLF", ColorTextExt.RESET
self.sureCard[i] = Roles.WEREWOLF
if i is not playerObject.playerID:
playerObject.usedSkillOn = i
elif playerObject.myCard == Roles.VILLAGER:
print ColorTextExt(0), "You are VILLAGER", ColorTextExt.RESET
var = raw_input("Press ENTER to begin game")
def vote(self, playerObject):
number = -1
while number < 0 or number > playerObject.gameObject.numberOfPlayers - 1 or number == playerObject.playerID:
print ColorTextExt.PROPMTEXT + "Vote to hang person (1-" + str(playerObject.gameObject.numberOfPlayers - 1) + "): " + ColorTextExt.RESET + "\n"
var = raw_input()
try:
number = int(float(var))
print "Entered", number
except ValueError:
print "Wrong format"
number = -1
playerObject.voteFor = number