遊戲公司面面試題.

來源:互聯網
上載者:User

/////////////////////////////////////////////////////////////////////////////////
數學:空間幾何裡的向量點積,叉積
         有一道題是這樣的,20分。已知三角形三點座標,法線座標,判斷一點P(x,y,z)是不是在這個三角形內。就是要寫個bool型傳回值的函數。
        
圖形:RGB值的轉化,24bit的轉化為16bit的。
C++: 考察多態,dynamic_cast這個操作符,一定要看看《C++ primer 》上面關於這個操作符 的程式。(10分是有的)
       先寫這些吧!兄弟現在還在上海,估計是沒什麼希望,回去好好學學,英雄從頭再來吧!
最好是作個像樣的東西,否則沒說服力!
       共勉! 

/////////////////////////////////////////////////////////////////////////////////
如果目標職位是用戶端程式員:DirectX   相關知識,位元影像處理相關知識,介面相關知識,反外掛相關知識,資料結構,尋路演算法原理等等。  
  如果目標職位是服務端程式員:socket,完成連接埠,非同步   I/O,線程與同步,資料庫等等。  
  如果目標職位是主程式員:系統架構,軟體工程,設計模式,代碼管理,版本控制,指令碼相關知識等等。

/////////////////////////////////////////////////////////////////////////////////
一個遊戲公司的面試題(上)

原題如下--

考題:開發一個小程式
要求:
1。反映自己的真實水平
2。有設計文檔和注釋,以及開發週期和迭帶周期
3。在任何操作下都不會出現非法操作
4。沒有資源泄漏
5。正規的編碼格式:如四格縮行
6。使用C++(最好使用微軟的開發工具)
7。使用物件導向或更新的範型開發
8。如果使用架構模式,設計模式,慣用法,請標註在代碼裡或文檔裡
9。代碼直觀,能輕易讀懂,能方便的修改和擴充

(請不要使用MFC,ATL,WTL等現成的架構,使用WIN32 API,但是使用STL,
  BOOST等C++通用庫是會提高得分,但是前提是使用正確)
程式開發步驟:
1。建立一個最基本的window程式
2。建立一個視窗,視窗title名稱為"筆試",視窗風格為WS_OVERLAPPEDWINDOW,
   客戶區大小為800*600,並建立訊息迴圈
3。修改訊息迴圈能使用idle時間(CPU空閑時間),請不要使用TIMER。
4。在視窗客戶區(0,0)處上顯示一張圖片"bg.bmp"(畫圖可以使用GDI,也可以
   使用其他庫,如風魂)
5。按下數字鍵1,會在"spriteX.bmp"裡隨機載入一張圖片,該圖片會在客戶區
   一個隨機的位置開始做水平平移運動,但不會飛出客戶區,也就是說會被窗
   口邊框彈回。
6。按下數字鍵2,會在"spriteX.bmp"裡隨機載入一張圖片,該圖片會在客戶區
   一個隨機的位置開始做上下平移運動,但不會飛出客戶區,也就是說會被窗
   口邊框彈回。
7。按下數字鍵3,會在"spriteX.bmp"裡隨機載入一張圖片,該圖片會在客戶區
   一個隨機的位置開始以隨機方向開始作平移運動,但不會飛出客戶區,也就
   是說會被視窗邊框彈回。
8。用滑鼠左鍵點擊,如果點擊到飛行的圖片,那麼彈出一個對話方塊,顯示
   被點擊圖片的名字(注意,顯示名稱的圖片一定是飛在最上層的圖片)
9。按下滑鼠右鍵,所有飛行圖片都往滑鼠按下點移動,而且當滑鼠移動的
   話會跟隨移動,但是還是不能移動出邊框。放開滑鼠右鍵,所有圖片就
   繼續按他們原來的規則作運動,如以前是按下數字鍵1建立的圖片,那麼繼續
   作水平平移運動,如以前是按下數字鍵2建立的圖片,那麼繼續作上下平移運動。

注意:程式的啟動並執行效率是次要的,主要的考察點是程式的結構和開發的習慣。

我們提供的有:
程式啟動並執行樣圖,程式需要使用的圖片資源

 

--目前只作出單張的效果
http://blog.csdn.net/Lsaint/archive/2006/06/24/830510.aspx

///////////////////////////////////////////////////////////
1、
三維點類
 class FVector3
{
    public:
           float getX();
           float getY();
           float getZ();

           void  Normalize(const FVector3 inP,FVector3 outP);
           void  Dot(const FVector3 inP,float outResult);
           void  Sub(const FVector3 inP,FVector3 outP);
           void  Add(const FVector3 inP,FVector3 outP);
}
線段類
class segment
{
      public:
             FVector3 getP1();
             FVector3 getP2();

             void getClosestPoint(const FVector3 inP,FVector3 outP);
}
要求:實現函數void getClosestPoint(const FVector3 inP,FVector3 outP);
輸入一個三維點Q,返回這個點離的最近的線段的那個點P。
思路:
1:求出過該點Q且法線與線段同向的平面方程.
2:求出線段於該平面的交點.

2、數學,圖形學問題
   在二維平面中,如何判斷一個點是否位於三角形中?
// :注,這個問題在我的3D遊戲開發版塊中已有解決方案呈現.

/////////////////////////////////////////////////////////////////
摔XBOX.
http://dzh.mop.com/mainFrame.jsp?url=http://dzh.mop.com/topic/readSub_5779391_0_0.html
你在一幢100層的辦公樓裡上班,現在給你2台xbox,要求你用儘可能少的試摔次數來判斷xbox摔不壞的最高樓層層數,當然要考慮到最壞的情況。
比方說,從30層丟下來沒問題,但從31層丟下來就不保了。(在摸索過程中,允許把兩台xbox都砸爛。)

撲(18):從2樓開始,用反著的2分法,如果摔壞了,就在從第上次沒摔壞的樓開始一層層的開始摔。恩,我答對了吧。

2 , 4, 8,8樓壞了,從4樓開始一層層開始

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.