2022年1月19日水曜日

続・お年賀 2022

 元々、python 電卓が豊作という所でこしらえた「お年賀」コードでしたが、HP Primeのpython文法はXCASのもので、純正upythonとは異なるらしく、動作するコードを作るのに難儀して、結局はPPLにて作成した次第。

データ量が多く、入力するのには大変な苦痛を伴うものでしたが、コードのメインパートは至極単純なので、誰か移植してくれないものか、などと甘い期待をしておりましたが、みている人が少ない「鄙びた辺りにある」当blogなので、誰も移植を試みようとは言って呉れませんヨ、トホホ。

そこで、遅ればせながら、python電卓でも動きそうなコードを提示しておかないとならぬ、と刻苦奮励、どうにかソレらしいコードをでっち上げた次第。

取り敢えずマニュアルが参照できるCASIO fx-CG50向けでコードを作成してみましたが、実機を持っているわけでないので、誰か、お試し戴けたら幸甚ではあります。

データ部分の行がやたらと長いので、python電卓といえども、長い行のハンドルは可能なのか ? という興味もあります。お持ちの方は是非ともお試し戴き度。

また、Numworks, TI-84+ CE edition-python とかでも、移植しやすい筈なので、やってみた方は是非ともレポート戴くと有り難いです。 

2022-01-20 追記
コードを修正してみました。


リストだよん 

# title : gprint-run.py
# begin : 2021-12-20 02:54:36 

from casioplot import *

#  functions definitions

#  plot services
def  plot(x, y, d, c) : 
  for j in range(d) :
    for i in range(d) :
      set_pixel(x+i, y+j, c)

#  colour string generates
def RGB(r, g, b) :
  return  (r, g, b) 

#
def  gprint(x, y, d, str) :
  for c in str:
    num = '0123456789ABCDEF'.index(c)
    code = colour[num]
    plot(x, y, d, code)
    x = x+d

#  main part

#  colour parettes
colour = []
colour = colour + [ RGB (32, 30, 22)  ]
colour = colour + [ RGB (93, 94, 86)  ]
colour = colour + [ RGB (51, 69, 71)  ]
colour = colour + [ RGB (77, 52, 30)  ]
colour = colour + [ RGB (111, 146, 156)  ]
colour = colour + [ RGB (94, 121, 131)  ]
colour = colour + [ RGB (173, 199, 205)  ]
colour = colour + [ RGB (228, 229, 222)  ]
colour = colour + [ RGB (163, 160, 155)  ]
colour = colour + [ RGB (172, 138, 110)  ]
colour = colour + [ RGB (153, 113, 87)  ]
colour = colour + [ RGB (210, 173, 158)  ]
colour = colour + [ RGB (200, 150, 119)  ]
colour = colour + [ RGB (223, 201, 180)  ]
colour = colour + [ RGB (98, 76, 50)  ]
colour = colour + [ RGB (144, 93, 56)  ]

#  colour code 

