




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
實驗流程及實驗效果(1)定義四個全局變量(2)定義一個列表存放這四個變量
(3)定義游戲答案中的運(yùn)算符號(4)定義便用戶更改四位數(shù)字重新開始游戲的函數(shù)
(5)打印出游戲的規(guī)則:
“str1="游戲說明:\n在這個游戲中,系統(tǒng)隨機(jī)發(fā)四張牌,玩家需運(yùn)用加減乘除四則運(yùn)算嘗試構(gòu)建表達(dá)式,使得運(yùn)算結(jié)果為24,每個數(shù)字均需用到,點(diǎn)擊“開始”發(fā)牌,點(diǎn)擊“完成”完成游戲,點(diǎn)擊“提示答案”查看一種答案,點(diǎn)擊“重新開始”重新發(fā)牌"”(6)定義顯示框并定義其屬性(7)定義清空函數(shù)表達(dá)式
(8)定義隨機(jī)獲取四個數(shù)的函數(shù)(9)定義將新字符添加進(jìn)表達(dá)式的函數(shù)
(10)定義制造隨機(jī)運(yùn)算法則的函數(shù),為下面函數(shù)做準(zhǔn)備(11)排除分母為0的情況,輸出100,使該式的值不可能為24
(12)定義函數(shù)計算對于一個排好序的列表中的四個數(shù)是否有可能出現(xiàn)24,為下面hard函數(shù)判斷可能性做準(zhǔn)備(13)根據(jù)不同方式進(jìn)行運(yùn)算,符合條件則將對應(yīng)的判斷標(biāo)志改為1,否則記為0(14)定義函數(shù)輸出供用戶參考的正確答案(15)將所有可能的方案列出(16)定義一個列表存放對應(yīng)的數(shù)字排序是否可行的標(biāo)志(17)定義變量用于判斷確認(rèn)是否有解決方案(18)繪制窗口(19)給窗口命名(20)定義表達(dá)式為交互式對象(21)定義顯示框并定義其屬性(22)設(shè)置窗口背景顏色、長、寬(23)將Label的內(nèi)容與display關(guān)聯(lián)(24)布置按鈕(25)給出AC鍵大小、位置以及觸發(fā)的操作
(26)給出(鍵大小、位置以及觸發(fā)的操作(27)給出)鍵大小、位置以及觸發(fā)的操作(28)給出-鍵大小、位置以及觸發(fā)的操作(29)完成'(30)提示答案重新開始
顯示界面2.代碼#-*-coding:utf-8-*-
#pleaseinputyourcodehere.
fromtkinterimport*
fromrandomimportrandint
num1=randint(1,10)
num2=randint(1,10)
num3=randint(1,10)
num4=randint(1,10)
list=[]
list.append(num1)
list.append(num2)
list.append(num3)
list.append(num4)
operator=[]
foriinrange(0,3):
operator.append('no')
defchange():
globalnum1
globalnum2
globalnum3
globalnum3
num1=randint(1,10)
num2=randint(1,10)
num3=randint(1,10)
num4=randint(1,10)
globallist
list[0]=num1
list[1]=num2
list[2]=num3
list[3]=num4
get()
str1="游戲說明:\n在這個游戲中,系統(tǒng)隨機(jī)發(fā)四張牌,玩家需運(yùn)用加減乘除四則運(yùn)算嘗試構(gòu)建表達(dá)式,使得運(yùn)算結(jié)果為24,每個數(shù)字均需用到,點(diǎn)擊“開始”發(fā)牌,點(diǎn)擊“完成”完成游戲,點(diǎn)擊“提示答案”查看一種答案,點(diǎn)擊“重新開始”重新發(fā)牌"
root1=Tk()
root1.title("游戲說明")
frametext=Frame(root1,width=400,height=200,bg='green')
pagate(False)
frametext.pack(side=TOP)
t=Text(frametext)
t.pack(expand='yes',fill='both',pady=4)
t.insert(INSERT,str1)
defclear():
display.set("")
defget():
display.set(list)
defnExp(num):
exp=display.get()+num
display.set(exp)
deffunc(a,b,op,s):
if(op==1):
operator[s]='+'
return(a+b)
if(op==2):
operator[s]='-'
return(a-b)
if(op==3):
operator[s]='*'
return(a*b)
if(op==4):
#排除分母為0的情況,輸出100,使該式的值不可能為24
if(b!=0):
operator[s]='/'
return(a/b)
else:return100
defcalculate(list):
get=0
k=1
while(get==0andk<=4):
i=1
while(get==0andi<=4):
j=1
while(get==0andj<=4):
if(func(func(list[0],list[1],i,0),func(list[2],list[3],j,2),k,1)==24):
get=1
return1
j=j+1
i=i+1
k=k+1
if(get==0):return0
defhard():
mylist=[]
ele=[]
elep=[]
fori1inrange(0,4):
fori2inrange(0,4):
fori3inrange(0,4):
fori4inrange(0,4):
ele.append([i1,i2,i3,i4])
foriinrange(0,256):
forminele[i]:
forninele[i]:
if(m==n):elep.append(0)
else:elep.append(1)
if(elep[i]!=0):
mylist.append([list[ele[i][0]],list[ele[i][1]],list[ele[i][2]],list[ele[i][3]]])
possibility=[]
solution=0
i=0
while(i<256andsolution==0):
possibility.append('no')
possibility[i]=calculate(mylist[i])
if(possibility[i]==1):
display.set("提示答案:("+str(mylist[i][0])+str(operator[0])+str(mylist[i][1])+")"+operator[1]+"("+str(mylist[i][2])+operator[2]+str(mylist[i][3])+")")
solution=1
i=i+1
if(solution!=1):
display.set("無解")
defeasy():
exp=display.get()
res=eval(exp)
ifres==24:
foriinrange(len(list)):
ifstr(list[i])inexp:
display.set("True")
else:
display.set("UnvalidValue")
else:
display.set("False")
root=Tk()
root.title('24點(diǎn)游戲')
display=StringVar()
LabelA=Label(root,relief='sunken',borderwidth=4,anchor=SE)
LabelA.configure(background='white',height=4,width=50)
LabelA['textvariable']=displayLabelA.grid(row=0,column=0,columnspan=4)
Button(root,text='AC',width=10,height=3,command=clear).grid(row=1,rowspan=2)
Button(root,text='(',width=10,command=lambda:nExp('(')).grid(row=1,column=1)
Button(root,text=')',width=10,command=lambda:nExp(')')).grid(row=1,column=2)
Button(root,text='-',width=10,height=3,command=lambda:nExp('-')).grid(row=1,rowspan=2,column=3)
Button(root,text='/',width=10,command=lambda:nExp('/')).grid(row=2,column=1)
Button(root,text='*',width=10,command=lambda:nExp('*')).grid(row=2,column=2)
Button(root,text='7',width=10,command=lambda:nExp('7')).grid(row=3)
Button(root,text='8',width=10,command=lambda:nExp('8')).grid(row=3,column=1)
Button(root,text='9',width=10,command=lambda:nExp('9')).grid(row=3,column=2)
Button(root,text='+',width=10,height=3,command=lambda:nExp('+')).grid(row=3,rowspan=2,column=3)
Button(root,text='4',width=10,command=lambda:nExp('4')).grid(row=4,column=0)
Button(root,text='5',width=10,command=lambda:nExp('5')).grid(row=4,column=1)
Button(root,text='6',width=10,command=lambda:nExp('6')).grid(row=4,column=2)
Button(root,text='1',width=10,command=lambda:nExp('1')).grid(row=5,column=0)
Button(root,text='2',width=10,command=lambda:nExp('2')).grid(row=5,column=1)
Button(root,text='3',width=10,command=lambda:nExp('3')).grid(row=5,column=2)
Button(root,text='0',width=10,command=lambda:nExp('0')).grid(row=6,column=0,columnspan=2)
Button(root,text='.',width=10,command=lambda:nExp('.')).grid(row=6,column=2)
Button(root,text=
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年元宇宙社交平臺虛擬社交游戲化體驗優(yōu)化與發(fā)展報告
- 2025年醫(yī)院信息化建設(shè)初步設(shè)計評估關(guān)注醫(yī)院信息互聯(lián)互通報告
- 工業(yè)互聯(lián)網(wǎng)平臺網(wǎng)絡(luò)安全態(tài)勢感知技術(shù)安全監(jiān)測與預(yù)警2025年實踐報告
- 2025年醫(yī)藥市場風(fēng)險預(yù)警:仿制藥一致性評價政策影響分析報告001
- 2025年城市生活垃圾分類處理公眾參與行為分析及長效機(jī)制研究報告001
- 綠色建筑材料市場推廣策略與政策支持下的綠色金融產(chǎn)品創(chuàng)新報告
- 民辦教育機(jī)構(gòu)合規(guī)運(yùn)營與品牌形象塑造策略2025年實戰(zhàn)案例研究報告
- 安全與生活試題及答案
- 數(shù)字藝術(shù)作品創(chuàng)作與版權(quán)保護(hù)市場調(diào)研報告
- 安全環(huán)保知識試題及答案
- 2025年育嬰師職業(yè)資格考試試題及答案
- 北京市八十中學(xué)2025屆八年級英語第二學(xué)期期中經(jīng)典試題含答案
- 2024年 金澤鎮(zhèn)專職村務(wù)工作者招錄考試真題試題含答案
- 2025年內(nèi)蒙古自治區(qū)包頭市東河區(qū)第二中學(xué)英語八年級第二學(xué)期期末復(fù)習(xí)檢測模擬試題含答案
- 2025年四川省達(dá)州市中考英語真題(原卷版)
- 2025年高考真題-物理(廣東卷) 含答案
- 2025-2030中國伊利石行業(yè)運(yùn)營效益及競爭策略展望分析報告
- 江西省上饒市2022-2023學(xué)年高一下冊數(shù)學(xué)期末試卷(含答案)
- 2024年證券市場基本法律法規(guī)真題及答案
- 2025年第十屆“學(xué)憲法、講憲法”網(wǎng)絡(luò)知識競賽題庫(含答案)
- 地理:(網(wǎng)絡(luò)參考版)黑吉遼蒙2025年高考真題地理試卷含答案
評論
0/150
提交評論