炸彈數字(終極密碼)

編輯歷史

時間 作者 版本
2017-07-19 13:37 – 13:37 (unknown) r0 – r1
顯示 diff
+ 炸彈數字(終極密碼)
+ 炸彈數字(終極密碼)
+ 終極密碼就是選定一個範圍的數字,例如1~100,
+ 由裁判選定其中一個數字,讓其餘的人猜數字
+ (當然除料裁判外其他玩家不知道答案),
+ 如果沒猜中的話裁判要依猜出的數字將範圍縮小,
+ 讓下一個輪到的人繼續猜,直到猜中數字為止,
+ 終極密碼1-100 1到100
+ 例如終極密碼是77,
+
+ 一般會切中間的數字
+ 第一個人猜50,則裁判要說50到100,
+ 第二個人則要猜50~100的數字,譬如88,
+ 裁判則說50~88,50到88,
+ 猜到的話,裁判就可以公佈答案,
+ 看是要給予獎勵或是懲罰
+ 遊戲網址:http://ftp.phjh.tc.edu.tw/~klychen/R esearch/FinalNumber/ChooseNum.php
+ 用四位數七段顯示器 麵包板 樹莓派 呈現
+ *
+ *import RPi.GPIO as GPIO
+ *import time
+ *import random
+ *import multiprocessing
+ *
+ *GPIO.setmode(GPIO.BCM)
+ *GPIO.setwarnings(False)
+ *
+ *segments = (10, 9, 11, 5, 6, 13, 19, 26)
+ *led =(7)
+ *for segment in segments:
+ * GPIO.setup(segment, GPIO.OUT)
+ * GPIO.output(segment, 0)
+ *GPIO.setup(led , GPIO.OUT)
+ *GPIO.output(led , False)
+ *digits = (3, 4, 17, 27)
+ *for digit in digits:
+ * GPIO.setup(digit, GPIO.OUT)
+ * GPIO.output(digit, 1)
+ *
+ *dictionary = {' ':(0,0,0,0,0,0,0),
+ * '0':(1,1,1,1,1,1,0),
+ * '1':(0,1,1,0,0,0,0),
+ * '2':(1,1,0,1,1,0,1),
+ * '3':(1,1,1,1,0,0,1),
+ * '4':(0,1,1,0,0,1,1),
+ * '5':(1,0,1,1,0,1,1),
+ * '6':(1,0,1,1,1,1,1),
+ * '7':(1,1,1,0,0,0,0),
+ * '8':(1,1,1,1,1,1,1),
+ * '9':(1,1,1,1,0,1,1),
+ * 'Y':(0,1,1,1,0,1,1),
+ * 'O':(1,1,1,1,1,1,0),
+ * 'P':(1,1,0,0,1,1,1),
+ * 'L':(0,0,0,1,1,1,0),
+ * 'E':(1,0,0,1,1,1,1),
+ * 'S':(1,0,1,1,0,1,1),
+ * '-':(0,0,0,0,0,0,1)}
+ *
+ *def display(string,s):
+ * loop=True
+ * if s:loop=s*1000
+ * while len(string)<4:
+ * string='0'+string
+ * n=0
+ * while loop:
+ * for digit in digits:
+ * GPIO.output(digit, 1)
+ * GPIO.output(digits[n], 0)
+ *
+ * i = 0
+ * for on_or_off in dictionary[string[n]]:
+ * if n==1:
+ * GPIO.output(segments[i], on_or_off)
+ * GPIO.output(segments[7], True)
+ * else:
+ * GPIO.output(segments[i], on_or_off)
+ * GPIO.output(segments[7], False)
+ * i += 1
+ * time.sleep(0.001)
+ * n += 1
+ * n %= 4
+ * if s:loop-=1
+ *
+ *a=0
+ *b=99
+ *boom_num=random.randint(1,98)
+ *
+ *while True:
+ * p = multiprocessing.Process(target=display, args=(str(b+a*100),0))
+ * p.start()
+ *
+ * enter_int = input('Enter a number %s ~ %s : '%(a,b))
+ *
+ * if enter_int<= a or enter_int>= b:
+ * print('ERROR!!!! please enter again~')
+ * p.terminate()
+ * GPIO.output(led,True)
+ * display('----',1)
+ * GPIO.output(led , False)
+ * continue
+ *
+ * if enter_int == boom_num :
+ * print('BOOM !!!! you lose~')
+ * GPIO.output(led,True)
+ * p.terminate()
+ * display('LOSE',5)
+ * GPIO.output(led , False)
+ * break
+ * if enter_int < boom_num :
+ * p.terminate()
+ * a = int(enter_int)
+ * continue
+ * if enter_int > boom_num :
+ * p.terminate()
+ * b = int(enter_int)
+ * continue
+ *
+ *
+ *
+ *GPIO.cleanup()
+ *
+ 遊戲試玩(如下) :
+ Enter a number 0 ~ 99 : 10
+ Enter a number 10 ~ 99 : 20
+ Enter a number 20 ~ 99 : 50
+ Enter a number 50 ~ 99 : 60
+ Enter a number 50 ~ 60 : 45
+ ERROR!!!! please enter again~
+ Enter a number 50 ~ 60 : 55
+ Enter a number 55 ~ 60 : 57
+ Enter a number 57 ~ 60 : 58
+ Enter a number 58 ~ 60 : 59
+ BOOM !!!! you lose~