gdata = [
   '000000012324445205444467526677846777425466444541122200214444467776645000445' , 
   '000000084114445505644467226777846666405666444555122000214114667776445002465' , 
   '00000091A845444504444466524777446667405467454555122000214444777677445002445' , 
   '000000432664466525645466554777446676404476456444112202111118667776442002445' , 
   '00000012046676640544446752667784666760546664688B88BC88DB6954777776442002645' , 
   '00100012246677640564446742477744666762546768D6DB8BBBBCBDDDB8667777642002645' , 
   '0022011221666774254444664247776566666546D698DBD77DDD77DD8D78886777645002445' , 
   '00200522224677642444446742477764667767777BEE8BB77D777777DBB7644666445002465' , 
   '2332252322567764054444674267776467777777745399D777D777777DB8D68488641202645' , 
   '3E2025002E5467742244446742467784677777771B828BD7D77D7777DDD8968886684002442' , 
   '2E30220302114774226444676267776BBD77777B8123BDB67D7777777DD8589487766502645' , 
   '322312020222477425444466424777BBBDD7777B8308BBD7DDDD7777DDC9911EAD777B55445' , 
   '323212030112567422444466424777BBD77777D89EA8BDDBDDDDD7D7DB9891AA99B77768645' , 
   '2302100222242674225555468256DBBB77777777B86BBBBDDD6BDDDDB8888596D899D776645' , 
   '3222100202565464224444666058B7BBBD777777DBDBDBBDBBBBBBBB8888888D77D89877645' , 
   'E32110020E264266224554676286BBBBDBD77BDD8BBD6BD6DBB88BB88CAA888D777D8967745' , 
   'E222E0020E16826622445546B4BA8BBBBB9BBCB98BBBBBBBBB8B8B989BA195BD7777789D7D6' , 
   '3222200E0228656620445466BBAABBBBBBA9AA89BBBB6BBBD88BBBB989AA9AB7DD777DB8777' , 
   '202010020114744422445866B9ACBBBBBCAAB8B89BBBBBA8BBBBB8BCC9AA9ABDDDD7777B877' , 
   'E22210020218764422444888BCACBBBBBCABBBB8B595BB9188BBBB888A19A8BB98DD7777B8D' , 
   'E20212020E28765422444DBBBBAABBBDBBBBDBBBCA851BBAA8B8BB8C9AA9A8BAA9DDD7777DD' , 
   '2022E0000228774550448DBBBBAABBBBBBBBBBBB91B82ABB1BB8BC9C9A99199AF989D77777D' , 
   '22321002211477655245BDDBBBCCABBBBBBBBBBBB14129B8F98B8B989A9F9AAAE999DDDDD77' , 
   '222220020114676450448DDBBBCCCABDBBBBBBBB812238BBAA8B99CA999E91A1FA99B9DD677' , 
   '222EE00301247774525486DBDBBCCABBDDDBDBBBB5103BBBAAB8999CA1AAEEA11AA9C9CD8DD' , 
   '323222002229777652445DDBBBBBCBBBDBBDBDBBBA1E1B8BAA9CC999A9AAEEAE1AA9A988DDD' , 
   '212220020E156776554448BBBBDDBDDDDDBBBBBBB95AABBB998C999119A1EF1E1FA9F9988DB' , 
   '1112200522E577774446488DDDDBBDBBBBDBBBBBBCB9BCCC9C9999AEF91EE11E11AAE999CC9' , 
   '21125200022167674445466BBDDBDDDBBBBBBBBBCCCCBBB89CC99AEE19E0E1E1EFAE1A998B8' , 
   '151E12000144666654812246BDBDDBDBBBBBBBBCBCC8CCC998CAAFEEAAE3EEE11FE21A599CC' , 
   '151222000224666686DD7641CDBDDDBDBBBCCBCCB99CCB8C8CAAEE3191321EE1FEEEFAA998C' , 
   '1122E200000224686DD77777ABBBDBBBBBBBCCCC99C89C9CCAFEEE319E33E1FE1E2E11AA9C8' , 
   '21E2E2000112039DDDD7777DCCCDBBDBBBC8CC9C99C9C8CC9F133E3AA332EEE1EEEEEEAAA99' , 
   '212222200111199CDD77D77DCCBBBDDBBBBCC9C99C9C9CBAA133E3EA323EEEEEEEE1EF1A199' , 
   'E22E2E200221999B7D7D77DCBCCDBBBBBB9999AA9AA999A1E33333AF0333EEE1EEE1EFAA199' , 
   '11223200022289CD77DD77CCCCCDBBBCCCC9999C9999A12E33003FA003E22E1EEE1E211AF99' , 
   '222322200221CCDDDDDDDDDCCCCBBBDBB99A98C9A9AEE3030300FA0033E23E1EEE1E2F1F199' , 
   '32020230022ACDDDCCBBCCCACCCCCDBCCCAAAA9AAA1EF3300303F30330333113EEE3E11A19A' , 
   '022002000EABDDD9FCCACFFFCCBCBCCCCAAAF1A58AAAA133303F300330322EE3EEE22EA1F9A' , 
   '302000001B7DDDCCCCAC9FFFFCCCCCCAAAAFAF1ABAB33A1103E300303203E1332EE2E1AE19A' , 
   '00000018DDDDDDC9CFFFFFEEF33EF3FFFFEFEEEEA3193FB9F330033003333303EEE23EF1FA1' , 
   '00001BDDDDDC9CA9FFFFEEE3333333EE1FA1FFAFA1F13EFA3333333303030003E1E0EEA119A' , 
   '0E9DDD7DBCFCA9FFFFEF333FE33FF9AFAFE33333EF1E1E33E333303003030003EA10EE1EA9A' , 
   '8DD7DDCCFCFAFFFFFEE33FF33FAA9FFF3303330300003F11EE33300000000003FAE03EEAF9A' , 
   'DDCCCFCFACFFFEEFFEFFFFFFCCFFFFE303FCFFE3000000003000000000000000AAE2EE1F19F' , 
   'CFCCAACAAFFFFFFF3FFA9CCFA33F9F33F9CAAFF3300000000000000000000000FA122EF1F9A' , 
   'FCFFCFFFFEFFFFFFACAAFFFAF3FCA33ACCAAAFFF330000000000000000000000E99E2EF119A' , 
   'FFCFFFFFEFFFAFCCFFFEFCCA3FCCF3ACCAACAAFFF33000000000000000000000E98EEE11AAA' , 
   'CCFFFEF3FFFFCCFFFFACCCAFFCCF3ACC9CCAAC9BAFF300000000000000000000EFCAF3A3F9A' , 
   'FFFFFFFFFFCCFFFFACCCCCF3FC9FFCBCCCCBBDD77DBA30000000000000000000EFC9EEFEA99' , 
]


