2018年5月18日 星期五

再論四格拼圖

http://4rdp.blogspot.tw/2018/05/blog-post.html


這篇文章算是四格益智拼圖的補充,主要談論它的玩法、數學問題及願景等等。

個人覺得這四格拼圖像撲克牌一樣有很多種玩法,而不是死板板只能拼圖框填滿它而已。我舉一些例子,

單人賽
1.一個人拼圖計時
2.別人給第一片圖塊位置,其餘計時多久完成拼圖
3.兩個以上拼盤混用計時
4.盲人賽,帶眼罩計時把圖拼好

雙人賽
1.用兩個拼圖盤,每個人負責完成自己的拼圖盤,敵方負責阻礙完成,像下圍棋一樣,任意放在格子內,兩人輪流一攻一守,遊戲者先手,擾亂者共有三次放棋機會,擾亂者不得製造封閉空格,遊戲者需完成其餘圖塊,若有無法完成的空格,就是每個空格扣一分,另外每多一個獨立區塊加扣一分,比較分數誰扣得少。

四人賽
1.用四個拼圖盤,兩兩一隊,像雙人賽一樣,每人輪流擺放,假設四人分別為 ABCD,A 為遊戲者,C 為隊友,BD 為敵隊,下棋次序為 ABACADAA...,分數計算 AC、BD 分別合計。

多人競賽
1.一人一色等量圖塊,同色邊相連可加分,每一個邊加一分,當圖塊碰圖框扣分,每一個邊扣一分。
2.類似德國圍棋玩法,一人一色等量圖塊,同色邊不能相碰,但是角可以接觸,輪流下到無法下棋的人就淘汰。

多人合作賽
1.二、三、四人合作,每人輪流擺放,合作拼一個圖,若有無法完成的空格,就是每個空格扣一分,另外每一獨立區塊加扣一分,分數為拼圖隊所有。

2018年5月14日 星期一

訓練數學感 174 ─ 四格益智拼圖 (Tetromino)

http://4rdp.blogspot.tw/2018/05/174-tetromino.html


這是一個 12 x 12 格的拼圖,有七種基本圖塊:I 字、O 字、L字、J 字、Z 字、S 字、T 字,除了T 字有六片,其餘各有五片,因為正面有格線,所以不能翻面拼擺。

請問利用這些圖塊可以拼出正方形有多少種排列方式?

2018年5月10日 星期四

ROSA 系統開發 58 ─ Motion_OTTO.h

http://4rdp.blogspot.tw/2018/05/rosa-58-motionottoh.html

OTTO like 已經預編行走與跳舞動作,進階玩家可以參考修改或新編動作,開啟 Motion_OTTO.h 檔案,可以看見下列內容:

const byte RUN_1[] PROGMEM = {                // OTTO wave
//   0, 1,   2, 3, 4,   5, 6,
_SERVO, hof, hof, hof, hof, hof, hof,   //0
_LOOP,    3, idl, idl, idl, idl, idl,   //1
_SERVO, LR4, idl, RR4, idl, idl, idl,   //2
_SERVO, LL4, idl, RL4, idl, idl, idl,   //3
_NEXT,    3, idl, idl, idl, idl, idl,   //4
_SERVO, LMD, LSD, RMD, RSD, idl, idl,   //5
_LOOP,    3, idl, idl, idl, idl, idl,   //6
_SERVO, hon, idl, hon, idl, idl, idl,   //7
_NEXT,    2, idl, idl, idl, idl, idl,   //8
_GOTO,   22,                      // goto RUN_N
};


const    代表常數設定
byte     資料是位元組型態
RUN_1[]  動作資料取名為 RUN_1 陣列
PROGMEM  資料儲存在 flash ROM

//   0, 1,   2, 3, 4,   5, 6,
//      左腿上肢 右腿上肢
//           左腿下肢 右腿下肢

2018年5月6日 星期日

訓練數學感 173 ─ 求解 x 方程式

http://4rdp.blogspot.tw/2018/05/173-x.html



abc = 1,求解上式 x。

2018年5月2日 星期三

ROSA 系統開發 57 ─ 再談 SG90 的控制

http://4rdp.blogspot.tw/2018/05/rosa-57-sg90.html





OTTO like 使用 SG90 伺服馬達當作機器人動作控制的馬達,開發 ROSA 複雜系統,並未使用大眾習慣泛用的 Servo.h 函數庫,主要原因是避免未來加入其它功能造成 Timer 或中斷衝突問題。這裡定義  SG90 的驅動脈波寬度,轉 0° 為 560 ms,轉 180° 為 2000 ms 為基準來設計。

#define MAXus  2000 // us     2000 us = 2 ms = 0.002 sec
#define MINus  560  // us
#define GAIN   (MAXus-MINus)/180.0
// Servo 的角度定義 -------------------------------------
#define hon 251         // hold on
#define hof 250          // hold off
#define idl 255           // Servo idle