石頭剪刀布輸1次脫的游戲,Python設(shè)計(jì)一個(gè)石頭、剪刀、布游戲

            抖帥宮 805 2023-10-31

            石頭剪刀布輸1次脫的游戲,Python設(shè)計(jì)一個(gè)石頭、剪刀、布游戲-第1張-觀點(diǎn)-玄機(jī)派

            來(lái)源頭條作者:少兒編程Prog61

            石頭剪刀布是一種很受歡迎的游戲。我們將在python編程語(yǔ)言中實(shí)現(xiàn)石頭剪刀布(Rock, Paper, and Scissors)。Python是最簡(jiǎn)單的編程語(yǔ)言之一,理解它不需要花費(fèi)太多時(shí)間。讓我們開始吧。

            讓我們分解石頭,剪刀、布

            在轉(zhuǎn)到編碼部分之前,編程和開發(fā)的第一條規(guī)則始終是分析并分解我們將要實(shí)現(xiàn)的內(nèi)容。將我們的問(wèn)題分解為更小的步驟稱為分解。在這里,我們將為游戲石頭剪刀布創(chuàng)建一個(gè)程序。我們將問(wèn)題分為幾部分。

            1.玩家。在這個(gè)游戲中我們需要兩個(gè)人,我們將有一個(gè)用戶,另一個(gè)用戶是計(jì)算機(jī)。用戶和計(jì)算機(jī)都將輸入他們的選擇。不用擔(dān)心計(jì)算機(jī)的輸入,它將是最有趣的部分。

            2.規(guī)則。接下來(lái),我們必須創(chuàng)建示例方案來(lái)確定誰(shuí)是每個(gè)回合的贏家。讓我們簡(jiǎn)要地討論這些情況:

            – 當(dāng)用戶和計(jì)算機(jī)做出相同選擇時(shí),這是平局。

            – 石頭勝過(guò)剪刀,輸給布

            – 布勝過(guò)石頭,輸給了剪刀

            – 剪刀戰(zhàn)勝布,輸給石頭

            3.退出策略。總會(huì)有一個(gè)選擇來(lái)完成游戲。

            4.誰(shuí)贏了?我們還需要保留雙方所獲得的積分。

            現(xiàn)在我們知道我們將要做什么。讓我們開始編碼吧!

            編寫Python游戲代碼:分步說(shuō)明

            這款游戲是使用變量,列表,while循環(huán),if-elif-else階梯和我們從隨機(jī)模塊導(dǎo)入的特殊randint方法創(chuàng)建的。我們將在下面介紹所有這些初學(xué)者編程概念!

            如果您沒(méi)有python編輯器,并且正在尋找一種非常簡(jiǎn)單的方法立即開始使用Python,則可以使用在線Python IDE編輯器。 只需打開此頁(yè)面https://repl.it/languages/python3,您就可以立即開始使用!

            步驟1:導(dǎo)入模塊

            from random import randint

            我們使用'from'和'import'關(guān)鍵字從隨機(jī)模塊導(dǎo)入randint函數(shù)。randint函數(shù)具有一些特殊功能,我們將在程序中使用它們。 我們將在后面討論。 現(xiàn)在我們已經(jīng)有了重要的功能,可以在我們的代碼中使用它了。

            步驟2:創(chuàng)建可用選項(xiàng)列表Python中的數(shù)據(jù)結(jié)構(gòu)是用戶友好的并且非常易于理解。讓我們看一下第一個(gè)數(shù)據(jù)結(jié)構(gòu)的代碼,一個(gè)列表。

            #List of options game = ["Rock", "Paper", "Scissors"]

            Python中還有其他數(shù)據(jù)結(jié)構(gòu),每個(gè)結(jié)構(gòu)都有不同的功能。使用方括號(hào)創(chuàng)建列表,要檢索它的值,我們需要做的就是,寫下列表的名稱,后跟兩個(gè)方括號(hào),然后輸入要檢索的值的索引。例如:

            game[1]

            步驟3:讓電腦隨機(jī)選擇

            我們已經(jīng)導(dǎo)入了randint函數(shù),并且我們還知道如何從列表中檢索值。現(xiàn)在是時(shí)候結(jié)合這兩個(gè)概念,我們需要獲得計(jì)算機(jī)的選擇。以下代碼就是計(jì)算機(jī)在此程序中隨機(jī)選擇的方式。

            #Assigning a random option to computer computer = game[randint(0,2)]

            我們創(chuàng)建了一個(gè)名為computer的變量,該變量將保存計(jì)算機(jī)的選擇。我們已經(jīng)有了選擇列表,接下來(lái)需要考慮讓計(jì)算機(jī)可以隨機(jī)選擇其中之一。這是randint函數(shù)發(fā)揮作用的地方。

            randint函數(shù)用于生成隨機(jī)值。將上下限參數(shù)傳遞給此函數(shù),并且返回值始終在此范圍之間。根據(jù)列表定義,我們將傳遞參數(shù)0和2,游戲具有三個(gè)值,0是第一個(gè)值。因此,這里返回0、1和2共三個(gè)選項(xiàng)!

            randint(0,2)

            這行代碼可以返回0、1或2,它可以是唯一的或相同的,這是完全隨機(jī)的! 我們將使用返回的數(shù)字作為列表的索引。

            game[randint(0,2)]

            我們將整個(gè)randint函數(shù)寫在方括號(hào)內(nèi),這樣返回的隨機(jī)數(shù)就可以作為索引。現(xiàn)在,計(jì)算機(jī)做出了選擇,并保存在變量中。

            第4步:讓我們?cè)陂_始游戲之前定義更多變量

            變量是編程的重要組成部分。對(duì)于我們的石頭剪刀布游戲,還有一些其他變量需要考慮。

            playersPoint = 0 computersPoint = 0

            這兩個(gè)變量將為用戶和計(jì)算機(jī)保存分?jǐn)?shù),所以要初始化為零。

            goOn = True

            除了選項(xiàng)之外,用戶還可以結(jié)束游戲。當(dāng)用戶輸入“Finish”時(shí),上述變量將結(jié)束游戲。goOn變量設(shè)置為True,這是while循環(huán)的條件。

            當(dāng)用戶輸入“Finish”時(shí),此變量的值將更改為false,游戲結(jié)束。

            步驟5:創(chuàng)建While循環(huán)

            while循環(huán)允許我們的游戲運(yùn)行,直到游戲被用戶結(jié)束為止。

            #Loop goes on until goOn is false while(goOn):

            在括號(hào)中,使用了goOn變量。 goOn變量的值為True,這意味著while循環(huán)中的條件為true,它將一直運(yùn)行直到條件為false。稍后,當(dāng)用戶鍵入“Finish”時(shí),我們將告訴程序?qū)oOn變量更改為false。

            步驟6:允許用戶輸入while循環(huán)中的第一行代碼是:

            #Ask for user input player = input("Rock, Paper or Scissors? or enter Finish to end!\n")

            這是我們要求用戶選擇的地方。四個(gè)選項(xiàng)是“石頭(Rock)”,“布(Paper)”,“剪刀(Scissors)”和“完成(Finish)”。 用戶必須輸入其中之一,否則程序?qū)⒉粫?huì)繼續(xù)。

            選項(xiàng)存儲(chǔ)在player變量中,函數(shù)內(nèi)編寫的文本出現(xiàn)在屏幕上。我們必須完全按照要求輸入值! 這是大小寫敏感的!

            步驟7:定義方案

            我們有兩個(gè)變量:computer和player,分別存有計(jì)算機(jī)和用戶的選擇。

            現(xiàn)在是時(shí)候決定獲勝者了。 我們將通過(guò)使用if-elif-else梯形圖來(lái)實(shí)現(xiàn)。

            #Check for scenarios if(player == 'Finish'): goOn = False elif(player == computer): print("Tie!") elif(player == "Rock"): if(computer == "Paper"): print("You lose!", computer, "covers", player) computersPoint = computersPoint + 1 else: print("You win!", player, "smashes", computer) playersPoint = playersPoint + 1 elif(player == "Paper"): if(computer == "Scissors"): print("You lose!", computer, "cut", player) computersPoint = computersPoint + 1 else: print("You win!", player, "covers", computer) playersPoint = playersPoint + 1 elif(player == "Scissors"): if(computer == "Rock"): print("You lose...", computer, "smashes", player) computersPoint = computersPoint + 1 else: print("You win!", player, "cut", computer) playersPoint = playersPoint + 1 else: print("That's not a valid play. Check your spelling!")

            讓我們了解一下“if-elif-else”的工作原理。每個(gè)if和elif在括號(hào)中都有一個(gè)條件部分。程序?qū)⑦M(jìn)入條件為真的那個(gè)塊。一旦找到真實(shí)條件,它將忽略所有其他條件。 但是,當(dāng)所有條件都不成立時(shí)會(huì)發(fā)生什么? 執(zhí)行進(jìn)入else塊。再次觀察上面的代碼,else塊沒(méi)有條件。

            我們將逐步討論所有條件。

            1.第一個(gè)條件檢查用戶是否輸入了“Finish”。 如果此條件為true,則goOn變量的值將更改為false,程序?qū)⒔Y(jié)束。

            if(player == 'Finish'): goOn = False

            2.第二個(gè)條件檢查用戶和計(jì)算機(jī)的選擇是否相同。 在這種情況下,任何人都不會(huì)獲得得分。

            elif(player == computer): print("Tie!")

            3.接下來(lái)的三個(gè)條件根據(jù)游戲的基本概念起作用。 決定贏家,并相應(yīng)地獎(jiǎng)勵(lì)積分。 之前,我們用0初始化了兩個(gè)變量,computersPoint和playersPoint。 如果計(jì)算機(jī)獲勝,則computersPoint變量將增加1,如果用戶獲勝,playersPoint變量將增加1。

            elif(player == "Rock"): if(computer == "Paper"): print("You lose!", computer, "covers", player) computersPoint = computersPoint + 1 else: print("You win!", player, "smashes", computer) playersPoint = playersPoint + 1 elif(player == "Paper"): if(computer == "Scissors"): print("You lose!", computer, "cut", player) computersPoint = computersPoint + 1 else: print("You win!", player, "covers", computer) playersPoint = playersPoint + 1 elif(player == "Scissors"): if(computer == "Rock"): print("You lose...", computer, "smashes", player) computersPoint = computersPoint + 1 else: print("You win!", player, "cut", computer) playersPoint = playersPoint + 1

            4.最后是else塊。 沒(méi)有條件。 僅當(dāng)用戶輸入無(wú)效選項(xiàng)時(shí),它才會(huì)顯示一條消息。

            else: print("That's not a valid play. Check your spelling!")

            步驟8:允許游戲繼續(xù)在while循環(huán)結(jié)束時(shí),我們?cè)俅问褂胷andint函數(shù)為計(jì)算機(jī)分配選項(xiàng)。

            #Assigning a random option to computer computer = game[randint(0,2)] print('********Next Turn********')

            即使我們?cè)谟螒蜷_始時(shí)有類似的代碼行,也必須重復(fù)此操作。 請(qǐng)記住,計(jì)算機(jī)必須要做出選擇。 這就是為什么我們?cè)俅尉帉懘诵写a的原因。

            步驟9:顯示最終分?jǐn)?shù)當(dāng)用戶通過(guò)鍵入“完成”結(jié)束游戲時(shí),程序?qū)@示最終得分。 最終分?jǐn)?shù)存儲(chǔ)在我們之前使用的兩個(gè)變量中,computersPoint和playersPoint。

            #Printing final points print("********Final Points********") print("Player: ", playersPoint) print("Computer: ", computersPoint)剪刀石頭布完整代碼

            您需要完整的代碼,才能在Python中運(yùn)行“剪刀石頭布”游戲。 您可以將此代碼復(fù)制并粘貼到https://repl.it/languages/python3中,然后自己玩這個(gè)游戲!

            from random import randint #List of options game = ["Rock", "Paper", "Scissors"] #Assigning a random option to computer computer = game[randint(0,2)] #Keep count for points playersPoint = 0 computersPoint = 0 goOn = True #Loop goes on until goOn is false while(goOn): #Ask for user input player = input("Rock, Paper or Scissors? or enter Finish to end!\n") #Check for scenarios if(player == 'Finish'): goOn = False elif(player == computer): print("Tie!") elif(player == "Rock"): if(computer == "Paper"): print("You lose!", computer, "covers", player) computersPoint = computersPoint + 1 else: print("You win!", player, "smashes", computer) playersPoint = playersPoint + 1 elif(player == "Paper"): if(computer == "Scissors"): print("You lose!", computer, "cut", player) computersPoint = computersPoint + 1 else: print("You win!", player, "covers", computer) playersPoint = playersPoint + 1 elif(player == "Scissors"): if(computer == "Rock"): print("You lose...", computer, "smashes", player) computersPoint = computersPoint + 1 else: print("You win!", player, "cut", computer) playersPoint = playersPoint + 1 else: print("That's not a valid play. Check your spelling!") #Assigning a random option to computer computer = game[randint(0,2)] print('********Next Turn********') #Printing final points print("********Final Points********") print("Player: ", playersPoint) print("Computer: ", computersPoint)讓我們看看最終代碼的運(yùn)行結(jié)果!

            用戶可以輸入“ Rock”,“ Paper”或“ Scissors”進(jìn)行游戲,或輸入“ Finish”結(jié)束游戲。然后將值與計(jì)算機(jī)的選擇相匹配,并相應(yīng)地分配分?jǐn)?shù)。 游戲結(jié)束后,最終分?jǐn)?shù)將顯示在屏幕上。這就是我們可以使用python創(chuàng)建簡(jiǎn)單的石頭剪刀布游戲的方式。

            上一篇:母馬犬起名大全,起個(gè)好名字
            下一篇:夢(mèng)見抱著一條蛇是什么預(yù)兆,周公解夢(mèng)最后一件事看似不吉利
            相關(guān)文章

             發(fā)表評(píng)論

            暫時(shí)沒(méi)有評(píng)論,來(lái)?yè)屔嘲l(fā)吧~

            返回頂部小火箭
            亚洲熟妇无码乱子AV电影| 亚洲欧洲国产成人综合在线观看 | 亚洲欧洲无码AV电影在线观看| 亚洲成?v人片天堂网无码| 亚洲AV成人片无码网站| 亚洲国产精品99久久久久久| 亚洲日本VA中文字幕久久道具| 亚洲 欧洲 日韩 综合在线| 99亚偷拍自图区亚洲| 亚洲а∨天堂久久精品9966| 亚洲黄页网在线观看| 亚洲色大成网站www永久男同| 亚洲欧美成aⅴ人在线观看| 亚洲丶国产丶欧美一区二区三区 | 中文字幕久久亚洲一区| 国产亚洲av人片在线观看| 国产亚洲色视频在线| 亚洲愉拍99热成人精品热久久| 国产亚洲综合色就色| 亚洲成a人片在线观看无码专区| 亚洲爆乳精品无码一区二区三区| 亚洲AV综合色区无码一区爱AV| 亚洲免费视频在线观看| 亚洲综合激情另类小说区| 亚洲av无码专区在线| 亚洲中文字幕一二三四区| 亚洲heyzo专区无码综合| 亚洲成人国产精品| 亚洲中文字幕无码爆乳AV| 亚洲高清国产拍精品26U| 7777久久亚洲中文字幕蜜桃 | 亚洲精品中文字幕无码AV| 2020亚洲男人天堂精品| 亚洲成AV人片高潮喷水| 亚洲国产成人久久综合一区77| 国产亚洲精aa成人网站| 亚洲av成人无码久久精品 | 亚洲A丁香五香天堂网| 亚洲色大成网站WWW久久九九 | 亚洲AV无码专区在线电影成人| 亚洲国产激情一区二区三区|