d = 4     #  pixel size
x = 10    # picture x coords
y = 10    # picture y coords

for str in gdata :
  gprint(x, y, d, str)
  y = y + d

show_screen()

2022年1月5日水曜日

お年賀 2022年

さて、久しぶりにHP Primeのシミュレータで動くプログラムを作業してみました。
少々どころか、かなり長いコードなので、HP Prime実機のキーをポツポツ叩いて打ち込むのは苦行です。
PCとかを経由して、手軽に実機へコードを送り込む方法とかあるのかな ?
当方、未だに実機を入手しておらんので、この辺りの事情を御存知の方は、お知らせ戴けると幸甚であります。

実をいいますと、HP Primeでpythonが動く、と書いた手前、pythonで動くプログラムをでっち上げようと思ったのですが、global 文が機能しない様な感触だった (古いシミュレータだから ?)ので、今回はPPLで書き下した次第。

追記 on 2022-03-11

別の所に、画像を変更したPPLコードを掲載しました。
https://hpcalc-fun.blogspot.com/2022/03/2022.html


// title : graphic example
// begin : 2022-01-04 04:10:54 

//
EXPORT colour;

//  graphics print func
gprint(I, J, str) 
BEGIN
LOCAL c;
  D := 4;

  FOR X FROM 1 TO DIM(str) DO
      c := MID(str, X, 1) ;
      N := INSTRING("0123456789ABCDEF", c) ;
      L := colour(N) ;
      RECT_P(I, J, I+D, J+D, L) ;
      I := I+D ;
  END;
END;

//  
EXPORT main()
BEGIN

RECT();

//  palette
colour := {} ;
colour := CONCAT(colour, RGB (32, 30, 22) );
colour := CONCAT(colour, RGB (93, 94, 86) );
colour := CONCAT(colour, RGB (51, 69, 71) );
colour := CONCAT(colour, RGB (77, 52, 30) );
colour := CONCAT(colour, RGB (111, 146, 156) );
colour := CONCAT(colour, RGB (94, 121, 131) );
colour := CONCAT(colour, RGB (173, 199, 205) );
colour := CONCAT(colour, RGB (228, 229, 222) );
colour := CONCAT(colour, RGB (163, 160, 155) );
colour := CONCAT(colour, RGB (172, 138, 110) );
colour := CONCAT(colour, RGB (153, 113, 87) );
colour := CONCAT(colour, RGB (210, 173, 158) );
colour := CONCAT(colour, RGB (200, 150, 119) );
colour := CONCAT(colour, RGB (223, 201, 180) );
colour := CONCAT(colour, RGB (98, 76, 50) );
colour := CONCAT(colour, RGB (144, 93, 56) );

