大前天(Day 9)第一次完成了顯示點數六點與下方點數對應所要執行的動作後,前天(Day 10)發現點數和動作可以顯示了,但是兩個項目對不起來。
經友人指點,發現我的程式碼真的是非常混亂,一點都不工整。雖然我知道自己的程式碼不工整,但是我也不知道怎樣才是工整的程式碼。因此,我決定靜下心來、砍掉重練,一行一行檢視我的程式碼。
我覺得這個過程很重要,因為這就是一個重整思路的過程。於是,我改成了下方的樣子。
from random import randint
class Status:
WON = 6
CONTINUE = [1, 2, 3, 4, 5]
def dice():
return randint(1, 6)
if dice()==1:
result='唱歌'
print('唱歌')
elif dice()==2:
result = '蘿蔔蹲'
print('蘿蔔蹲')
elif dice()==3:
result='青蛙跳'
print('青蛙跳')
elif dice()==4:
result='喝苦茶'
print('喝苦茶')
elif dice()==5:
result='仰臥起坐'
print('仰臥起坐')
else:
dice()==6
result='當我藍/鋁朋友'
print('當我藍/鋁朋友')
def initialRoll(firstPoint):
if firstPoint in [6]:
print("這肯定是命中註定誒!!!" )
elif firstPoint in [1, 2, 3, 4, 5]:
return Status.CONTINUE
print("再丟一次骰子,上帝會指引你的)光芒")
然後,又到了死線了。
先發文,後補齊吧。
順便先說,中秋節快樂!!
感謝有看我發這麼廢的文的人,我真的非常感謝你們,雖然文章看起來真的很沒用,但是對我自己是有很多幫助。因為我都是一邊研究一邊寫文,所以總是壓死線。
我寫文是很快,但是研究花了非常多時間,很開心自己寫文的時間很短,學習的時間比較多。這應該也是這個比賽成立的初衷之一吧,如果哪天我變得很會寫,但是研究時間變短了,我覺得應該會有點難過,希望自己能一直維持下去。
好的,感性的話不說了,我要來去補文了。
中秋節有活動嗎?
我最後整理的版本是下面這樣:
from random import randint
def dice():
return randint(1, 6)
print ('玩家搖出了[%d]點' % dice())
if dice()==1:
result='唱歌'
elif dice()==2:
result = '蘿蔔蹲'
elif dice()==3:
result='青蛙跳'
elif dice()==4:
result='喝苦茶'
elif dice()==5:
result='仰臥起坐'
else:
dice()==6
result='當我藍/鋁朋友'
print (result)
class Status:
WON = 6
CONTINUE = [1, 2, 3, 4, 5]
def initialRoll(firstPoint):
if firstPoint in [6]:
print("這肯定是命中註定誒!!!" )
else:
print("再丟一次骰子,上帝會指引你的)光芒")
return Status.CONINUE
我自己憑感覺覺得似乎比較整齊一點點(?
雖然點數和執行動作仍然對不上,但是我覺得似乎有發現問題點了。
也就是說,變成兩組骰子遊戲,點數歸點數,動作歸動作。總覺得應該要把它變成像一個模組之類的,那專有名詞是什麼我不知道,總之就是如果點數是一個方塊,執行動作是另一個方塊,照理來說應該要兩個合在一起變成一個方塊,但是現在有兩個,所以各自為政,無法正確執行。
def dice(): return randint(1, 6) print ('玩家搖出了[%d]點' % dice())
這行出了問題總覺得這行應該不是這樣寫,應該有其他寫法,是定義下錯了嗎?還是%d那裡出了問題。
我覺得應該要朝向下面幾個關鍵字去研究 string 、 while 、for...in range、%s。
真想知道大家都是怎麼學程式的,是一步一步跟著老師的指令操作一次,還是像我這樣異想天開,先想說要做什麼,然後再想辦法達成,或是其他學習方式。因為覺得自己似乎是越級打怪!?)哭笑不得
中秋月圓跟骰子還沒有緣QQ
明天再戰
收工
def dice():
return randint(1, 6)
是每次呼叫到它就會給你一個隨機啦!
應該要把
if dice()==1: # <- 重複執行了randint
result='唱歌'
elif dice()==2: # <- 重複執行了randint
result = '蘿蔔蹲'
elif dice()==3: # <- 重複執行了randint
result='青蛙跳'
elif dice()==4: # <- 重複執行了randint
result='喝苦茶'
elif dice()==5: # <- 重複執行了randint
result='仰臥起坐'
else:
dice()==6 # <- 沒有意義,可以改成print(dice()==6) 看看長什麼樣子
result='當我藍/鋁朋友'
改成用個變數先存起來一次隨機的值
x = dice()
if x==1:
result='唱歌'
elif x==2:
result = '蘿蔔蹲'
elif x==3:
result='青蛙跳'
elif x==4:
result='喝苦茶'
elif x==5:
result='仰臥起坐'
elif x==6:
result='當我藍/鋁朋友'
else: # <- 這個不用給條件,也可有可無
result = '不太可能會走到這邊,除非硬體計算出錯'
之類的比較合理,不然就是賭運氣而已XD
幫你算算你原本可以走到最後面的機率 : 5/6 * 5/6 * 5/6 * 5/6 * 5/6 = 40.2%
囧 我還真沒有想到會有數學式子出現...
我原本真的想用運氣誒,就是隨機跳出來,然後研究怎麼讓他在我想要的數字停下來@@
你這個方法我來思考一下,畢竟會算出來感覺就不好玩了)笑哭
機率就是運氣了啦XD 本來就是隨機的,我的寫法到最後面的機率是1/6約是16.67%啦!
你的寫法只是會在每次判斷又多隨機一次XD 所以你才會覺得怎麼print的數字跟實際判斷的數字不一樣 哈哈哈