"开火车的纸牌游戏"-python版本

本文介绍了一个名为'开火车'的纸牌游戏,由Python实现。游戏规则包括:玩家初始平分52张牌,轮流按顺序出牌,若两张牌点数相同,则该玩家收集这两张牌之间的所有牌。当玩家出完所有牌时,比较双方牌数,牌数多者获胜。程序接收两个玩家的初始牌面并输出获胜者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

小Byte和小Dance玩一种叫“开火车的”纸牌游戏,游戏规则如下:
1.初始给两人随机平分52张扑克牌,每个人26张;
2.小Byte先开始,将第一张牌放下;
3.随后两人轮流按序(按从第一张到最后一张的顺序出牌,手中牌的顺序不可以被打乱)放置扑克,后一张扑克压在前一张扑克上;
4.如果出现之前放下的某张扑克s和将要放下的扑克t点数相同,则当前玩家获得从s到t之间所有的牌(包括s和t这两张);
5.玩家手上26张牌都出完后,清点双方获得的牌数,牌数多的玩家获胜,若相同,则平局。

输入描述:
输入包括两行,每行26个数字,分别表示两位玩家初始被随机分配的点数,第一行为小byte分到的牌。
输出描述:
若平局,则输出"Draw",否则输出获胜玩家的名字(“Byte”或"Dance").


#!/usr/bin/env python
# -*- coding: utf-8 -*-
Byte = [10, 2, 5, 6, 13, 11, 11, 4, 10, 8, 12, 5, 4, 1, 8, 1, 7,12, 4, 13, 6, 9, 9, 9, 5, 7]
Dance = [6, 3, 13, 8, 2, 3, 7, 3, 2, 2, 12, 11, 10, 6, 10, 1, 1, 12, 3, 5, 7, 11, 13, 4, 8, 9]
# Byte = raw_input()
# Dance = raw_input()
# Byte = int(Byte.split(' '))
# Dance = int(Dance.split(' '))
nu_Byte = 0                                # 统计
nu_Dance = 0
i = 0
common = []
for j in Byte:
    if j not in common:
        common.append(j)
    else:
        index = common.index(j)              # 找出此牌第一次出现的位置索引
        current_Byte = len(common) - index       # 计算Byte此次可以回收多少张牌
        nu_Byte += current_Byte
        for a in range(current_Byte):
            common.pop()                          # 删除Byte回收过的牌
    if Dance[i] not in common:
        common.append(Dance[i])
        i += 1
    else:
        index = common.index(Dance[i])              # 找出此牌第一次出现的位置索引
        current_Dance = len(common) - index       # 计算Dance此次可以回收多少张牌
        nu_Dance += current_Dance
        for b in range(current_Dance):
            common.pop()                          # 删除Dance回收过的牌

if nu_Byte == nu_Dance:
    print('Draw')
elif nu_Byte < nu_Dance:
    print('Dance')
else:
    print('Byte')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值