本篇開始:
- 我的開發環境是win11
- python是3.10.7版本
- kivy我設定在2.1.0版本
- 編碼的工具是Visual Studio Code(VS Code)
以我實際開發的APP為例,
我想做的是可以訓練基本加(減)法的心算工具。
命名app叫 「CountInMind」。
【本篇說明】繼續app第4頁,要在類別Forthscreen顯示題號後,接著從1~9數字中隨機出現數字,可以隨3種不同模式(加法、減法、加減法)改變加減數字
1.加入隨機(加減法)數字函式,並顯示在TextInput中【這部分跟上一篇一樣,看過的可以直接跳到第2點】
以下kivy程式碼(以下簡稱.kv):
Button:
text: '開始出題'
font_name: "./font/TW-Kai-98_1.ttf"
font_size: 25
color: 'lightyellow'
size_hint: 0.2, 0.15
background_color: root.other_btn_bgcolor
on_press: root.bold_num()
▲說明:更改on_press觸發功能,按下"開始出題"鍵後,改為呼叫類別bold_num函式

2.在python檔案class Forthscreen(Screen)加入以下這段內容:這次要再加入加(減)法混合的部分
以下python程式碼(以下簡稱.py):
# 隨機(加減)數字函式
def bold_num(self):
self.pre_qus = self.ids.textinput.text
self.question = random.randint(1,9)
# 避免重複、加法模式
if Firstscreen.mode == "加法":
if self.pre_qus == str(self.question) :
self.question = random.randint(1,9)
if self.pre_qus == str(self.question) :
self.question = random.randint(1,9)
self.ids.textinput.text = str(self.question)
print(self.question)
self.plus_sum += self.question
elif Firstscreen.mode == "減法【一開始為30】":
if self.pre_qus == str(f'-{self.question}'):
self.question = random.randint(1,9)
if self.pre_qus == str(f'-{self.question}'):
self.question = random.randint(1,9)
self.ids.textinput.text = str(f'-{self.question}')
print(f'-{self.question}')
self.minus_sum -= self.question # 又可寫成 self.minus_sum = self.minus_sum - self.question
#以下為本篇新增
elif Firstscreen.mode == "加(減)法":
if self.pre_qus == str(f'{self.sign_random}{self.question}'):
self.question = random.randint(1,9)
if self.pre_qus == str(f'{self.sign_random}{self.question}'):
self.question = random.randint(1,9)
self.ids.textinput.text = str(f'{self.sign_random}{self.question}')
print(f'{self.sign_random}{self.question}')
if self.sign_random == '+':
self.mix_sum += self.question
else: self.mix_sum -= self.question
★★★本篇新增說明:
1.變數 self.sign_list作為一個列表,負責存放正負符號
2.變數 self.sign_random為一個隨機符號,從上述列表隨機選取
3.判斷句,點選"加(減)法"模式,如果前次數字 self.pre_qus等於本次數字 str(f'{self.sign_random}{self.question}'),則本次數字重新隨機選取1次
4.如果還是等於前次數字,再執行1次重新選取數字【以上兩點,為了避免數字重複,因為在 TextInput會不容易察覺】
5.將 f'{self.sign_random}{self.question}'轉成字串,並顯示在TextInput中
6.我想在終端機確認,所以列印 f'{self.sign_random}{self.question}'
7.再加一個判斷句,如果變數 self.sign_random為 '+',則執行加法總合
8.如果為 '-',則執行減法總合9.這邊有個變數 self.mix_sum(這個變數下面說明)

3.需導入所需模組【這部分跟上一篇一樣,看過的可以直接跳到第4點】
以下python程式碼(以下簡稱.py):
import random

4.在class Forthscreen(Screen)中,創建類別變數(mix_sum)
以下python程式碼(以下簡稱.py):
mix_sum = 0 # 創建屬性: 加減法總和
▲說明:為了使每次重來,加減法初始值總和為0

5.執行python檔案(記得:只點選"加(減)法"模式)

▲說明:按下"開始出題",會出現隨機數字"+4"

▲說明:隨機數字為"-2"

▲說明:隨機數字為"-1",依此類推~
本篇小結
只要按下"開始出題"鍵,就能一直生成"帶正或負號"數字,而且正負符號、數字均不會重複,至於數字何時會結束,就仰賴先前所設定變數 degree,後面篇章再來分享。
為精簡篇幅,本篇所使用完整(.py)(.kv)程式碼,請參考第9篇以後的內容。
本篇結束:
在自學路上遇到困難是很正常的事,只要堅持到底,相信就會有所成果,期勉大家一同努力。