簡單易用的滑鼠連點程式...Facebook上面的小遊戲也適用,不會當機~
完全不占空間,沒有相容性問題...
只要是Windows就可以用...

finalfrank 發表在 痞客邦 留言(3) 人氣()

rub.jpg
在計算機圖學上有所謂的Rubberbanding
 
每畫下一次,就要把上一次的擦掉 否則會有殘影存在!
而這個動作要怎麼辦到呢?

finalfrank 發表在 痞客邦 留言(1) 人氣()

ortho.jpg
3D圖學引擎 OpenGL中
設定相機是一個不可或缺
但是又相當難懂的步驟
以下來說明~

finalfrank 發表在 痞客邦 留言(0) 人氣()


新建專案 -> Console Application -> 選 DLL File
1. 在 DLL 檔裡面要先 Define 這行!
#define DLL extern "C" __declspec(dllexport)
2. 開始在 DLL 檔裡面寫 Function !!
DLL int sum(int c){  return ++c; }
--------------------------------------DLL 檔寫完了
如何呼叫 DLL 檔裡面的 Function ?
在一個MFC程式中..
HINSTANCE hinstDLL=LoadLibrary(L"theDLL.dll"); //讀取 DLL
if(hinstDLL!=0){  //如果有找到 DLL 檔
   typedef int(__cdecl *Connect)(int i); //先宣告一下要連結的函式的prototype
   Connect Proc; //宣告一下連結用的Connect指標 (應該是指標吧!?)
   Proc = (Connect)GetProcAddress(hinstDLL,"sum"); //用Proc連結 DLL 中的函式
   int get=Proc(2); //開始使用DLL中的函式,注意DLL中的函式名稱從sum變成Proc了
   FreeLibrary(hinstDLL); //DLL用完沒有利用價值了,就可以扔了
   CString g;
   g.Format((CString)"%d",get);   //這三行是顯示函式回傳的值,應該是2+1=3 才對
   MessageBox(g);
}
else{ printf("找不到你的DLL檔啦!你放在哪裡!?"); }

finalfrank 發表在 痞客邦 留言(1) 人氣()


Pipeline
overlapping execution / Parallelism improves performance
if -> instruction fetch
id -> decode instruction and (read) register
ex -> execution (operation) and calculate address
mem -> (access memory operand)
wb -> write result back to register
hazards
1. Structure
require separate instruction/data memories or caches
2. Data
a.stall b.bypassing/forwarding c.scheduling
3. Control
a.stall b.prediction c.reduce branch time
SRAM / Cost Highest / Speed Fastest
DRAM / Cost Higher  / Speed Faster
Magnetic Disk / Cost the less / Speed slowest
cache
1. direct associated 2.set associated 3.fully associated
Write-through -> Updates both upper and lower hierarchy memory
Write-back -> Updates both upper hierarchy memory, and updates lower if needed
compulsory miss -> 一開始啟動時沒寫入資料 肯定會發生的miss情況 (cold start miss
)
capacity miss -> due to finite cache size
conflict miss -> due to not fully associated
virtual memory -> the main memory works as a "cache" of a magnetic disk
bit->byte->word->block->page
register->cache->memory->secondary magnetic disk
RAID 0 - No Redundancy
RAID 1 - Mirroring
RAID 2 - Error Detection and Correction Code
RAID 3 - Bit Parity Bit
RAID 4 - Block Parity Bit
RAID 5 - Distributed Block Parity Bit
RAID 6 - P+Q Redundancy

finalfrank 發表在 痞客邦 留言(0) 人氣()


#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
   char str[] = "This is a good example"; //要被分割的
   char *s = strtok(str, " "); //分割的判斷字元
   char *put[100]; //分割後放入新的字串陣列
   int s_count=0; //分幾個了
   while(s != NULL) {
     put[s_count++]=s;  //把分出來的丟進去 結果陣列
     s = strtok(NULL, " "); //我不知道 這行幹嘛
   }
   for(int x=0;x<s_count;x++) //驗收成果
      printf("%d %s\n",x,put[x]);
   system("pause");
   return 0;
 }
/*補充 其實改成 strtok(str," @"); 這樣的話
 即使是 This@is a good@example
  也會分成 "This" "is" "a" "good" "example" 了*/

finalfrank 發表在 痞客邦 留言(2) 人氣()

tree.GIF

 
-- 「到了末時,人來往奔跑,知識就增加。」(但以理書12章4節)
隨著時代的發展,世界上的學問越來越多。

finalfrank 發表在 痞客邦 留言(1) 人氣()


Program:放在二次儲存裝置中,尚沒有被Load到記憶體的一堆Code
         稱之為「程式」。  (也就是還是死的)
