Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
一碗大米粥
Python
提交
ebf8e1f3
P
Python
项目概览
一碗大米粥
/
Python
与 Fork 源项目一致
Fork自
inscode / Python
通知
1
Star
1
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
Python
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
ebf8e1f3
编写于
4月 19, 2023
作者:
6
643fde22aa93e810cdda7f26
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
UPDATE
上级
df352508
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
329 addition
and
1 deletion
+329
-1
main.py
main.py
+328
-1
shengli.dat
shengli.dat
+1
-0
未找到文件。
main.py
浏览文件 @
ebf8e1f3
print
(
'欢迎来到 InsCode'
)
from
random
import
randint
,
choice
\ No newline at end of file
from
time
import
sleep
import
json
print
(
"欢迎来到狼人杀!"
)
try
:
fs
=
open
(
"shengli.dat"
)
fs
.
close
()
except
FileNotFoundError
:
lll
=
{
"l"
:
0
,
"p"
:
0
,
"114514"
:
0
,
"all"
:
0
,
"jsfs"
:
0
,
"ch"
:[],
"yy"
:
0
}
with
open
(
"shengli.dat"
,
"w"
)
as
f_obj
:
json
.
dump
(
lll
,
f_obj
)
else
:
with
open
(
"shengli.dat"
)
as
f_obj
:
lll
=
json
.
load
(
f_obj
)
print
(
"狼人胜场:"
,
lll
[
"l"
])
print
(
"好人胜场:"
,
lll
[
"p"
])
print
(
"你死的次数:"
,
lll
[
"114514"
])
print
(
"总场次:"
,
lll
[
"all"
])
print
(
"识破的狼人数量:"
,
lll
[
"yy"
])
if
len
(
lll
[
"ch"
])
!=
0
:
print
(
"称号:"
+
","
.
join
(
lll
[
"ch"
]))
sleep
(
0.3
)
a
=
[
"平民 "
,
"平民"
,
"狼人"
,
"女巫"
]
#身份,用列表表示(用元组也行)
xing
=
(
"王"
,
"李"
,
"张"
,
"刘"
,
"徐"
,
"冯"
,
"袁"
,
"邓"
,
"韩"
,
"杜"
,
"朴"
,
"金"
,
"逄"
)
zhongjian
=
(
"既"
,
"海"
,
"若"
,
"树"
,
"丽"
,
"虎"
,
"涵"
)
zuihou
=
(
"羽"
,
"生"
,
"茵"
,
"芹"
,
"乔"
,
"智"
,
"丽"
)
disi
=
(
"玺"
,
"霍"
,
"获"
,
"岚"
,
"吾"
,
"乐"
,
"空"
,
"阵"
)
p1
=
choice
(
xing
)
+
choice
(
zhongjian
)
p2
=
choice
(
xing
)
+
choice
(
zhongjian
)
+
choice
(
zuihou
)
p3
=
choice
(
xing
)
+
choice
(
zhongjian
)
+
choice
(
zuihou
)
+
choice
(
disi
)
wanjianame
=
[
p1
,
p2
,
p3
]
pl
=
[
"0"
,
"1"
,
"2"
,
"3"
]
#玩家
player0
=
choice
(
a
)
#设置玩家身份
ar
=
a
.
index
(
player0
)
print
(
"等待玩家进入游戏中..."
)
sleep
(
randint
(
0
,
3
))
print
(
"玩家1"
+
"("
+
p1
+
")加入游戏"
)
sleep
(
randint
(
0
,
3
))
print
(
"玩家2"
+
"("
+
p2
+
")加入游戏"
)
sleep
(
randint
(
0
,
3
))
print
(
"玩家3"
+
"("
+
p3
+
")加入游戏"
)
print
(
"玩家已全齐,开始游戏倒计时"
)
timer
=
3
for
i
in
range
(
3
):
print
(
timer
,
end
=
" "
)
timer
-=
1
sleep
(
1
)
player1
=
choice
(
a
)
ae
=
a
.
index
(
player1
)
player2
=
choice
(
a
)
ac
=
a
.
index
(
player2
)
player3
=
choice
(
a
)
ad
=
a
.
index
(
player3
)
while
ae
==
ar
or
ae
==
ac
or
ae
==
ad
or
ad
==
ac
or
ad
==
ar
or
ac
==
ar
:
player1
=
choice
(
a
)
ae
=
a
.
index
(
player1
)
player2
=
choice
(
a
)
ac
=
a
.
index
(
player2
)
player3
=
choice
(
a
)
ad
=
a
.
index
(
player3
)
ap
=
[
player0
,
player1
,
player2
,
player3
]
langren
=
ap
.
index
(
"狼人"
)
nvwu
=
ap
.
index
(
"女巫"
)
print
(
"
\n
你的身份是"
+
player0
)
nvwuhuozhe
=
True
nvwuyouduyao
=
True
nvwujiuming
=
True
days
=
0
######print(ap)
while
True
:
days
+=
1
print
(
"
\t\t\t\t\t\t
第"
+
str
(
days
)
+
"天~~~~~~~~~~~~~~~"
)
cc
=
5
if
len
(
pl
)
==
2
:
#如果在场玩家只剩一个,狼人胜利
print
(
"好人只剩一个,狼人胜利"
)
lll
[
"l"
]
+=
1
break
du
=
5
duyao
=
5
if
nvwuyouduyao
==
False
and
nvwujiuming
==
False
:
nvwuhuozhe
=
False
c
=
','
.
join
(
pl
)
print
(
"天黑请闭眼"
)
if
a
.
index
(
player0
)
==
2
:
print
(
"狼人请睁眼
\n
请选择你要杀害的玩家(输入数字"
+
c
+
")"
)
cc
=
int
(
input
())
cd
=
cc
print
(
"狼人请闭眼"
)
else
:
print
(
"狼人请睁眼
\n
请选择你要杀害的玩家"
)
sleep
(
3
)
cc
=
randint
(
0
,
3
)
while
cc
==
langren
or
str
(
cc
)
not
in
pl
:
cc
=
randint
(
0
,
3
)
cd
=
cc
print
(
"狼人请闭眼"
)
if
nvwuhuozhe
:
sleep
(
2
)
if
a
.
index
(
player0
)
==
3
:
print
(
"女巫请睁眼"
)
if
nvwujiuming
:
if
cc
==
0
:
print
(
"今天晚上,你死了,你是否要进行自救(输入0为否,输入1为是)"
)
ccc
=
int
(
input
())
if
ccc
==
1
:
nvwujiuming
=
False
lll
[
"jsfs"
]
+=
1
cc
=
5
else
:
print
(
"今天晚上,玩家"
+
str
(
cc
)
+
"("
+
wanjianame
[
cc
-
1
]
+
")死了,你是否要救(输入0为否,输入1为是)"
)
ccc
=
int
(
input
())
if
ccc
==
1
:
nvwujiuming
=
False
lll
[
"jsfs"
]
+=
1
cc
=
5
if
nvwuyouduyao
:
print
(
"你有一瓶毒药,你是否要毒?(输入0为否,输入1为是)"
)
duyao
=
int
(
input
())
if
duyao
==
1
:
print
(
"要毒谁呢?(输入数字"
+
c
+
")"
)
du
=
int
(
input
())
print
(
"女巫请闭眼"
)
else
:
print
(
"女巫请睁眼"
)
if
nvwujiuming
:
print
(
"今天晚上,玩家...死了,你是否要救"
)
sleep
(
3
)
ccc
=
randint
(
0
,
1
)
if
ccc
==
1
:
nvwujiuming
=
False
cc
=
5
if
nvwuyouduyao
:
print
(
"你有一瓶毒药,你是否要毒?"
)
sleep
(
3
)
if
ccc
==
0
:
duyao
=
0
else
:
duyao
=
randint
(
0
,
1
)
if
duyao
==
1
:
du
=
randint
(
0
,
3
)
while
du
==
nvwu
or
du
==
cd
or
str
(
du
)
not
in
pl
:
du
=
randint
(
0
,
3
)
print
(
"女巫请闭眼"
)
sleep
(
2
)
print
(
"天亮了"
)
if
cc
==
5
and
duyao
==
0
:
print
(
"昨天没有人死"
)
else
:
if
cc
==
0
or
du
==
0
:
print
(
"你死了,已出局"
)
lll
[
"114514"
]
+=
1
break
else
:
if
cc
!=
5
:
print
(
"昨天晚上玩家"
+
str
(
cc
)
+
"("
+
wanjianame
[
cc
-
1
]
+
")死了(狼人杀害)他的身份是:"
+
ap
[
cc
])
del
pl
[
pl
.
index
(
str
(
cc
))]
else
:
print
(
"昨晚狼人没有杀人(女巫拯救)"
)
if
duyao
==
1
:
print
(
"昨天晚上玩家"
+
str
(
du
)
+
"("
+
wanjianame
[
du
-
1
]
+
")死了(女巫毒杀)"
,
"他的身份是:"
+
ap
[
du
])
if
ap
[
du
]
==
"狼人"
:
print
(
"狼人出局,好人胜利"
)
if
player0
==
"女巫"
:
lll
[
"yy"
]
+=
1
lll
[
"p"
]
+=
1
break
del
pl
[
pl
.
index
(
str
(
du
))]
nvwuyouduyao
=
False
if
len
(
pl
)
==
2
:
#如果在场玩家只剩一个,狼人胜利
print
(
"好人只剩一个,狼人胜利"
)
lll
[
"l"
]
+=
1
break
myself
,
wanjia1
,
wanjia2
,
wanjia3
=
0
,
0
,
0
,
0
c
=
','
.
join
(
pl
)
print
(
"请你选择要投票的玩家(输入数字"
+
c
+
(
",投自己将视为弃权)"
))
aaaaa
=
int
(
input
())
if
aaaaa
==
1
:
wanjia1
+=
1
elif
aaaaa
==
2
:
wanjia2
+=
1
elif
aaaaa
==
3
:
wanjia3
+=
1
aaaab
=
aaaaa
if
"1"
in
pl
:
print
(
"请玩家1选择要投票的玩家"
)
while
aaaaa
==
1
or
str
(
aaaaa
)
not
in
pl
:
aaaaa
=
randint
(
0
,
3
)
if
aaaaa
==
0
:
myself
+=
1
elif
aaaaa
==
2
:
wanjia2
+=
1
elif
aaaaa
==
3
:
wanjia3
+=
1
sleep
(
3
)
if
aaaaa
==
0
:
print
(
"玩家1投给了"
,
aaaaa
)
else
:
print
(
"玩家1投给了"
,
aaaaa
,
"("
+
wanjianame
[
aaaaa
-
1
]
+
")"
)
if
"2"
in
pl
:
sleep
(
2
)
print
(
"请玩家2选择要投票的玩家"
)
while
aaaaa
==
2
or
str
(
aaaaa
)
not
in
pl
:
aaaaa
=
randint
(
0
,
3
)
if
aaaaa
==
0
:
myself
+=
1
elif
aaaaa
==
1
:
wanjia1
+=
1
elif
aaaaa
==
3
:
wanjia3
+=
1
sleep
(
3
)
if
aaaaa
==
0
:
print
(
"玩家2投给了"
,
aaaaa
)
else
:
print
(
"玩家2投给了"
,
aaaaa
,
"("
+
wanjianame
[
aaaaa
-
1
]
+
")"
)
if
"3"
in
pl
:
sleep
(
2
)
print
(
"请玩家3选择要投票的玩家"
)
while
aaaaa
==
3
or
str
(
aaaaa
)
not
in
pl
:
aaaaa
=
randint
(
0
,
3
)
if
aaaaa
==
0
:
myself
+=
1
elif
aaaaa
==
1
:
wanjia1
+=
1
elif
aaaaa
==
2
:
wanjia2
+=
1
sleep
(
3
)
if
aaaaa
==
0
:
print
(
"玩家3投给了"
,
aaaaa
)
else
:
print
(
"玩家3投给了"
,
aaaaa
,
"("
+
wanjianame
[
aaaaa
-
1
]
+
")"
)
n
=
[
myself
,
wanjia1
,
wanjia2
,
wanjia3
]
n
.
sort
(
reverse
=
True
)
if
n
[
1
]
==
n
[
0
]:
print
(
"平票,无人出局"
)
elif
n
[
0
]
==
myself
:
print
(
"你票数最多,出局"
)
lll
[
"114514"
]
+=
1
break
elif
n
[
0
]
==
wanjia1
:
print
(
"玩家1"
+
"("
+
wanjianame
[
wanjianame
.
index
(
p1
)]
+
")票数最多,出局"
)
print
(
"玩家1的身份是"
+
player1
)
if
a
.
index
(
player1
)
==
2
:
print
(
"狼人出局,好人胜利"
)
if
aaaab
==
1
:
lll
[
"yy"
]
+=
1
lll
[
"p"
]
+=
1
break
elif
a
.
index
(
player1
)
==
3
:
nvwuhuozhe
=
False
del
pl
[
pl
.
index
(
"1"
)]
else
:
del
pl
[
pl
.
index
(
"1"
)]
elif
n
[
0
]
==
wanjia2
:
print
(
"玩家2"
+
"("
+
wanjianame
[
wanjianame
.
index
(
p2
)]
+
")票数最多,出局"
)
print
(
"玩家2的身份是"
+
player2
)
if
a
.
index
(
player2
)
==
2
:
print
(
"狼人出局,好人胜利"
)
if
aaaab
==
2
:
lll
[
"yy"
]
+=
1
lll
[
"p"
]
+=
1
break
elif
a
.
index
(
player2
)
==
3
:
nvwuhuozhe
=
False
del
pl
[
pl
.
index
(
"2"
)]
else
:
del
pl
[
pl
.
index
(
"2"
)]
elif
n
[
0
]
==
wanjia3
:
print
(
"玩家3"
+
"("
+
wanjianame
[
wanjianame
.
index
(
p3
)]
+
")票数最多,出局"
)
print
(
"玩家3的身份是"
+
player3
)
if
a
.
index
(
player3
)
==
2
:
print
(
"狼人出局,好人胜利"
)
if
aaaab
==
3
:
lll
[
"yy"
]
+=
1
lll
[
"p"
]
+=
1
break
elif
a
.
index
(
player3
)
==
3
:
nvwuhuozhe
=
False
del
pl
[
pl
.
index
(
"3"
)]
else
:
del
pl
[
pl
.
index
(
"3"
)]
print
(
"你的票数:"
,
myself
)
if
"1"
in
pl
:
print
(
"玩家1的票数:"
,
wanjia1
)
if
"2"
in
pl
:
print
(
"玩家2的票数:"
,
wanjia2
)
if
"3"
in
pl
:
print
(
"玩家3的票数:"
,
wanjia3
)
if
len
(
pl
)
==
2
:
#如果在场玩家只剩一个,狼人胜利
print
(
"好人只剩一个,狼人胜利"
)
lll
[
"l"
]
+=
1
break
print
(
"玩家1身份:"
+
player1
+
"
\n
玩家2身份:"
+
player2
+
"
\n
玩家3身份:"
+
player3
)
lll
[
"all"
]
+=
1
if
lll
[
"114514"
]
/
lll
[
"all"
]
>
0.60
and
"替罪羊"
not
in
lll
[
"ch"
]:
print
(
"恭喜获得称号:替罪羊(自己的死亡数占总场数的60%以上)"
)
lll
[
"ch"
].
append
(
"替罪羊"
)
if
lll
[
"114514"
]
/
lll
[
"all"
]
>
0.75
and
"究极替罪羊"
not
in
lll
[
"ch"
]:
print
(
"恭喜获得称号:究极替罪羊(自己的死亡数占总场数的75%以上)"
)
lll
[
"ch"
].
append
(
"究极替罪羊"
)
if
lll
[
"all"
]
>=
15
and
"沙场新秀"
not
in
lll
[
"ch"
]:
print
(
"恭喜获得称号:沙场新秀(总场数超过15场)"
)
lll
[
"ch"
].
append
(
"沙场新秀"
)
if
lll
[
"all"
]
>=
45
and
"沙场老兵"
not
in
lll
[
"ch"
]:
print
(
"恭喜获得称号:沙场老兵(总场数超过45场)"
)
lll
[
"ch"
].
append
(
"沙场老兵"
)
if
lll
[
"all"
]
>=
100
and
"沙场战神"
not
in
lll
[
"ch"
]:
print
(
"恭喜获得称号:沙场战神(总场数超过100场)"
)
lll
[
"ch"
].
append
(
"沙场战神"
)
if
lll
[
"all"
]
>=
500
and
"沙场神仙"
not
in
lll
[
"ch"
]:
print
(
"恭喜获得称号:沙场神仙(总场数超过500场)"
)
lll
[
"ch"
].
append
(
"沙场神仙"
)
if
lll
[
"jsfs"
]
>=
20
and
"医者仁心"
not
in
lll
[
"ch"
]:
print
(
"恭喜获得称号:医者仁心(使用女巫救人超过20人)"
)
lll
[
"ch"
].
append
(
"医者仁心"
)
if
lll
[
"yy"
]
>=
20
and
"鹰眼"
not
in
lll
[
"ch"
]:
print
(
"恭喜获得称号:鹰眼(识破狼人超过20人)"
)
lll
[
"ch"
].
append
(
"鹰眼"
)
with
open
(
"shengli.dat"
,
"w"
)
as
f_obj
:
json
.
dump
(
lll
,
f_obj
)
input
(
"按回车继续"
)
shengli.dat
0 → 100644
浏览文件 @
ebf8e1f3
{"l": 0, "p": 0, "114514": 0, "all": 0, "jsfs": 0, "ch": [], "yy": 0}
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录