This series is about a certain ** math teaching tool "Jamaica" </ font> ** It is a record of struggling to achieve the following objectives.
** ▶ ︎ </ font> 1. ** *** You will be able to run the "Jamaica" game with a program that uses image display. *** *** ** 2. ** *** Create a program to search and present the existence and contents of solutions for any combination of dice in "Jamaica". *** ***
Last time, I dealt with the following contents.
*** §1. Reproduce "Jamaica" </ font> *** *** Task.001 Display "Dice roll" as an image *** *** Task.002 "Display the dice roll image according to a random number" ***
This will randomly roll the dice, It is now possible to display the dice roll images that correspond to the rolls side by side.
** _____ [Reference article] _____ ** [^ ref001] Recollection | Let's reproduce the math teaching tool "Jamaica" ❗️'s previous article (vol.01)
>Results of 7 dice[6 5 1 4 2 4 3]
■ Summarize the realistic movement of rolling dice in Jamaica by function definition. ➡︎ In order to play Jamaica as a game, it is better to be able to execute it with simple code. ➡︎ On the other hand, the code for displaying the previous Jamaican dice roll seemed to be long. ➡︎ Simplify by defining the following functions according to the Python function definition grammar.
A function that specifies the drive's fig file storage location: figplace()
Function to import required library: libimports()
Np the roll of 7 dice.Function to output in array format: jmc_diceroll()
Function to display Jamaican dice roll result as an image: jmc_display()
** _____ [Reference article] _____ ** [^ ref002] Task003 | Define and call a function in Python (def, return) ➡︎ I referred to the function definition method and the output of the return value.
task003_jmcfunctions1
###A function that returns a character string that specifies the location where the image file required for dice roll display is saved.
def figplace():
wheredrive = '/content/drive/My Drive/Mathematics/MathProgramming/MathPro-Jamaica/'
wherefigs = wheredrive + 'Jamaica-figs/'
return wherefigs
###Function for importing necessary libraries frequently (no return value)
def libimports():
from google.colab import drive
drive.mount('/content/drive',force_remount=False) #Get a mount to access Google Drive files on Google Colabatory (set the second argument to True to force a mount again)
import matplotlib
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
import numpy as np
###A function that outputs the results of 7 random dice, multiplies the result of the 6th dice by 10, and returns the dice result using Jamaica.
def jmc_diceroll(printOption):
jmcDice = np.random.randint(1,7,7) #Np randomly generated 7 random variables with a value between 1 and 7.array(1*7 row vector)To output
jmcDice[5] = jmcDice[5]*10 #Multiply the number of the 6th 2-digit black dice by 10 to get the Jamaican dice result.
if printOption == True:
print('Jamaican Dice Roll Results:', jmcDice) #When printOption is True, the result of dice roll is output.
return jmcDice
###A function that displays the Jamaican dice result as an image with the ratio of the image storage location, the dice roll result, and the size of the displayed image as an argument (no return value)
def jmc_display(figPlace,jmcDice,sizeRatio): #1:Image storage location,2:Dice result,3:Ratio of image size to default
row = 1 #Number of rows in the frame matrix to display the image
col = jmcDice.shape[0] #Number of columns in the frame matrix to display the image
fsizeDefault = 15 #Default value for each image size
fsize = round(fsizeDefault * sizeRatio) #Display image size=Default value*Ratio of image size to default
plt.figure(figsize=(fsize,fsize)) #Specifying parameters to adjust the size of each image
for index in range(row * col):
plt.subplot(row, col, index+1)
if index < 5: #Index is 0 to 4, that is, the 1st to 5th dice are white dice and image output
imgname = 'dice-w-' + str(jmcDice[index]) + '.png'
whereimg = figPlace + imgname
img = mpimg.imread(whereimg)
imgplot = plt.imshow(img)
plt.axis('off')
elif index < 7: #index is from 5 to 6, that is, 6,The 7th dice is a black dice for image output
imgname = 'dice-b-' + str(jmcDice[index]) + '.png'
whereimg = figPlace + imgname
img = mpimg.imread(whereimg)
imgplot = plt.imshow(img)
plt.axis('off')
else:
continue
task003_jmcdisplay
### function trial START ###
libimports()
figPlace = figplace()
jmcDice = jmc_diceroll(printOption=True)
jmc_display(figPlace, jmcDice, sizeRatio=1.4)
### function trial END ###
> Drive already mounted at /content/drive; to attempt to forcibly remount, call drive.mount("/content/drive", force_remount=True).
>Jamaican Dice Roll Results:[ 1 5 6 5 5 30 2]
This time, I mainly described how to define a function in Python and a memorandum of code that simply displays the result of dice roll in Jamaica.
Next time, finally *** Definition of solution search function </ font> based on "Jamaica" </ font> dice roll results *** Step into.
The title is ** vol.03 "Aiming for a solution in Jamaica-Round 1-" **.
■ *** This is a general product that is also sold on mail-order sites such as Amazon and Yahoo! Shopping. *** *** ➡︎ Click here for the Amazon sales page (https://www.amazon.co.jp/dp/4902756161/ref=cm_sw_r_tw_dp_U_x_XrEPEbCJ5VRST). ➡︎ Please refer to the figure below for the image (quoted from the above page)
■ *** There are two types of dice, white and black, and 5 and 2 dice are included, respectively. *** *** ➡︎ A white dice x 5 and a black dice x 1 are attached to the ring part, and a black dice x 1 is attached to the center part.
color/ Color | quantity/ amount | Numbers listed/ Numbers |
---|---|---|
White/ white | 5 pieces/ 5 dice | 1, 2, 3, 4, 5, 6 |
black/ black | 1 piece/ 1 dice | 1, 2, 3, 4, 5, 6 |
black/ black | 1 piece/ 1 dice | 10, 20, 30, 40, 50, 60 |
For example, if the white dice roll is (1,2,3,5,5) and the black dice roll is (10,6), You can add all the rolls of the white dice to create the equation 1 + 2 + 3 + 5 + 5 = 10 + 6.
■ *** White dice x 5 numbers can only be used once each. *** *** ➡︎ For example, if the white dice roll is (2,4,5,3,3), you can use it for calculation. 2 is 1 time, 3 is 2 times, 4 is 1 time, 5 is 1 time. Do not use any more. (You can't use 2 twice or 3 three times.) ➡︎ Of course, ** "Do not use the specified number of times" is also a law **. (In the above example, you can't use 3 only once.)
■ *** Four arithmetic operations are addition, subtraction, multiplication and division </ font>. *** *** ➡︎ ** "Addition" ** </ font> is "addition", that is, ** "addition" **. For example, calculate the sum (result of addition) such as 2 + 3 = 5. </ font> ➡︎ ** "Decrease" ** </ font> is "subtraction", that is, ** "subtraction" **. For example, calculate the difference (subtraction result) such as 5-2 = 3. </ font> ➡︎ ** "Multiplication" ** </ font> is "multiplication", that is, ** "multiplication" **. For example, calculate the product (the result of multiplication) such as 3 × 4 = 12. </ font> ➡︎ ** "division" ** </ font> is "division", that is, ** "division" **. For example, calculate the quotient (division result *) such as 4/2 = 2. </ font>
■ *** The four arithmetic operations can be performed in any order. *** *** ➡︎ You can add two numbers first and then multiply by another number. In other words, you can use parentheses any number of times, anytime, anywhere. Example) When the white dice roll (3,6,4,4,1) and the black dice roll (20,6) The equation {(3 + 6) + (4 x 4)} + 1 = 20 + 6 holds. </ font>
[^ ref001]: Recollection | Let's reproduce the math teaching tool "Jamaica" ❗️'s previous article (vol.01) [^ ref002]: Task003 | Define and call a function in Python (def, return)
Recommended Posts