跳到主要內容

發表文章

在Windows的環境底下 利用Python3 安裝Scrapy

由於使用Windows python3 的情況下安裝Scrapy經過了許多困難,所以把我遇到的困難寫成blog,幫助他人也幫助自己 當然也是因為scrapy開始支援python3了 這是Scrapy的官網   系統環境 Windows 10環境 Python 3.5.1 (可於此下載  https://www.python.org/downloads/windows/ ) 安裝Scrapy有一些前置作業必須處理 前置作業 http://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml 下載符合你的版本的lxml 以下為以目前我環境為例 pip3 install lxml -3.6 .0 -cp35-cp35m-win32.whl https://sourceforge.net/projects/pywin32/files/pywin32/Build 220/ 下載符合你環境的exe檔 以下為以目前我環境為例 easy_install pywin32 -220. win32-py3 .5 .exe 一切就緒後,就可以開始安裝scrapy 目前支援python3的只有scrapy 1.1版本以上才有支援喔 pip install scrapy

利用機器學習 flappy bird

http://gcaaa31928.github.io/FlappyBirdLearning/ Flappy Bird Learning 此為利用機器學習的方式自動學習flappy bird的專案,而學習方法則是用Q Learning 部份參考至  http://sarvagyavaish.github.io/FlappyBirdRL Game Framework 利用Phaser.js製作出flappy bird遊戲,如下圖 (參考至  http://www.lessmilk.com/tutorial/flappy-bird-phaser-1 ) Q Learning 重點在於這一個公式 而一開始利用這個公式訓練時碰到了一些困難 當只使用這兩個狀態空間時,也就是QState是一個二維的空間 造成在低點的障礙物無法得知離地面或是離天空的距離而常常超出邊界 所以我加上了一個狀態空間,為到天空的距離 但這又引發了別的問題,當我一般的速度通過磚塊時,理論上會以這個方式行動 紅點的位置會慢慢訓練成不按的情況下Q Value會比按的情況下高 但在這個情況時 由於下降的速度太快,導致於Q Value訓練成必須要按下之後才能避免撞到磚塊 也因為這兩個狀態沒辦法收斂到正確的位置,而收斂到了其他的位置 所以我們必須再加一個狀態空間為速度這個空間 基本上這樣就可以完成練習了

Codeforces Round #325 (Div. 2)

A. Alena's Schedule   每次有1就加1,沒有1的話就看看如果有兩個0就不加1  要注意的點是一開始的0不用理他 B. Laurenty and Shop 把路徑全部加起來排序取最小的兩個加起來就可以了 C. Gennady the Dentist 這題目寫得不太好 沒有說孩子們哭完才移動位置,還是移動完才繼續哭 不過仔細一看才知道外面有note寫說哭是比移動位置早的 所以在牙醫室裡面哭的孩子在外面傳遞的聲量是以當時的狀態去傳遞 接下來就很簡單了

Codeforces Round #326 (Div. 2)

Codeforces Round #326 (Div. 2) A. Duff and Meat 水題就不多說了 一直記錄最小值就可以了 __author__ = 'GCA' # Date: 2015/10/18 n = int(input()) minp = 200 total = 0 for i in range(n): ai, pi = list(map(int, input().split())) if pi < minp: minp = pi total += minp * ai print(total) B. Duff in Love 只要用快速mod的方式去找出每個質因數,而如果答案沒辦法整除這個質因數就把這個質因數乘起來 __author__ = 'GCA' # Date: 2015/10/19 n = int(input()) a = n ** 0.5 + 1 d = 2 A = 1 while d <= a: if n % d == 0: n //= d if A % d != 0: A *= d else: d += 1 if n > 1: A *= n print(A) C. Duff and Weight Lifting 只要有兩個以上的A數字 就可以mod 2變成只有1個or 0個 只剩1個的話代表無法合併 為一個step 而map(A+1)可以加上A / 2的數量 並且一直往大的數字推 __author__ = 'GCA' // Created by GCA on 2015/10/19 #include using namespace std; const int maxn = 1000105; int a[maxn]; int n; int main() { memset(a, 0, sizeof(a)); scanf("%d", &n); for (int i = 0; i < n; i++) { int t; ...

遊戲製作回顧-魔獸爭霸編輯器

在2008~2010年我覺得這個編輯器算是挺風行的 可惜入行的晚 我大概是從2007開始進行研究 當時有一個很厲害的WEer(沒記錯應該是danny)寫了WE自學手冊 裡面有一句 "如果真的把這個編輯器摸透底,大概就可以在大學開一門課程了" 內行人幾乎都把它當作遊戲開發引擎來做 當然這個編輯器也會有些許bug(return bug),不過被專業人士拿來利用bug開發各種奇奇怪怪的東西 而這個編輯器也造就了MOBA遊戲的崛起 當然裡面也有程式語言,Jass,此程式幾乎沒有OO的概念,所以有一些國外的高手們把它擴充成Vjass跟Cjass,讓他幾乎等於C語言的程式風格 這對我們而言等於是一大福音阿,不過他還是慢慢沉淪,到了2013 2014算是快絕種了 但是這個編輯器上也有許多非常難實現的問題 1.如何取得技能的CD 2.如何精準的取得部隊的回魔回血速度 ...... 不過對整題而言,這個編輯器真的可以當作遊戲開發的引擎了 他可以匯入(.mdx 不知道有沒有記錯)的模組,利用3ds max 5 可以做出來的檔案 也因為這樣才有這麼精美的遊戲在地圖裡 DOTA、信長、三國、TD、一堆小遊戲 大遊戲 生存遊戲 團隊遊戲 對抗遊戲 當然我也有做過很多小遊戲,進而發現出遊戲一定的道理跟市場的方向 改天我會寫出對每個小遊戲的研究跟我訂定的方向還有困難之處 關於這個編輯器也算是我踏入資工界的墊腳石,也感謝之前跟我相處過的很多團隊 寫這篇文章主要目的不在於技術,而是在於緬懷這個以前的"夢想製造機" 因為這個編輯器讓我認識了很多有名的大人物,也都紛紛地踏入了遊戲界 雖然有人說遊戲界是個大泥坑,但是都陷下去了能怎麼樣呢? 哈,頂多滿身是傷吧 要感謝那時候跟小屁孩的我合作的人太多了 而讓我重新選擇的話我也會選擇這條路的,謝謝各位~

ACM生涯結束

在ACM這塊領域上宣布結束 沒有WF 也沒有後續  更不知是否可以傳承下去 感 謝老師隊友長年以來的cover,從菜鳥慢慢的進步,可惜大學太短暫了  轉眼間已經大三,是該衝個專題了  誠摯希望北科大能夠有個ACM團隊,雖然我知道一定還要很久,不過我們開這個頭應該算是滿漂亮了 接下來就只希望不要斷尾了  從以前就是個indie game developer,專題的話當然也要來個遊戲才對  ACM 掰

uva 10317

暴力剪枝就對了   一開始dfs弄錯了吃了WA,剪枝沒剪好TLE 最後終於AC了 /* * GCA : "Computer is artificial subject absolutely,Math is God" */ #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <cmath> #include <climits> #include <vector> #include <set> #include <map> #include <queue> #include <cctype> #include <utility> #include <ctime> using namespace std; #ifdef DEBUG #define VAR(a,b) __typeof(b) a=(b) #define debug(...) printf( "DEBUG: " ),printf(__VA_ARGS__) #else #define VAR(a,b) __typeof(b) a=(b) #define debug(...) #endif typedef unsigned int uint ; typedef long long int Int; typedef unsigned long long int UInt; #define Set(a,s) memset(a,s, sizeof (a)) #define Pln() printf( "\n" ) #define For(i,x) for ( int i=0;i<x;i++) #define CON(x,y) x##y #define M 20 #define PB push_back #define oo INT_MAX #define FOR(a,b) for (VAR(a,(b).begin());a!=(...