// ======== graphic print

gprint(  0 ,  0 ,  "000000012324445205444467526677846777425466444541122200214444467776645000445"  ) ;
gprint(  0 ,  4 ,  "000000084114445505644467226777846666405666444555122000214114667776445002465"  ) ;
gprint(  0 ,  8 ,  "00000091A845444504444466524777446667405467454555122000214444777677445002445"  ) ;
gprint(  0 ,  12 ,  "000000432664466525645466554777446676404476456444112202111118667776442002445"  ) ;
gprint(  0 ,  16 ,  "00000012046676640544446752667784666760546664688B88BC88DB6954777776442002645"  ) ;
gprint(  0 ,  20 ,  "00100012246677640564446742477744666762546768D6DB8BBBBCBDDDB8667777642002645"  ) ;
gprint(  0 ,  24 ,  "0022011221666774254444664247776566666546D698DBD77DDD77DD8D78886777645002445"  ) ;
gprint(  0 ,  28 ,  "00200522224677642444446742477764667767777BEE8BB77D777777DBB7644666445002465"  ) ;
gprint(  0 ,  32 ,  "2332252322567764054444674267776467777777745399D777D777777DB8D68488641202645"  ) ;
gprint(  0 ,  36 ,  "3E2025002E5467742244446742467784677777771B828BD7D77D7777DDD8968886684002442"  ) ;
gprint(  0 ,  40 ,  "2E30220302114774226444676267776BBD77777B8123BDB67D7777777DD8589487766502645"  ) ;
gprint(  0 ,  44 ,  "322312020222477425444466424777BBBDD7777B8308BBD7DDDD7777DDC9911EAD777B55445"  ) ;
gprint(  0 ,  48 ,  "323212030112567422444466424777BBD77777D89EA8BDDBDDDDD7D7DB9891AA99B77768645"  ) ;
gprint(  0 ,  52 ,  "2302100222242674225555468256DBBB77777777B86BBBBDDD6BDDDDB8888596D899D776645"  ) ;
gprint(  0 ,  56 ,  "3222100202565464224444666058B7BBBD777777DBDBDBBDBBBBBBBB8888888D77D89877645"  ) ;
gprint(  0 ,  60 ,  "E32110020E264266224554676286BBBBDBD77BDD8BBD6BD6DBB88BB88CAA888D777D8967745"  ) ;
gprint(  0 ,  64 ,  "E222E0020E16826622445546B4BA8BBBBB9BBCB98BBBBBBBBB8B8B989BA195BD7777789D7D6"  ) ;
gprint(  0 ,  68 ,  "3222200E0228656620445466BBAABBBBBBA9AA89BBBB6BBBD88BBBB989AA9AB7DD777DB8777"  ) ;
gprint(  0 ,  72 ,  "202010020114744422445866B9ACBBBBBCAAB8B89BBBBBA8BBBBB8BCC9AA9ABDDDD7777B877"  ) ;
gprint(  0 ,  76 ,  "E22210020218764422444888BCACBBBBBCABBBB8B595BB9188BBBB888A19A8BB98DD7777B8D"  ) ;
gprint(  0 ,  80 ,  "E20212020E28765422444DBBBBAABBBDBBBBDBBBCA851BBAA8B8BB8C9AA9A8BAA9DDD7777DD"  ) ;
gprint(  0 ,  84 ,  "2022E0000228774550448DBBBBAABBBBBBBBBBBB91B82ABB1BB8BC9C9A99199AF989D77777D"  ) ;
gprint(  0 ,  88 ,  "22321002211477655245BDDBBBCCABBBBBBBBBBBB14129B8F98B8B989A9F9AAAE999DDDDD77"  ) ;
gprint(  0 ,  92 ,  "222220020114676450448DDBBBCCCABDBBBBBBBB812238BBAA8B99CA999E91A1FA99B9DD677"  ) ;
gprint(  0 ,  96 ,  "222EE00301247774525486DBDBBCCABBDDDBDBBBB5103BBBAAB8999CA1AAEEA11AA9C9CD8DD"  ) ;
gprint(  0 ,  100 ,  "323222002229777652445DDBBBBBCBBBDBBDBDBBBA1E1B8BAA9CC999A9AAEEAE1AA9A988DDD"  ) ;
gprint(  0 ,  104 ,  "212220020E156776554448BBBBDDBDDDDDBBBBBBB95AABBB998C999119A1EF1E1FA9F9988DB"  ) ;
gprint(  0 ,  108 ,  "1112200522E577774446488DDDDBBDBBBBDBBBBBBCB9BCCC9C9999AEF91EE11E11AAE999CC9"  ) ;
gprint(  0 ,  112 ,  "21125200022167674445466BBDDBDDDBBBBBBBBBCCCCBBB89CC99AEE19E0E1E1EFAE1A998B8"  ) ;
gprint(  0 ,  116 ,  "151E12000144666654812246BDBDDBDBBBBBBBBCBCC8CCC998CAAFEEAAE3EEE11FE21A599CC"  ) ;
gprint(  0 ,  120 ,  "151222000224666686DD7641CDBDDDBDBBBCCBCCB99CCB8C8CAAEE3191321EE1FEEEFAA998C"  ) ;
gprint(  0 ,  124 ,  "1122E200000224686DD77777ABBBDBBBBBBBCCCC99C89C9CCAFEEE319E33E1FE1E2E11AA9C8"  ) ;
gprint(  0 ,  128 ,  "21E2E2000112039DDDD7777DCCCDBBDBBBC8CC9C99C9C8CC9F133E3AA332EEE1EEEEEEAAA99"  ) ;
gprint(  0 ,  132 ,  "212222200111199CDD77D77DCCBBBDDBBBBCC9C99C9C9CBAA133E3EA323EEEEEEEE1EF1A199"  ) ;
gprint(  0 ,  136 ,  "E22E2E200221999B7D7D77DCBCCDBBBBBB9999AA9AA999A1E33333AF0333EEE1EEE1EFAA199"  ) ;
gprint(  0 ,  140 ,  "11223200022289CD77DD77CCCCCDBBBCCCC9999C9999A12E33003FA003E22E1EEE1E211AF99"  ) ;
gprint(  0 ,  144 ,  "222322200221CCDDDDDDDDDCCCCBBBDBB99A98C9A9AEE3030300FA0033E23E1EEE1E2F1F199"  ) ;
gprint(  0 ,  148 ,  "32020230022ACDDDCCBBCCCACCCCCDBCCCAAAA9AAA1EF3300303F30330333113EEE3E11A19A"  ) ;
gprint(  0 ,  152 ,  "022002000EABDDD9FCCACFFFCCBCBCCCCAAAF1A58AAAA133303F300330322EE3EEE22EA1F9A"  ) ;
gprint(  0 ,  156 ,  "302000001B7DDDCCCCAC9FFFFCCCCCCAAAAFAF1ABAB33A1103E300303203E1332EE2E1AE19A"  ) ;
gprint(  0 ,  160 ,  "00000018DDDDDDC9CFFFFFEEF33EF3FFFFEFEEEEA3193FB9F330033003333303EEE23EF1FA1"  ) ;
gprint(  0 ,  164 ,  "00001BDDDDDC9CA9FFFFEEE3333333EE1FA1FFAFA1F13EFA3333333303030003E1E0EEA119A"  ) ;
gprint(  0 ,  168 ,  "0E9DDD7DBCFCA9FFFFEF333FE33FF9AFAFE33333EF1E1E33E333303003030003EA10EE1EA9A"  ) ;
gprint(  0 ,  172 ,  "8DD7DDCCFCFAFFFFFEE33FF33FAA9FFF3303330300003F11EE33300000000003FAE03EEAF9A"  ) ;
gprint(  0 ,  176 ,  "DDCCCFCFACFFFEEFFEFFFFFFCCFFFFE303FCFFE3000000003000000000000000AAE2EE1F19F"  ) ;
gprint(  0 ,  180 ,  "CFCCAACAAFFFFFFF3FFA9CCFA33F9F33F9CAAFF3300000000000000000000000FA122EF1F9A"  ) ;
gprint(  0 ,  184 ,  "FCFFCFFFFEFFFFFFACAAFFFAF3FCA33ACCAAAFFF330000000000000000000000E99E2EF119A"  ) ;
gprint(  0 ,  188 ,  "FFCFFFFFEFFFAFCCFFFEFCCA3FCCF3ACCAACAAFFF33000000000000000000000E98EEE11AAA"  ) ;
gprint(  0 ,  192 ,  "CCFFFEF3FFFFCCFFFFACCCAFFCCF3ACC9CCAAC9BAFF300000000000000000000EFCAF3A3F9A"  ) ;
gprint(  0 ,  196 ,  "FFFFFFFFFFCCFFFFACCCCCF3FC9FFCBCCCCBBDD77DBA30000000000000000000EFC9EEFEA99"  ) ;

//  show screen and wait
FREEZE;

END;


虚礼廃止 2022

最近は、記事をポストしておらんで、人々から忘れ去られようとしております当blog。
それでもひっそりと暮らしておる所であります。

最近はめっきりと使わなくなってしまった「HP35S」ですが、久しぶりに電源を入れると、電池切れで動かんですね。
そこで、電池を交換するのですが、これの電源は、CR2032というリチウムコイン電池です。
リチウムコイン電池、最近では様々な製品に利用するので、買い置きがあり、すぐにも交換に至ったのですが、一方、使い終わった電池はゴミとして処分しないとならない。

「リチウムコイン電池、どこかで回収しておるんかいや ?」と、調べたのですが、以下のサイトによると、

ref. http://www.eme-tokyo.or.jp/consultation/faq/answer64.php

リチウムコイン電池は「環境負荷が小さく、タダの不燃ごみとして捨てていい」らしい。これは驚いた。
結構「エコ」だった、というと大袈裟ではありますが、まあ、気を使わんでいいのは有り難い所。

一方、昨今は「SDGs」とかいうて「レジ袋を使いまわしましょう、ポリ袋は敵だ」と言わんばかりであります。
過日、TBSで放映された「日本沈没」ですか、何となく「地中奥深くにあるエネルギー資源を汲み出すという施設が業して、日本国土の大半が沈没してしまった」という寓話的展開でしたが、「ポリ袋を燃やさなければSDGs、環境は救われる」というのは、ホントなんじゃろか ?

