2015年12月30日 星期三

Python 3 of py2exe "UnicodeDecodeError: 'cp950' codec can't decode bytes" 可能解法

前幾天,我在執行Python 3版的py2exe出現
"UnicodeDecodeError: 'cp950' codec can't decode bytes"
錯誤,就上網Google一下可能的解法:

notepad或notepad++的utf-8編碼文件: open('filename', encoding = 'utf-8-sig') 
notepad++的utf-8 without BOM文件: open('filename', encoding = 'utf8')

 最後我把C:\Python34\Lib\site-packages\py2exe\runtime.py,
第577 line:
從原本
with open(target.script, "U") as script_file:

改成
with open(target.script, "U", encoding = 'utf-8-sig') as script_file:

就可以正常執行
py -3.4 -m py2exe myscript.py -W mysetup.py
... edit myssetup.py
py -3.4 mysetup.py py2exe

2015年3月7日 星期六

關於Notepad++ plug-in NppExec 嘗試執行 C/C++ code, 出現"電腦遺失libintl-8.dll"錯誤可能的解法

For windows8 or windows 8.1
1. 系統->進階系統設定->環境設定->系統變數,編輯Path,加上libintl-8.dll的path,例如:
C:\Program Files\Dev-Cpp\MinGW32\bin\
2. 以"系統管理員的身份執行" Notepad++

enjoy~

2015年1月6日 星期二

CAMEL UP完全山寨計劃:free tortoise running

今天中午,跟同事玩了桌遊CAMEL UP,覺得還不錯,
當下就想到,哪天有空來山寨,寫個Open Source的。
名字暫定為Free Tortoise Running,
既然是山寨,規格就不能完全一樣。

1. 首先駱駝(CAMEL)換成Tortoise,仍為5個,另外走的步數是1~4:
因為原本走1~3設定,如果沙漠板塊(for +1步或-1步)放在2,
而沙漠板塊又不能相鄰放,會造成1和3的位置不能放。
改成走的步數是1~4,別人沙漠板塊放2,其它玩家沙漠板塊還可以放4。

2.遊戲地圖大小原本16格(3*4+4),改成20格(4*4+4):
因為走的步數由1~3變成1~4,所以地圖也要放大

3.初始錢幣為10$(原本3$),玩家所持錢幣可為負的(運氣太差的話),
大致上,物價變為2倍。

4. 領先下注板塊,改成只有第一名有發錢,另外發錢的規則是:
第一張中的話10$(原本5$)
第二張中的話6$(原本3$)
第三張中的話4$(原本(2$)
沒中的話-2$(原本-1$)

5. 最終下注區,由原本只能下注第一名和最後一名,改成1,2,4,5名,四區可下注,
另外發錢的規則是:
第一個中的16$(原本8$)
第二個中的10$(原本5$)
第三個中的6$(原本3$)
第四個中的4$(原本2$)
其它中的1$(原本1$)
沒中的-3$(原本-1$)

6. 踩到沙漠板塊,放該沙漠板塊的玩家得到2$(原本1$),而骰金字塔步數也得到2$(原本1$)

Codewars: The Baum-Sweet sequence

這題列在7 kyu,我覺得有點難度,應該有6 kyu的程度了。 這題有數學題的感覺,我因為害怕TLE,加上我有感冒, 因此是直接問ChatGPT 4o怎麼解決, 沒想到一開始,ChatGPT是提供TLE的方法, 我再問ChatGPT要如何加快, 才給我夠快的方法, 看了ChatG...