一年前朋友在玩一個NFT社群,項目方透過盲盒發售NFT,有不少稀有的NFT還未開出。因我之前在前公司有做過區塊鏈的樂透機制Demo,那時的研究了解到單憑區塊鏈是無法做到真正的隨機,一定要仰賴第三方做隨機數。所以朋友就邀我一起研究一下他們的NFT開盲盒機制,看能不能有甚麼方法提高中獎機率。
找到該項目NFT的智能合約,為ERC721的應用,其中解盲時產生NFT token_id隨機數的程式碼如下
function XXXXXXX(uint256 tokenId_) internal returns (uint256) {
require(_remaining > 0, "there are no available token id");
uint256 tempRemaining = _remaining;
// PRG:
uint256 value = uint256(
keccak256(
abi.encodePacked(
tokenId_,
block.difficulty,
block.timestamp,
msg.sender
)
)
) % tempRemaining;
// Durstenfeld-Fisher–Yates shuffle
uint256 tokenId = value;
uint256 tempRecordValue = _cache[value];
if (tempRecordValue != 0) {
tokenId = tempRecordValue;
}
uint256 remainingIndex = tempRemaining - 1;
uint256 tempLastValue = _cache[remainingIndex];
if (tempLastValue == 0) {
tempLastValue = remainingIndex;
}
_cache[value] = tempLastValue;
_remaining = remainingIndex;
return tokenId + _startingIndex;
}
其實當初有在咖啡與調酒中選擇,最後決定以咖啡開始,畢竟初始投入調酒來說花費成本偏高。後來在2018年9月初因緣際會購買了一組調酒器材,也因此打開了調酒這門深奧學問的大門。同年9月11號,調出了第一杯經典調酒Screw Drvier,很簡單一點也不像在調酒,算蠻成功的嘗試,雖然最後很像在喝柳橙汁就是了。
最基本的伏特加、琴酒、蘭姆酒、龍舌蘭與君度橙酒都有各買一瓶經典的。以這幾種酒再搭配果汁就能調出各式各樣的酒譜了。
2018年2月11日是一個特別的日子,那天在家用剛買好的匿名2與V60,嘗試了第一次的手沖咖啡。第一支自己沖的咖啡豆是歐客佬的深烘焙「印尼黃金曼特寧」。模仿網路上的手法,但實際操作卻一塌糊塗,水柱忽大忽小,非常的難喝,有強烈的焦苦味與酸味。但也從此開啟了幾乎一天一杯手沖咖啡的生活。
很多人說咖啡是苦的是澀的,會喝咖啡代表長大了。但喝到現在5年多,我覺得咖啡並不是苦的。喝咖啡是可以像喝果汁或喝茶一樣,充滿清香與回甘。最一開始以為自己喜歡深烘焙,外面喝咖啡都會點深烘焙的咖啡來喝,但自己嘗試越多的手沖,就越發現自己喜歡喝充滿香味與甘甜滑順口感的咖啡,而這通常是淺焙或極淺焙的咖啡豆才有的風味。導致後來都只買淺焙的咖啡,一些長輩比較喜歡喝苦的咖啡就不會喜歡我沖的咖啡。
遊戲一定會有動畫需要製作,本篇教學會以線上免費素材網站為範例,一步一步介紹如何從圖檔做出能在Unity上跑的動畫。最後會再給動畫加上程式功能,製作完整的角色
可以參考底下的網站,裡面有蠻多素材網站的介紹
開發一度因為 TextMeshPro 無法顯示中文,而停擺了一陣子。後來發現解決中文亂碼問題沒有那麼困難。網路上有蠻多解決方法,嘗試了之後以下是我覺得最好的。