自動車産業の多くは、欧州で進みつつあるガソリン車脱却、電気自動車の開発への方向転換で、舵を切っていると言われております。
それは、欧州、米国で車を売り込むという事情から、らしい。

欧州、米国を中心にSDGsの大合唱。北極や北欧の国々は、地球温暖化で国土が縮小しつつと言われており、地球温暖化は、国際世論となっている。しかし、それが二酸化炭素の排出を抑えるだけで解消できるのだらうか ?

かつて、独逸の「黒い森」が、NOx による酸性雨から枯死が進んでいると言われておりました。そこで自動車業界は排ガス規制を設け、それに応じた形で自動車開発を進めてきたのですが、
今度はSGDs、電気自動車というゴールポストを設置、ルールセッターにうまく誘導された形であります。

欧州の一部メーカーは電気自動車の開発でリードしていると言われておりますが、全てのメーカーでは無さそう。一方、日本の自動車産業の多くが電気自動車の開発へ軸足を移しているとか。
当方なんぞは、自動車を買うほどの財がある訳ではありませんから、自動車産業がどこへ向かおうと知ったこっちゃありませんや。

所が、TBS「日本沈没」では、こうした大企業の「企業城下町」を海外に移設、ついでに周辺住民などを受け入れを諸外国へ打診する、ちう無理筋なハナシで進んでおりました。
1企業城下町の移設で、数百万の人々を海外移民出来るなんて、与太話もいい加減にしろヨ。

まだまだ、色々といいたいことはあるのですが、筆も鈍って来ており、ここらが潮時なのかも知れませぬ。新年早々、うんざりする様な話題で相済みませぬ。

謹賀新年 (虚礼廃止だったのですが)