基于Python實現(xiàn)24點游戲的示例代碼
1.前言
24數(shù)大家之前玩過沒有?
規(guī)則:一副撲克牌抽走大王,小王,K,Q,J(有的規(guī)則里面會抽走10,本文一律不抽走),之后在牌堆里隨機抽取四張牌,將這四張牌加減乘除得到24。
如果再高級一點,還會有根號、階乘、冪之類的算法,別問為啥不能冪運算,問就是懶,自己看思路自己實現(xiàn)去(bushi。
知識點:隨機數(shù),列表,嵌套判斷,循環(huán),死循環(huán),都是新手接觸的東西。
由于不能進行像根號,階乘高級的運算,改版之后完全可以了。
話不多說,上思路
2.思路
1.隨機生成四個1到10內(nèi)的數(shù),儲存到列表里作為要運算的數(shù)
2.詢問要操作的兩個數(shù)及運算方法
3.根據(jù)結(jié)果進行運算
4.列表改變數(shù)值
5.在前面添加第一個數(shù)單獨運算的功能并詢問階乘或者根號
6.將第一個數(shù)根據(jù)結(jié)果進行運算
7.列表改變數(shù)值
8.在詢問運算方法時添加重新開始選項,并完善功能
9.完善程序
3.代碼
import random#隨機數(shù)模塊 defen=0#變量defen為0 print("24數(shù)游戲,不知道規(guī)則請先查詢,得分達到5獲勝") while defen < 5:#得分到達5獲勝 a=random.randrange(1,10) b=random.randrange(1,10) c=random.randrange(1,10) d=random.randrange(1,10)#變量abcd均為1到10的隨機數(shù) e=[a,b,c,d]#創(chuàng)建列表e while 1 == 1:#死循環(huán) print(e,"目前數(shù)字") f=int(input("請輸入要調(diào)用的第一個數(shù)字:"))#輸入的第一個數(shù)字為f if e.count(f) < 1:#f如果不在列表里 print("你輸入的數(shù)字不在里面,請重新輸入") continue#重新輸入 g=int(input("請輸入要調(diào)用的第二個數(shù)字,若將第一個數(shù)字單獨進行運算請輸入11:"))#輸入的第二個數(shù)字為g并詢問是否要將f單獨運算 if e.count(g) < 1:#g如果不在列表里 if g != 11:#如果g不是11 print("你輸入的數(shù)字不在里面,請重新輸入") continue#重新輸入 else:#如果g是11 l=int(input("要將第一個數(shù)字怎么運算?根號輸入1,階乘輸入2:")) if l == 1:#要進行根號運算 #檢測f是不是1,4,9,是則運算,不是則重新開始 if f == 1:#如果f是1 print("根號1等于1") continue#運算結(jié)束 elif f == 4:#如果f是4 print("根號4等于2") e.remove(4)#刪除4 e.append(2)#添加2 continue#運算結(jié)束 elif f == 9:#如果f是9 print("根號9等于3") e.remove(9)#刪除9 e.append(3)#添加3 continue#運算結(jié)束 else:#f不是1,4,9,根號結(jié)果不是整數(shù) print(f,"根號的結(jié)果不是整數(shù),錯誤!") continue#重新輸入 if l == 2:#要進行階乘運算 n=e.index(f)#由于后面會改變f,提前用n儲存他的位置 m=f#階乘運算 while f > 1: m=m*(f-1) f=f-1 e.pop(n)#刪除該數(shù)字所在位置 e.append(m)#添加階乘后的數(shù)字 print("已將",m,"添加") continue#重新輸入 if l != 1: if l != 2:#如果l不是1也不是2 print("錯誤,重新計算") h=int(input("要把它們怎么運算?加輸入1,減輸入2,乘輸入3,除輸入4,重新計算輸入5:"))#加減乘除運算 if h == 1: i=f+g#兩數(shù)相加 if h == 2: i=f-g#兩數(shù)相減 if h == 3: i=f*g#兩數(shù)相乘 if h == 4: if f%g == 0:#g是否可以被整除 i=f//g#兩數(shù)相除 else:#如果不能被整除 print("兩個數(shù)不能整除,請重新輸入") continue#重新輸入 if h == 5: print("重新計算") e=[a,b,c,d]#重新定義列表e,重新開始游戲 continue e.remove(f)#刪除列表里的f e.remove(g)#刪除列表里的g e.append(i)#添加兩數(shù)的計算結(jié)果 if len(e) == 1:#如果列表長度為1 if e.count(24) == 1:#且數(shù)字24出現(xiàn)的次數(shù)為1 defen=defen+1#得分加一 j=1#獲勝 break#退出死循環(huán) else:#數(shù)字24沒有出現(xiàn) j=0#失敗 break#退出死循環(huán) if j == 1:#如果獲勝 print("獲勝!您目前的得分為",defen) print("開啟新的一局") else:#如果失敗 print("失??!你目前的得分為",defen) print("開啟新的一局") print("得分已經(jīng)達到5,您獲勝了!")#得分達到5,游戲獲勝
到此這篇關(guān)于基于Python實現(xiàn)24點游戲的示例代碼的文章就介紹到這了,更多相關(guān)Python 24點游戲內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
對pandas中時間窗函數(shù)rolling的使用詳解
今天小編就為大家分享一篇對pandas中時間窗函數(shù)rolling的使用詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-11-11paramiko使用tail實時獲取服務(wù)器的日志輸出詳解
這篇文章主要給大家介紹了關(guān)于paramiko使用tail實時獲取服務(wù)器的日志輸出的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12python訪問mysql數(shù)據(jù)庫的實現(xiàn)方法(2則示例)
這篇文章主要介紹了python訪問mysql數(shù)據(jù)庫的實現(xiàn)方法,結(jié)合實例形式分析了兩種Python操作MySQL數(shù)據(jù)庫的相關(guān)技巧,需要的朋友可以參考下2016-01-01pandas分組聚合(agg,transform,apply)
在SQL中我們經(jīng)常使用 GROUP BY 將某個字段,按不同的取值進行分組, 在pandas中也有g(shù)roupby函數(shù),本文主要介紹了pandas分組聚合(agg,transform,apply),具有一定的參考價值,感興趣的可以了解一下2024-04-04python框架flask入門之環(huán)境搭建及開啟調(diào)試
這篇文章主要介紹了python框架flask入門環(huán)境搭建及開啟調(diào)試的步驟設(shè)置,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-06-06