29th consecutive game with a touchdown pass
(longest active streak in NFL)
Record: 54 (Drew Brees)
今のプレーでレギュラーシーズンでは29試合連続タッチダウンパス
(現在続いているものの中ではNFL最長)
歴代1位はドリュー・ブリーズの連続54試合
動作確認としてmicro:bitからESPへ"AT"コマンドを送ってそのリザルトコードを見てみる。
#include "MicroBit.h" MicroBit uBit; ///////////////////////////////////////////////////////// void initWiFi(); void ATWiFi(); void debug(ManagedString s); ///////////////////////////////////////////////////////// #define Tx MICROBIT_PIN_P0 #define Rx MICROBIT_PIN_P1 #define DEBUG 1 ////////// // test // ////////// int main(void){ initWiFi(); ATWiFi(); release_fiber(); return 0; } void initWiFi(void){ uBit.serial.redirect(Tx, Rx); // シリアルポートを指定端子に設定する。 uBit.serial.baud(115200); // シリアル通信のボーレートを設定する。 uBit.serial.setRxBufferSize(127); // 受信バッファーのサイズを設定する。 } void ATWiFi(void){ uBit.serial.send("AT\r\n", SYNC_SPINWAIT); // "AT"コマンドをESPへ送って、 uBit.sleep(150); // 少しだけ待って、 ManagedString s = uBit.serial.read(127, ASYNC); // ESPから受信して、 if(DEBUG){ debug(s + "\n"); // 受信した文字列をUSBシリアルへ出力して確認する。 } } void debug(ManagedString s){ uBit.serial.redirect(USBTX, USBRX); // シリアルポートを指定端子から標準端子(USB)に切り替えて、 uBit.serial.send(s, SYNC_SPINWAIT); // 何かの文字列を送信して、 uBit.serial.redirect(Tx, Rx); // 送信し終えたらシリアルポートを指定端子に戻す。 }
実行結果:
―――――――――――――――――――――――――――――――――
"AT+GMR"コマンドを送るとESPのファームウェアのバージョンが返ってくる:
#include "MicroBit.h" MicroBit uBit; uint8_t AinB(ManagedString A, ManagedString B){ int ALen = A.length(); int BLen = B.length(); int difLen = BLen - ALen; // 文字列Bを左(i)から文字列Aの文字数ぶん(ALen)ずつ順番に見ていって、 uint8_t isFound = 0; for(int i=0; i<=difLen; i++){ if(A==B.substring(i, ALen)){ isFound = 1; break; } } // 文字列Aが見つかったら1を返し、 // 最後まで見つからなかったら0を返す。 return isFound ? 1 : 0; } ////////// // test // ////////// int main(void){ printf("%d\n", AinB("OK", "OK")); // 1 printf("%d\n", AinB("OK", "KO")); // 0 printf("%d\n", AinB("OK", "OreookdadaktetfK")); // 0 printf("%d\n", AinB("OK", "OKedafdfadfadftr")); // 1 printf("%d\n", AinB("OK", "treookdaOKdaktet")); // 1 printf("%d\n", AinB("OK", "treookdadaktetOK")); // 1 printf("%d\n", AinB("OK", "KreookdadaktetdO")); // 0 printf("%d\n", AinB("KOeookdadaktetdO", "OK")); // 0 release_fiber(); return 0; }
実行結果:
//#include<string.h> #include "MicroBit.h" MicroBit uBit; uint8_t AinB(char A[], char B[]){ return strstr(B, A)!=NULL ? 1 : 0; } ////////// // test // ////////// int main(void){ printf("%d\n", AinB("OK", "OK")); // 1 printf("%d\n", AinB("OK", "KO")); // 0 printf("%d\n", AinB("OK", "OreookdadaktetfK")); // 0 printf("%d\n", AinB("OK", "OKedafdfadfadftr")); // 1 printf("%d\n", AinB("OK", "treookdaOKdaktet")); // 1 printf("%d\n", AinB("OK", "treookdadaktetOK")); // 1 printf("%d\n", AinB("OK", "KreookdadaktetdO")); // 0 printf("%d\n", AinB("KOeookdadaktetdO", "OK")); // 0 release_fiber(); return 0; }
実行結果:
in
だけでよい。
from microbit import * def AinB(A, B): return A in B ######## # test # ######## if __name__ == "__main__": print(AinB("OK", "OK")) # 1 print(AinB("OK", "KO")) # 0 print(AinB("OK", "OreookdadaktetfK")) # 0 print(AinB("OK", "OKedafdfadfadftr")) # 1 print(AinB("OK", "treookdaOKdaktet")) # 1 print(AinB("OK", "treookdadaktetOK")) # 1 print(AinB("OK", "KreookdadaktetdO")) # 0 print(AinB("KOeookdadaktetdO", "OK")) # 0
実行結果: