Python實(shí)現(xiàn)炸金花游戲的示例代碼
今天的第二個(gè)作品,哈哈哈哈,搞起來感覺還挺有意思的,不過代碼里紙牌J,Q,K,A幾個(gè)數(shù)字被我替換成了11,12,13,14......主要是沒有想到簡(jiǎn)單的辦法讓其比較,索性都用數(shù)字了,我太菜了,希望有大佬指點(diǎn)一下。
代碼如下:
import random ? #導(dǎo)入隨機(jī)數(shù)函數(shù)
def puke():
? ? """
? ? 生成一副52張的撲克牌(除去大小王)
? ? :return:
? ? """
? ? list1 = ['黑桃', '紅桃', '方塊', '梅花']
? ? list2 = [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
? ? list3 = []
? ? for i in list1:
? ? ? ? for j in list2:
? ? ? ? ? ? dict1 = {i: j}
? ? ? ? ? ? list3.append(dict1)
? ? return list3
def func(num):
? ? """
? ? 判斷隨機(jī)生成的三張撲克類型,對(duì)不同類型的牌 底分進(jìn)行相應(yīng)的翻倍
? ? 其中num參數(shù)返回的是對(duì)玩家牌型計(jì)算后的分?jǐn)?shù)。
? ? (最小單張是:2,
? ? 11,12,13,14 ?分別代表:J,Q,K,A)
? ? :param num:
? ? :return:
? ? """
? ? user_list1 = [] ? ? #用于存儲(chǔ)牌的花色
? ? user_list2 = [] ? ? #用于存儲(chǔ)牌的數(shù)字
? ? global list4 ? ? #聲明調(diào)用外部全局變量
? ? for i in list4:
? ? ? ? user_list1.append(list(i.keys()))
? ? ? ? for j in i:
? ? ? ? ? ? user_list1.append(list(i.values()))
? ? user_list2.append(user_list1[1]) ? ? ? ?#將遍歷后的數(shù)字添加進(jìn)user_list2中
? ? user_list2.append(user_list1[3])
? ? user_list2.append(user_list1[5])
? ? user_list2 = [int(x) for item in user_list2 for x in item] ? ? ?#合并列表
? ? user_list2.sort() ? ? ? #列表排序
? ? if user_list2[0] == user_list1[1] == user_list1[2]: ? ? #判斷三張數(shù)字是否相同
? ? ? ? num = user_list1[1][0] * 100000 + zhadan
? ? elif user_list1[0] == user_list1[2] == user_list1[4] and user_list2[2] - user_list2[1] == user_list2[1] - \
? ? ? ? ? ? user_list2[0] == 1: ? ? #判斷三張花色是否相同且連號(hào)
? ? ? ? num = user_list2[1] * 10000 + shunjin
? ? elif user_list2[2] - user_list2[1] == user_list2[1] - user_list2[0] == 1: ? ? ? #判斷是否連號(hào)
? ? ? ? num = user_list2[1] * 1000 + shunzi
? ? elif user_list2[0] == user_list2[1] or user_list2[1] == user_list2[2] or user_list2[2] == user_list2[0]: ? ? ? ?#判斷是否有兩個(gè)一樣的數(shù)字
? ? ? ? if user_list2[0] == user_list2[1]:
? ? ? ? ? ? num = user_list2[0] * 100 + duizi
? ? ? ? if user_list2[0] == user_list2[2]:
? ? ? ? ? ? num = user_list2[2] * 100 + duizi
? ? ? ? if user_list2[2] == user_list2[1]:
? ? ? ? ? ? num = user_list2[1] * 100 + duizi
? ? elif user_list2[0] != user_list2[1] != user_list2[2]: ? ? ? #最后一種可能,單張
? ? ? ? num = user_list2[2] * 10 + user_list2[1] + danzhang
? ? return num ? ? ?#返回計(jì)算后的分值
# ? ?定義玩家牌型的底分
zhadan = 100
shunjin = 80
shunzi = 60
duizi = 40
danzhang = 20
?
gamer = [] ? ? ?#定義新列表,存放玩家數(shù)量
gamers = int(input('請(qǐng)輸入玩家數(shù)量(只能2 - 9名):'))
if gamers >= 2 and gamers <= 9: ? ? ? ?#判斷用戶輸入的人數(shù)是否在規(guī)定范圍內(nèi)
? ? for i in range(gamers): ?# 玩家數(shù)量由用戶定義,代表整體循環(huán)的次數(shù)
? ? ? ? list4 = [] ?# 用于存儲(chǔ)每名玩家隨機(jī)得到的三張牌
? ? ? ? for j in range(3):
? ? ? ? ? ? sun = random.randint(1, len(puke()) - 1) ?# 以隨機(jī)數(shù)為撲克整體的下標(biāo)進(jìn)行查找對(duì)應(yīng)的牌
? ? ? ? ? ? list4.append(puke()[sun]) ?# 添加進(jìn)列表
? ? ? ? ? ? puke().remove(puke()[sun]) ?# 把已經(jīng)發(fā)出去的牌在撲克牌整體中進(jìn)行刪除
? ? ? ? print(f'{i + 1}號(hào)玩家的底牌:{list4}')
? ? ? ? if i == 0:
? ? ? ? ? ? user_1 = func(0)
? ? ? ? ? ? gamer.append(user_1)
? ? ? ? elif i == 1:
? ? ? ? ? ? user_2 = func(0)
? ? ? ? ? ? gamer.append(user_2)
? ? ? ? elif i == 2:
? ? ? ? ? ? user_3 = func(0)
? ? ? ? ? ? gamer.append(user_3)
? ? ? ? elif i == 3:
? ? ? ? ? ? user_4 = func(0)
? ? ? ? ? ? gamer.append(user_4)
? ? ? ? elif i == 4:
? ? ? ? ? ? user_5 = func(0)
? ? ? ? ? ? gamer.append(user_5)
? ? ? ? elif i == 5:
? ? ? ? ? ? user_6 = func(0)
? ? ? ? ? ? gamer.append(user_6)
? ? ? ? elif i == 6:
? ? ? ? ? ? user_7 = func(0)
? ? ? ? ? ? gamer.append(user_7)
? ? ? ? elif i == 7:
? ? ? ? ? ? user_8 = func(0)
? ? ? ? ? ? gamer.append(user_8)
? ? ? ? elif i == 8:
? ? ? ? ? ? user_9 = func(0)
? ? ? ? ? ? gamer.append(user_9)
else:
? ? print('你輸入的人數(shù)不合理,請(qǐng)重新輸入。')
?
old_grade = [] ? ? ? #定義一個(gè)新列表,用于存放以玩家排序的分?jǐn)?shù)
new_grade = [] ? ? ? ? #定義一個(gè)新列表,用于存放以大小排序后的分?jǐn)?shù)
for i in gamer: ? ? ? ? #遍歷玩家分?jǐn)?shù)列表
? ? old_grade.append(i)
new_grade.extend(old_grade)
old_grade.sort(reverse=True) ? ? #降序排列后的分?jǐn)?shù)列表
?
user = 1
for j in new_grade: ? ? #遍歷玩家順序的列表
? ? if j == old_grade[0]:
? ? ? ? print(f'{user}號(hào)玩家獲勝,得分:{old_grade[0]}') ? ? #最終贏家的分?jǐn)?shù)沒有實(shí)際意義,僅為了判斷最大值
? ? else:
? ? ? ? user += 1補(bǔ)充:示例2
一、Poker 類(撲克牌)
Card = collections.namedtuple('Card', ['rank', 'suit'])
class Poker(MutableSequence):
? ? # 撲克牌的相關(guān)定義
? ? ranks = [str(n) for n in range(2, 11)] + list('JQKA')
? ? suits = 'spades hearts diamonds clubs'.split() ?# 黑桃,紅桃,方塊,梅花
? ? suit_values = dict(spades=3, hearts=2, diamonds=1, clubs=0)#黑桃最大,紅桃次之,方塊再次之,梅花最小
? ? def __init__(self):
? ? ? ? self._cards = [Card(rank, suit) for rank in self.ranks
? ? ? ? ? ? ? ? ? ? ? ??? ??? ??? ??? ??? ?for suit in self.suits]
? ? def __len__(self):
? ? ? ? return len(self._cards)
? ? def __getitem__(self, position): ?# 僅僅實(shí)現(xiàn)了__getitem__方法,該對(duì)象就變成可迭代的
? ? ? ? return self._cards[position]
? ? def __setitem__(self, position, value):
? ? ? ? self._cards[position] = value
? ? def __delitem__(self, position):
? ? ? ? del self._cards[position]
? ? def insert(self, position, value):
? ? ? ? self._cards[position] = value一副撲克牌有 54 張牌,其中 52 張是正牌,另2張是副牌(大王和小王)。本程序中未涉及到大小王。52 張正牌又均分為 13 張一組,并以黑桃、紅桃、梅花、方塊四種花色表示各組,每組花色的牌包括從 2-10 以及 J、Q、K、A 標(biāo)示的 13 張牌。
二、Player 類(玩家)
Own_Poker = collections.namedtuple('Own_Poker', ['id', 'rank', 'suit', 'score'])
class Player():
? ? '''
? ? 牌型 豹子:三張同樣大小的牌。 順金:花色相同的三張連牌?! 〗鸹ǎ喝龔埢ㄉ嗤呐啤!?
? ? 順子:三張花色不全相同的連牌?! ?duì)子:三張牌中有兩張同樣大小的牌?! 螐垼撼陨吓菩偷呐?。
? ? '''
? ? def __init__(self, id, poker):
? ? ? ? self.id = id
? ? ? ? self.poker = poker ?#一副撲克牌
? ? ? ? self.pokers = []?? ?#玩家手中的牌
? ? ? ? self.type = 0 ?# 每個(gè)人初始都假定為三張毫無關(guān)系的牌,也就是撲克牌贏法中的“單張”
? ? def set_card_score(self, card):
? ? ? ? '''
? ? ? ? 按照點(diǎn)數(shù)判定撲克牌的大小
? ? ? ? :param card:撲克牌卡片
? ? ? ? :return:撲克牌點(diǎn)數(shù)大小
? ? ? ? '''
? ? ? ? rank_value = Poker.ranks.index(card.rank)
? ? ? ? suit_values = Poker.suit_values
? ? ? ? return rank_value * len(suit_values) + suit_values[card.suit]
? ? def sort_card_index(self, rank_index_list):
? ? ? ? '''
? ? ? ? 通過值減下標(biāo)的方式分組,如果三個(gè)值連續(xù)則被分配到同一個(gè)g中
? ? ? ? 比如說ll=[3,4,5,7,8],分組時(shí),enumerate(ll)=[(0,3),(1,4),(2,5),(3,7),(4,8)],fun函數(shù)值減下標(biāo),結(jié)果一樣的,就歸為一組
? ? ? ? 在本程序中,如果是三張連續(xù)的撲克牌,則應(yīng)該是同一個(gè)g中,此時(shí)返回為Ture,否則為False
? ? ? ? :param rank_index_list:
? ? ? ? :return:
? ? ? ? '''
? ? ? ? fun = lambda x: x[1] - x[0]
? ? ? ? for k, g in groupby(enumerate(rank_index_list), fun): ?# 返回一個(gè)產(chǎn)生按照fun進(jìn)行分組后的值集合的迭代器.
? ? ? ? ? ? if len([v for i, v in g]) == 3:
? ? ? ? ? ? ? ? return True
? ? ? ? return False
? ? def judge_type(self):
? ? ? ? '''
? ? ? ? 玩家隨機(jī)發(fā)完三張牌后,根據(jù)撲克牌玩法進(jìn)行區(qū)分,對(duì)手中的牌進(jìn)行判別屬于哪種類型
? ? ? ? :return:
? ? ? ? '''
? ? ? ? suit_list = []
? ? ? ? rank_list = []
? ? ? ? score_list = []
? ? ? ? for poker in self.pokers:
? ? ? ? ? ? suit_list.append(poker.suit)
? ? ? ? ? ? rank_list.append(poker.rank)
? ? ? ? ? ? score_list.append(poker.score)
? ? ? ? rank_index_list = [] ?# 撲克牌卡片在Poker中rank中的index
? ? ? ? for rank in rank_list:
? ? ? ? ? ? index = self.poker.ranks.index(rank)
? ? ? ? ? ? rank_index_list.append(index)
? ? ? ? if len(set(rank_list)) == 1:
? ? ? ? ? ? self.type = 5 ?# 豹子
? ? ? ? elif len(set(suit_list)) == 1:
? ? ? ? ? ? if self.sort_card_index(rank_index_list):
? ? ? ? ? ? ? ? self.type = 4 ?# 順金
? ? ? ? ? ? else:
? ? ? ? ? ? ? ? self.type = 3 ?# 金花
? ? ? ? elif self.sort_card_index(rank_index_list):
? ? ? ? ? ? self.type = 2 ?# 順子
? ? ? ? elif len(set(rank_list)) == 2:
? ? ? ? ? ? self.type = 1 ?# 對(duì)子
? ? def play(self):
? ? ? ? self.judge_type()每位玩家都有一個(gè)名稱,用同一副撲克牌,炸金花游戲要求每人手中有三張牌,根據(jù)手中的牌,程序初步判斷屬于哪種牌型,用于后續(xù)游戲取勝機(jī)制做判斷。
三、Winner 類(游戲取勝機(jī)制)
class Winner():
? ? def __init__(self, player1, player2):
? ? ? ? self.player1 = player1
? ? ? ? self.player2 = player2
? ? def get_max_card(self, player):
? ? ? ? '''
? ? ? ? 篩選出三張牌中最大的牌,這里返回的是在ranks中的index
? ? ? ? :param player:
? ? ? ? :return:
? ? ? ? '''
? ? ? ? ranks = Poker.ranks
? ? ? ? rank_index_list = [] ?# 撲克牌卡片在Poker中rank中的index
? ? ? ? for poker in player.pokers:
? ? ? ? ? ? index = ranks.index(poker.rank)
? ? ? ? ? ? rank_index_list.append(index)
? ? ? ? return max(rank_index_list)
? ? def get_card_suit(self, player):
? ? ? ? '''
? ? ? ? 返回?fù)淇伺苹ㄉ笮?
? ? ? ? :param player:
? ? ? ? :return:
? ? ? ? '''
? ? ? ? suit_values = Poker.suit_values
? ? ? ? suit = player.pokers[0].suit
? ? ? ? return suit_values[suit]
? ? def get_card_value(self, player):
? ? ? ? '''
? ? ? ? 當(dāng)牌型是對(duì)子的時(shí)候,經(jīng)過匹配找出是對(duì)子的牌和單個(gè)的牌,這里返回的是牌的index,便于比較大小
? ? ? ? :param player:
? ? ? ? :return:
? ? ? ? '''
? ? ? ? ranks = Poker.ranks
? ? ? ? rank_index_dict = {} ?# 撲克牌卡片在Poker中rank中的index
? ? ? ? repeat_rank_value = 0 ?# 成對(duì)的兩張撲克牌的大小
? ? ? ? single_rank_value = 0 ?# 單個(gè)的撲克牌的大小
? ? ? ? for poker in player.pokers:
? ? ? ? ? ? index = ranks.index(poker.rank)
? ? ? ? ? ? if index in rank_index_dict:
? ? ? ? ? ? ? ? rank_index_dict[index] += 1
? ? ? ? ? ? else:
? ? ? ? ? ? ? ? rank_index_dict[index] = 1
? ? ? ? rank_index_dict = sorted(rank_index_dict.items(), key=lambda d: d[1], reverse=True)
? ? ? ? n = 0
? ? ? ? for key in rank_index_dict:
? ? ? ? ? ? if n == 0:
? ? ? ? ? ? ? ? repeat_rank_value = key
? ? ? ? ? ? else:
? ? ? ? ? ? ? ? single_rank_value = key
? ? ? ? ? ? n += 1
? ? ? ? return repeat_rank_value, single_rank_value
? ? def get_player_score(self, player):
? ? ? ? '''
? ? ? ? 當(dāng)牌型為單牌時(shí),計(jì)算手中的牌相加后的值大小
? ? ? ? :param player:
? ? ? ? :return:
? ? ? ? '''
? ? ? ? ranks = Poker.ranks
? ? ? ? score = 0
? ? ? ? for poker in player.pokers:
? ? ? ? ? ? index = ranks.index(poker.rank) ?# 撲克牌卡片在Poker中rank中的index
? ? ? ? ? ? score += index
? ? ? ? return score
? ? def get_winner(self):
? ? ? ? player1, player2 = self.player1, self.player2
? ? ? ? # 先比較玩家手中的牌型,大的勝出,玩牌的規(guī)則暫時(shí)不涉及到牌色,如有修改可以在此基礎(chǔ)上調(diào)整
? ? ? ? # 豹子> 順金 > 金花 > 順子 > 對(duì)子 > 單張
? ? ? ? if player1.type > player2.type:
? ? ? ? ? ? return player1
? ? ? ? elif player1.type < player2.type:
? ? ? ? ? ? return player2
? ? ? ? else: ?# 當(dāng)玩家雙方手中的牌型一致時(shí),根據(jù)贏法一一判斷
? ? ? ? ? ? if player1.type == 5 or player1.type == 4 or player1.type == 2: ?# 豹子、順金、順子 規(guī)則說明:按照比點(diǎn)
? ? ? ? ? ? ? ? if self.get_max_card(player1) > self.get_max_card(player2):
? ? ? ? ? ? ? ? ? ? return player1
? ? ? ? ? ? ? ? else:
? ? ? ? ? ? ? ? ? ? return player2
? ? ? ? ? ? elif player1.type == 1: ?# 對(duì)子 規(guī)則說明:先比較相同兩張的值的大小,誰大誰勝出;如果對(duì)子相同,再比較單個(gè)
? ? ? ? ? ? ? ? repeat_rank_value1, single_rank_value1 = self.get_card_value(player1)
? ? ? ? ? ? ? ? repeat_rank_value2, single_rank_value2 = self.get_card_value(player1)
? ? ? ? ? ? ? ? if repeat_rank_value1 > repeat_rank_value2:
? ? ? ? ? ? ? ? ? ? return player1
? ? ? ? ? ? ? ? elif repeat_rank_value1 < repeat_rank_value2:
? ? ? ? ? ? ? ? ? ? return player2
? ? ? ? ? ? ? ? else:
? ? ? ? ? ? ? ? ? ? if single_rank_value1 > single_rank_value2:
? ? ? ? ? ? ? ? ? ? ? ? return player1
? ? ? ? ? ? ? ? ? ? elif single_rank_value1 < single_rank_value2:
? ? ? ? ? ? ? ? ? ? ? ? return player2
? ? ? ? ? ? ? ? ? ? else:
? ? ? ? ? ? ? ? ? ? ? ? return None ?# 平局,大家手上的牌一樣大
? ? ? ? ? ? else: ?# 單牌,金花 ? 規(guī)則:比較所有牌的點(diǎn)數(shù)大小,不區(qū)分牌色
? ? ? ? ? ? ? ? if self.get_player_score(player1) > self.get_player_score(player2):
? ? ? ? ? ? ? ? ? ? return player1
? ? ? ? ? ? ? ? elif self.get_player_score(player1) < self.get_player_score(player2):
? ? ? ? ? ? ? ? ? ? return player2
? ? ? ? ? ? ? ? else:
? ? ? ? ? ? ? ? ? ? return None由于不是很清楚炸金花的游戲規(guī)則,這里我們采用的是最簡(jiǎn)單的游戲規(guī)則。
牌型 豹子:三張同樣大小的牌。順金:花色相同的三張連牌。金花:三張花色相同的牌。 順子:三張花色不全相同的連牌?!?duì)子:三張牌中有兩張同樣大小的牌。單張:除以上牌型的牌。
玩法比較簡(jiǎn)單,豹子> 順金 > 金花 > 順子 > 對(duì)子 > 單張,當(dāng)牌型不一致的話,誰牌型大誰勝出;當(dāng)牌型一致的時(shí)候,又分為三種情況,一是豹子、順金、順子,比較玩家手中牌的最大值,誰擁有最大牌面值誰勝出;二是對(duì)子,比較玩家手中對(duì)子的牌面大小,如果相同再另行比較;三是金花、單張,比較玩家手中所有牌面大小之和。
除了上述三個(gè)對(duì)象類外,還需要一個(gè)發(fā)牌者(荷官)來主持洗牌和發(fā)牌。
def compare_card(card1, card2): ? ? ''' ? ? 比較兩種撲克牌是否相同 ? ? :param card1: ? ? :param card2: ? ? :return: 相同返回為True,否則為False ? ? ''' ? ? if card1.rank == card2.rank and card1.suit == card2.suit: ? ? ? ? return True ? ? return False def dutch_official_work(poker, player1, player2): ? ? ''' ? ? 發(fā)牌人(荷官)給兩位玩家輪替發(fā)牌,發(fā)出去的牌都需要從這副撲克牌中剔除出去 ? ? :param poker: 那一副撲克牌 ? ? :param player1:玩家1 ? ? :param player2:玩家2 ? ? :return:整理后的撲克牌 ? ? ''' ? ? def distribute_card(player): ? ? ? ? card = choice(poker) ?# 發(fā)牌 ? ? ? ? player.pokers.append(Own_Poker(player.id, card.rank, card.suit, player.set_card_score(card))) ? ? ? ? for i in range(len(poker)): ? ? ? ? ? ? if compare_card(card, poker[i]): ? ? ? ? ? ? ? ? poker.__delitem__(i) ? ? ? ? ? ? ? ? break ? ? shuffle(poker) ?# 洗牌 ? ? for k in range(3): ? ? ? ? distribute_card(player1) ? ? ? ? distribute_card(player2) ? ? return poker
詳細(xì)代碼可以訪問 https://github.com/Acorn2/fluentPyStudy/blob/master/chapter01/Poker_Demo.py
到此這篇關(guān)于Python實(shí)現(xiàn)炸金花游戲的示例代碼的文章就介紹到這了,更多相關(guān)Python 炸金花游戲內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python實(shí)現(xiàn)將JSON文件中的數(shù)據(jù)格式化處理
JSON是一種輕量級(jí)的數(shù)據(jù)交換格式,常用于Web服務(wù)間的數(shù)據(jù)傳輸,Python內(nèi)置了??json??模塊,能夠方便地進(jìn)行JSON數(shù)據(jù)的解析與格式化,本文將通過具體的Python代碼實(shí)例,深入探討如何將JSON文件中的數(shù)據(jù)進(jìn)行格式化處理,需要的朋友可以參考下2024-03-03
Python+ChatGPT實(shí)戰(zhàn)之進(jìn)行游戲運(yùn)營(yíng)數(shù)據(jù)分析
最近ChatGPT蠻火的,今天試著讓ta用Python語言寫了一篇數(shù)據(jù)分析實(shí)戰(zhàn)案例。文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-02-02
Python使用Pandas讀取CSV文件數(shù)據(jù)的操作方法
Pandas?是?Python?中一個(gè)強(qiáng)大的數(shù)據(jù)分析庫,它提供了大量的工具用于數(shù)據(jù)操作和分析,其中,read_csv?函數(shù)是?Pandas?中最常用的函數(shù)之一,用于從?CSV?文件中讀取數(shù)據(jù),本文將詳細(xì)介紹?read_csv?的基本用法,常見問題及其解決方案,并通過代碼案例進(jìn)行說明2024-12-12
python使用matplotlib繪圖時(shí)圖例顯示問題的解決
matplotlib 是python最著名的繪圖庫,它提供了一整套和matlab相似的命令A(yù)PI,十分適合交互式地進(jìn)行制圖。下面這篇文章主要給大家介紹了在python使用matplotlib繪圖時(shí)圖例顯示問題的解決方法,需要的朋友可以參考學(xué)習(xí),下面來一起看看吧。2017-04-04
Python3自動(dòng)生成MySQL數(shù)據(jù)字典的markdown文本的實(shí)現(xiàn)
這篇文章主要介紹了Python3自動(dòng)生成MySQL數(shù)據(jù)字典的markdown文本的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05
python opencv 圖像邊框(填充)添加及圖像混合的實(shí)現(xiàn)方法(末尾實(shí)現(xiàn)類似幻燈片漸變的效果)
這篇文章主要介紹了python opencv 圖像邊框(填充)添加及圖像混合(末尾實(shí)現(xiàn)類似幻燈片漸變的效果),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-03-03