Process:已經被Load到記憶體中,任何一行Code隨時會被CPU執行,且其宣告的在記憶體
         的變數的值會隨著需求而不斷變動。
         稱之為「程序」。 (也就是活的Program) => 恐龍本第三章
         一個多工作業系統(Multitasking Operating System)可以同時運行多個Process
         然而一個CPU一次只能做一件事情,但CPU的數量永遠少於運行中的Process數,
         因此每個Process使用的時間需要被排程(Scheduling) => 恐龍本第五章
         又每個Process間在記憶體中,如果擺放的方式不當,就會在記憶體中產生很多
         沒辦法用到的碎片,因此MemoryManagement是一個問題 => 恐龍本第八章
         另外,每個Process所需要的記憶體總合,也可能大於實體記憶體,因此需要另
         外用二次儲存裝置充當虛擬記憶體(Virtual Memory),但是二次儲存裝置的速
         度肯定很慢,因此如何做到對虛擬記憶體最小的依賴,盡量避免Page Fault(電
         腦在主記憶體中找不到資料,而要去二次記憶體找,就稱為Page Fault)
         防止Thrashing的發生(因為Virtual Memory演算法不當,造成幾乎每次存取都要
         依賴二次記憶體,就是Thrashing),以達到效能最佳化,也是個學問 => 第九章
Thread :在同一個Process底下,有許多自己的分身,就是Thread,中文又翻成執行緒。
         以往一個Process一次只能做一件事情,因此要一面輸入文字,一面計算字數,
         這種事情是不可能的。但是有了Thread之後,可以在同一個Process底下,讓輸
         入文字是一個Thread,計算文字又是另外一個Thread,對CPU來說兩個都是類似
         一個Process,因此兩個可以同時做。
         又一個Process底下有數個Thread,而一個Process的Global Variable可以讓
         它的所有Thread共享,也就是所有Thread都可以存取同一個Process的Global
         Variable。而每個Thread自己也有自己的專屬Variable。 => 恐龍本第四章
         但是,如果有兩個Thread要存取同一個Global Variable,有可能發生問題,
         也就是說可能會存取到錯的值(例如兩個Thread同時要對一個Variable做加減,
         最後那個答案可能會是錯的),這就是Synchronization問題 =>恐龍本第六章
         又,每一個Thread之間可能會互搶資源,而造成死結(Deadlock),只要以下四
         個條件都滿足就有死結。(1)這個資源不能同時給兩個人用 (2)有一個人拿了一
         個資源,又想拿別人的資源 (3)如果一個人占了茅坑不拉屎,占用資源很久,仍
         不能趕他走 (4)A等B,B等C,C等D,D又等A 等成一圈。 要解決這種狀況有
         Avoid(預防) 或 避免(Prevent)兩種方式,破除以上四種其中一種即可。
         => 恐龍本第七章

finalfrank 發表在 痞客邦 留言(12) 人氣()








上一篇FinalFantasy的系統 用到了執行緒的概念 (multithreading)
但是執行緒必須配合其運行的作業系統才能使用
這次的DragonQuest並沒有使用到執行緒
所以其實在DOS底下就可以寫出一個模擬程式了
================================================
Dragon Quest的特點是「真正的回合制」
每一回合,必須在敵我雙方把指令都做完之後,才會發動
然後依據雙方的速度,去決定哪一個角色先動作
有趣的是,只要你下完指令之後,這一回合就是完全看電腦動畫表演給你看了
也就是一旦下完指令之後,你角色這一回合的生死就聽天由命啦!
================================================
在一回合開始的時候,指令選單會開啟,讓你去決定角色要做什麼動作
全部的角色都指定完動作之後,電腦就開始抓取各角色目前的速度值
例如抓到的速度值是

finalfrank 發表在 痞客邦 留言(2) 人氣()







finalfrank 發表在 痞客邦 留言(0) 人氣()

1. 電腦動畫,像是GIF格式,通常是一張一張換圖來達成,「循環不斷」的
   例如畫格是 1.2.3.4.5.1.2.3.4.5.1.2.3.4.... 這樣依序顯示
   請用一個最簡單的方法,讓數字可以依照 1.2.3.4.5.1.2.3.4.5.1.2.3.4.5....
   這樣的順序一直無止盡的循環下去。
2. 請用最簡單的方法,算出 2+4+6+8+10+12+...+n = ?
3. 如果你要寫一個射擊遊戲,畫面上的子彈可以顯示無限顆,直到記憶體用完,
   你的資料結構要怎麼設計?
4. 如果你在智慧型手機上寫一個連線遊戲,你會用TCP socket或UDP socket?
   請說出你的理由。
5. 使用pass by value和pass by address的好處壞處分別為何?
   假設經由pass by address傳送一個值到某個function裡面,
   我在該function裡面更改該值,在function外面的那個變數會不會跟著改變?
   (注意:以上都是local variable 非 global)
6. 將下列function改為遞迴形式:
   int get_ans(int n){
     int b=0;
     for(int a=n;a>=1;a--)
       b+=3;
     return b;
   }

finalfrank 發表在 痞客邦 留言(6) 人氣()

1.png




 

finalfrank 發表在 痞客邦 留言(0) 人氣()

Blog Stats
⚠️

成人內容提醒

本部落格內容僅限年滿十八歲者瀏覽。
若您未滿十八歲,請立即離開。

已滿十八歲者,亦請勿將內容提供給未成年人士。