2015年10月19日 星期一

Multiplication Chessboard的更新紀錄





在10月上旬將這個程式Share出去之後,有許多老師同好對「九九乘法遊戲板」感到興趣,所以我儘可能地快速Update它到我認為較完整的版本,主要就是加入對戰紀錄分析,我個人認為這可比遊戲本身更重要,也加入了一點音效…
加入可以逐手討論的區塊
若有大人或老師,在某場遊戲結束之後,引導小朋友(對戰者或其他人)一起來「回顧」每一手紀錄,這可以讓小朋友長智慧,因為不僅是單純的背熟九九乘法這麼陽春,它還包含觀察對方的局勢做出是要「進攻」或是「阻止」的決定!
以程式的角度來說,就是要在遊戲進行中,不斷地留下紀錄,所以我讓程式在啟始時,在使用者的電腦裡檢查並建一個目錄,就在C:\cw_cheesboard,遊戲進行時,程式會截取盤勢畫面及寫下使用者動作的log,最後在程式中增加一個區塊→「對戰分析區」
每一次的對戰會被以時間為標記留下來
選了對戰紀錄後,就可以進入那一場的檢討畫面。
在這一次的Update中,有鑑於目前螢幕或是單槍都是16:10的比例,且解析度也都不錯,便加出一版使用1200X800的版面,並用KIOSK模式(全螢幕遮蔽),結果老師們也大都認為不錯。
KIOSK模式執行的程式
不久之後(才釋出程式一二天),有位新市國小的大紅帽老師來商談,希望能改一版適合他的「全黑板投影」,還很認真地提出了他的需求,想說如果不要太費時,就舉手之勞一下…

原來現在有一些老師認為原本的教室投影模式(單槍投在布幕上)太不清楚,所以就投在黑板上,這樣還可以用粉筆加上去,算是一種巧思,也有書商的數位教材光碟也提供了所謂的「黑板投影模式」,其實很多年前,我去台北開會或研所上課時,就有教授把畫面直接投在白板上,加上白板筆說明課程,用黑板的話,在目前的教室應是不錯的啦,因為教室配的投影幕都是4:3的居多,早就跟不上時代了,只不過認真的老師,仍免不了要吃些「粉筆灰」…

投影在黑板上有二個重點:1.黑板是狹長型的。2.投影在黑板上對於內容的顏色是有限制的
還有,大紅帽老師希望利用鍵盤來控制程式…,嗯…這些要求對我來說也還算可以啦,不過我也沒太多時間就是了,而且看來他使用雙螢幕在玩(這麼有衝勁的老師現在也不多了),所以我也加了一個螢幕來試程式效果。
這時筆電是主螢幕,另一個就是副螢幕(二個解析度可設為不同)

發現程式一開始會執行於主螢幕,由於寬長於螢幕解析會被截斷,拖到副螢幕也不會自己恢復

加上二行程式就解決了

就下指令要求視窗重繪就是了
經過與大紅帽老師一番來來返返,整個程式也差不多了!他應該還能接受吧!畫面就像下面一樣,程式的版面是1580X426,在執行時,大紅帽老師打算把控制區留在主螢幕上,只有遊戲區拖到副螢幕上,而他的副螢幕就是他的單槍。
因應黑板投影所使用的顏色大概就幾種

我讓數字盤面隨著目前的玩家移動

整個程式應還算可行
※若您也此樂趣想要一試,可以在下面的連接下載到這個版本:
http://163.26.23.3/app/multiplication_chessboard/MultiplicationChessboard_v117.exe
附記:
◆大紅帽老師提供了幾種適合於黑板投影時使用的色彩,我想這應該是經驗法則,而且每個人的看法會有不同的。我把提供的16進位順便轉換成RGB模式表示在下面這個網站可以轉換
http://www.ifreesite.com/color/color-code-converter.htm
紫圓:#9600E1 RGB150,0,255
藍圓:#005AE1 RGB0,90,225
紅圓:#FF0066 RGB255,0,102
綠圓:#368700 RGB54,135,0
黃字:#FFFF00 RGB255,255,0
紅字:#E90080 RGB233,0,128
紫字:#6E00A5 RGB110,0,165

藍字:#00F0B0 RGB0,240,176
◆關於留下玩家每一手的對單紀錄,我用方法是讓程式去截取程式數字盤的影像存成jpg檔,這個部份其實很有程式難度,不過很幸運地,以前在開發論譠有一位厲害的荷蘭工程師SSIDE釋出了涵式作法,這需要dotNet2.0以上的支援,以前我就曾用在我的論文所開發的系統中,現在win7以上都內建.net framework,所以這部份能順利解決。
◆大紅帽老師所需要的鍵盤控制功能,在程式的實作上並不難達成,主要是將程式碼寫在ON key這一個event中就行了,當然得判斷一下使用者是按了哪個鍵?而電腦鍵盤的每個按鍵原本就有特定的代碼能讓程式截取
Decimal
Hex
Character
8
8
Backspace
9
9
Tab
13
D
Enter
16
10
Shift (both)
17
11
Ctrl (both)
18
12
Alt (both)
19
13
Pause
20
14
Caps Lock
27
1B
Esc
32
20
Spacebar
33
21
Page Up
34
22
Page Down
35
23
End
36
24
Home
37
25
(left arrow)
38
26
(up arrow)
39
27
(right arrow)
40
28
(down arrow)
45
2D
Insert
46
2E
Delete
48
30
0
49
31
1
50
32
2
51
33
3
52
34
4
53
35
5
54
36
6
55
37
7
56
38
8
57
39
9
65
41
A or a
66
42
B or b
67
43
C or c
68
44
D or d
69
45
E or e
70
46
F or f
71
47
G or g
72
48
H or h
73
49
I or i
74
4A
J or j
75
4B
K or k
76
4C
L or l
77
4D
M or m
78
4E
N or n
79
4F
O or o
80
50
P or p
81
51
Q or q
82
52
R or r
83
53
S or s
84
54
T or t
85
55
U or u
86
56
V or v
87
57
W or w
88
58
X or x
89
59
Y or y
90
5A
Z or z
91
5B
(left Windows key)
92
5C
(right Windows key)
93
5D
(application key - located between
the right Windows and Ctrl keys
on most keyboards)
96
60
0 (numpad with Num Lock on)
97
61
1 (numpad with Num Lock on)
98
62
2 (numpad with Num Lock on)
99
63
3 (numpad with Num Lock on)
100
64
4 (numpad with Num Lock on)
101
65
5 (numpad with Num Lock on)
102
66
6 (numpad with Num Lock on)
103
67
7 (numpad with Num Lock on)
104
68
8 (numpad with Num Lock on)
105
69
9 (numpad with Num Lock on)
106
6A
* (numpad)
107
6B
+ (numpad)
109
6D
- (numpad)
110
6E
. (numpad)
111
6F
/ (numpad)
112
70
F1
113
71
F2
114
72
F3
115
73
F4
116
74
F5
117
75
F6
118
76
F7
119
77
F8
120
78
F9
121
79
F10
122
7A
F11
123
7B
F12
144
90
Num Lock
145
91
Scroll Lock
186
BA
;
187
BB
=
188
BC
,
189
BD
-
190
BE
.
191
BF
/
192
C0
`
219
DB
[
220
DC
\
221
DD
]
222
DE
'
※還有一點可以提醒自己的,程式若是用到onkey的,在開始執行後一定要記得給一個命令focus住畫面上某一個物件,如此鍵盤的截取才會開始運作,還有當鍵盤模式處於中文狀態,不管按哪個鍵,返回值都會是229

沒有留言: