2019年2月15日 星期五

訓練數學感 203 ─ 射龍門

http://4rdp.blogspot.com/2019/02/203.html

據說射龍門的撲克牌玩法流行於香港,通常用於賭博。

莊家負責發牌,玩家會先拿到兩張牌,然後以第三張牌跟前兩張牌的點數比較來決定輸贏,如果第三張牌點數在前兩張之間,玩家贏,否則算輸。像在踢足球,把球踢進球柱之間才算贏,所以稱為「射龍門」。

點數排列,A, 2, 3, 4, 5, 6, 7, 8, 9, 10, J, Q, K,分別代表 1 ~ 13,所有玩家先下注,例如每注最低金額為 10 元,大家在桌面中間押注當初始彩金,然後莊家發給所有玩家兩張牌,假設有十位玩家大家都押注十元,此時彩金總額為 100 元,第一位玩家拿到 4 和 10 兩張牌,他可以根據當時桌上彩金多寡喊注,假設他喊 60 元,莊家對他發出第三張牌,如果第三張牌是 5, 6, 7, 8, 9 中任一張,玩家贏,他可以拿走 60 元,如果號碼是 A, 2, 3, J, Q, K 在門柱之外,玩家輸,他要補入 60 元當彩金,若第三張號碼為 4, 10,表示撞柱也是輸,要賠入喊注加倍金額 120 元當彩金,後面的玩家根據當時桌面的金額繼續喊注,直到彩金清空。

如果兩張門柱牌是一樣時,要猜大小,比如兩張 5,玩家說猜大,只要第三張比 5 大就是贏,比 5 小就是輸,撞柱一樣雙倍罰金。

假設只有兩位玩家,每人都押注 10 元,然後喊注 20 元,請問第一位玩家的期望值是多少?

2019年2月11日 星期一

ROSA 系統開發 64 ─ 日期時間的顯示

http://4rdp.blogspot.com/2019/02/rosa-64.html


ROSA 系統函式庫化,跟其它 Arduino 函式庫是有些差異的,因為一般的 Arduino 函式庫採取草稿碼 / 匯入程式庫 / 加入 ZIP 程式庫,然後 ino 主程式 #include <...> 就可以使用這些程式庫,而 ROSA 的函式庫是不匯入程式庫的,為什麼要這麼做?因為 ROSA 的函式庫跟其它函式庫不同在它會去含入外部定義的資料,這使得 ROSA 的函式庫必須跟主程式在同一目錄下。

這個新版程式的函式庫先設計兩個:ROSA_TIMER.cpp 及 ROSA_DISPLAY.cpp
顧名思義,TIMER 處理時間與日期,DISPLAY 處理顯示部分,

// (C) 2019, Bridan Wang, CC BY-NC-SA 3.0 TW
// This is a demo program applied Robot Operation System for Arduino
// http://4rdp.blogspot.tw/search/label/ROSA%20(Arduino)

//軟件許可協議
//
//研發養成所 Bridan Wang 提供此軟體供學校教育或個人單獨使用
//對外分享展示本軟體時,請說明來源來自研發養成所
//你可以架構在本軟體基礎上,設計新功能或修改
//本軟體屬於 Bridan 和或其它原始碼供應商,並受適用的法律版權保護
//此軟體按“原樣”提供,可能含有錯誤,不作任何明示,暗示或法律的保證
//本軟體僅限 Arduino 部分微控制器產品,適用於特定用途
// Bridan 在任何情況、環境以及特殊使用不負任何原因損害賠償責任
//
//這是 ROSA 韌體版本的一部分。
//
//建議使用 Arduino-1.8.8 以後版本編譯,因為有發現之前版本有錯誤情形

/***********************************************************
// Include
************************************************************/
#include "ROSA_DEFINE.h"
#include ".\ROSA\ROSA_TIMER.cpp"
#include ".\ROSA\ROSA_DISPLAY.cpp"

/***********************************************************
// Main Program
************************************************************/
void setup() {
  ROSA_TIMER_SETUP();
  ROSA_DISPLAY_SETUP();
}

void loop() 
{
  ROSA_TIMER_RUNNING();
}

/***********************************************************
// SYSTEM TIMER
************************************************************/
void TIMER_2ms()
{
}

void TIMER_10ms()
{
}

void TIMER_100ms()
{
}

void TIMER_1sec()
{
   ROSA_DISPLAY_LOOP();
   ROSA_DISPLAY_DATE();
   ROSA_DISPLAY_TIME();
}

2019年2月7日 星期四

第二次使用 Funday 心得

http://4rdp.blogspot.com/2019/02/funday.html

兩年前曾經短期使用 Funday 過,後來閒暇時間放在創客與桌遊製作方面,就沒再繼續,去年底 Funday 的業務再次跟我接洽,正好現在工作內容也有轉變,工作上有更多使用英文的需求,所以重拾學習的動力。

以前求學時,不喜歡背誦,數理是我的強項,而英文一直是最弱的學科,在學習習慣方面,深受父親的影響,喜歡獨自自修,加上個性沉靜寡言,所以英文很難大幅進步。

文法的貫通是受旋元佑所著的「英文魔法師之文法俱樂部」啟蒙,讓我單字量穩定累積,屬 Lingvist APP 效果最好,而

2019年2月3日 星期日

ROSA 系統開發 63 ─ LCD 基本顯示測試

http://4rdp.blogspot.com/2019/02/rosa-63-lcd.html

上一期介紹了 Nokia 5110 LCD 硬體,今天就驅動程式進一步介紹,這裡寫了一個基本顯示測試,下面是 ROSA_DISPLAYcpp 的內容:

#include "..\ROSA_DEFINE.h"

#if defined(DISPLAY_NONE)
  #define ledPin 13  // 第13隻接腳控制 LED 明滅。
  byte state = 0;

  void ROSA_DISPLAY_SETUP() {
    // put your setup code here, to run once:
    pinMode(ledPin, OUTPUT);
  }

  void ROSA_DISPLAY_LOOP() {
    state = 1 - state;
    if (state==0)
      digitalWrite(ledPin, LOW); // 設定PIN13腳位為低電位= 0V ,LED 熄滅
    else
      digitalWrite(ledPin, HIGH); // 設定PIN13腳位為高電位= 5V ,LED 發亮
  }
#elif defined(DISPLAY_5110)
  #include
  #include
  Adafruit_PCD8544 display = Adafruit_PCD8544(9, 10, 11, 13, 12);

  void ROSA_DISPLAY_SETUP() {
    // put your setup code here, to run once:
    display.begin();
    // init done
  }

  void ROSA_DISPLAY_LOOP() {
    display.clearDisplay();
    display.setTextSize(1);
    display.setTextColor(BLACK);
    display.setCursor(0,0);
    display.println(PRODUCT);
    display.setTextColor(WHITE, BLACK); // 'inverted' text
    display.println(VERSION);
    display.display();
  }
#endif


2019年1月30日 星期三

訓練數學感 202 ─ 循環的排列

http://4rdp.blogspot.com/2019/01/202.html

十個盒子圍成一圈,十顆球從 0 到 9 編號,每個盒子只能放一顆球,旋轉放置視為同一種放法,例如 0123456789 與 1234567890 視為相同,請問有幾種不同放法?

2019年1月26日 星期六

ROSA 系統開發 62 ─ LCD Nokia 5110

http://4rdp.blogspot.com/2019/01/rosa-62-lcd-nokia-5110.html



在應用 Arduino 設計專案時,因為作品屬性不同,不常見有人使用點陣式 LCD,我覺得利用它可以開發很多特殊作品,因此 ROSA 2019 再出發,選擇一個平價 LCD 來設計,找來找去覺得 Nokia 5110 LCD 很適合,上圖左為 LCD 模組正面,上圖右為背面,Google 這個 5110 模組會發現有很多型式,意思是各家廠商所製作的模組排針位置不盡相同,我所買到的昰上圖的型式,所以將依照這樣的模組來設計 ROSA 程式,玩家設計時要注意小心。



2019年1月22日 星期二

訓練數學感 201 ─ 正三角形面積等於多少?

http://4rdp.blogspot.com/2019/01/201.html

有個六邊形,直線 AD、BE、CF 共同相交於 O 點,其中 BOC、DOE、AOF 都是正三角形,已知另三個三角形面積分別為 8、10、20 單位面積,試求三個正三角形面積。