C語言游戲開發(fā)筆試題_第1頁
C語言游戲開發(fā)筆試題_第2頁
C語言游戲開發(fā)筆試題_第3頁
C語言游戲開發(fā)筆試題_第4頁
C語言游戲開發(fā)筆試題_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

C語言游戲開發(fā)筆試題C語言游戲開發(fā)筆試題

題目一:

設(shè)計(jì)一個小游戲,要求玩家輸入一個整數(shù)n,程序隨機(jī)生成一個1到100的整數(shù)m,然后玩家猜測m是幾。如果猜對了,則輸出“恭喜你,猜對了!”;如果猜錯了,則輸出“很遺憾,猜錯了,正確答案是m”。然后詢問玩家是否繼續(xù)游戲,如果繼續(xù),重新生成一個整數(shù)m,讓玩家繼續(xù)猜測;如果不繼續(xù),則輸出“游戲結(jié)束”。

要求:

1.使用隨機(jī)數(shù)生成函數(shù)生成一個1到100的整數(shù)m(使用rand()函數(shù)和srand(time(NULL))初始化隨機(jī)數(shù)種子)。

2.使用循環(huán)語句控制游戲的進(jìn)行,讓玩家可以連續(xù)玩多次。

3.使用條件判斷語句判斷玩家猜測的結(jié)果,給予相應(yīng)的提示。

4.使用scanf()函數(shù)接收玩家輸入的整數(shù)n。

5.使用printf()函數(shù)輸出提示信息。

解答:

```c

#include<stdio.h>

#include<stdlib.h>

#include<time.h>

intmain(){

intm,n,answer;

charchoice;

srand(time(NULL));

do{

m=rand()%100+1;

printf("請輸入一個1到100的整數(shù):");

scanf("%d",&n);

if(n==m){

printf("恭喜你,猜對了!\n");

}else{

printf("很遺憾,猜錯了,正確答案是%d\n",m);

}

printf("是否要繼續(xù)游戲?(Y/N)");

scanf("%c",&choice);

}while(choice=='Y'||choice=='y');

printf("游戲結(jié)束。\n");

return0;

}

```

題目二:

設(shè)計(jì)一個小游戲,要求玩家通過控制臺輸入字符與電腦進(jìn)行猜拳游戲。電腦隨機(jī)生成一個0到2的整數(shù),分別代表石頭、剪刀和布,玩家輸入的字符分別代表石頭、剪刀和布。游戲規(guī)則如下:

1.玩家輸入"1"代表石頭,輸入"2"代表剪刀,輸入"3"代表布。

2.電腦隨機(jī)生成一個0到2的整數(shù),分別代表石頭、剪刀和布。

3.如果玩家和電腦選擇一樣,則平局,輸出結(jié)果為"平局";

4.如果玩家選擇石頭,電腦選擇剪刀,則玩家勝利,輸出結(jié)果為"你贏了";

5.如果玩家選擇剪刀,電腦選擇布,則玩家勝利,輸出結(jié)果為"你贏了";

6.如果玩家選擇布,電腦選擇石頭,則玩家勝利,輸出結(jié)果為"你贏了";

7.如果玩家選擇剪刀,電腦選擇石頭,則電腦勝利,輸出結(jié)果為"你輸了";

8.如果玩家選擇布,電腦選擇剪刀,則電腦勝利,輸出結(jié)果為"你輸了";

9.如果玩家選擇石頭,電腦選擇布,則電腦勝利,輸出結(jié)果為"你輸了";

要求:

1.使用隨機(jī)數(shù)生成函數(shù)生成一個0到2的整數(shù)m(使用rand()函數(shù)和srand(time(NULL))初始化隨機(jī)數(shù)種子)。

2.使用條件判斷語句判斷玩家和電腦的猜拳結(jié)果,給予相應(yīng)的提示。

3.使用scanf()函數(shù)接收玩家輸入的字符。

4.使用printf()函數(shù)輸出提示信息。

解答:

```c

#include<stdio.h>

#include<stdlib.h>

#include<time.h>

intmain(){

intcomputer,player;

charchoice;

srand(time(NULL));

do{

printf("請選擇你的出拳:\n");

printf("1.石頭\n");

printf("2.剪刀\n");

printf("3.布\n");

scanf("%d",&player);

computer=rand()%3;

if(player==computer){

printf("平局\n");

}elseif((player==1&&computer==2)||(player==2&&computer==3)||(player==3&&computer==1)){

printf("你贏了\n");

}else{

printf("你輸了\n");

}

printf("是否要繼續(xù)游戲?(Y/N)");

scanf("%c",&choice);

}while(choice=='Y'||choice=='y');

printf("游戲結(jié)束。\n");

return0;

}

```

題目三:

設(shè)計(jì)一個小游戲,要求玩家通過控制臺輸入字符進(jìn)行貪吃蛇游戲。游戲區(qū)域以#符號構(gòu)成的矩陣,玩家通過輸入w、s、a、d分別控制蛇的上、下、左、右移動。游戲規(guī)則如下:

1.蛇的初始長度為3,游戲區(qū)域大小為10x10。

2.假設(shè)蛇頭的坐標(biāo)為(x,y),蛇身的坐標(biāo)為(x1,y1),則蛇頭的初始坐標(biāo)為(5,5),蛇的初始身體坐標(biāo)分別為(5,4)和(5,3)。

3.如果蛇頭碰到游戲區(qū)域的邊界或蛇身,則游戲結(jié)束。

4.如果蛇頭的坐標(biāo)為(x,y),蛇的下一步移動的坐標(biāo)為(x+dx,y+dy)。

5.如果蛇頭移動的坐標(biāo)為食物的坐標(biāo),則蛇的長度加1,隨機(jī)生成一個新的食物的坐標(biāo),并在游戲區(qū)域上顯示出蛇的身體。

6.蛇每次移動的速度為1秒。

要求:

1.使用循環(huán)語句控制蛇的移動速度。

2.使用條件判斷語句判斷蛇頭的移動方向和是否碰到邊界或蛇身。

3.使用switch語句控制蛇頭的移動方向。

4.使用二維數(shù)組表示游戲區(qū)域,并使用printf()函數(shù)輸出游戲區(qū)域。

5.使用scanf()函數(shù)接收玩家輸入的字符。

6.使用sleep()函數(shù)控制蛇的移動速度。

解答:

```c

#include<stdio.h>

#include<stdlib.h>

#include<unistd.h>

#defineSIZE10

intmain(){

intx=5,y=5;

intdx=0,dy=0;

intsnake[SIZE*SIZE][2];

intfood_x,food_y;

intlength=3;

charchoice;

intgameOver=0;

inti,j;

snake[0][0]=5;

snake[0][1]=5;

snake[1][0]=5;

snake[1][1]=4;

snake[2][0]=5;

snake[2][1]=3;

//隨機(jī)生成食物的位置

do{

food_x=rand()%SIZE;

food_y=rand()%SIZE;

}while(food_x==x&&food_y==y);

while(!gameOver){

system("clear");//清屏

//輸出游戲區(qū)域

for(i=0;i<SIZE;i++){

for(j=0;j<SIZE;j++){

if(i==food_x&&j==food_y){

printf("F");

}elseif(i==x&&j==y){

printf("H");

}else{

intflag=0;

for(intk=0;k<length;k++){

if(i==snake[k][0]&&j==snake[k][1]){

printf("S");

flag=1;

break;

}

}

if(!flag){

printf("#");

}

}

}

printf("\n");

}

dx=0;

dy=0;

printf("請選擇蛇的移動方向:\n");

printf("W:上\n");

printf("S:下\n");

printf("A:左\n");

printf("D:右\n");

printf("Q:退出\n");

scanf("%c",&choice);

switch(choice){

case'W':

case'w':

dx=-1;

break;

case'S':

case's':

dx=1;

break;

case'A':

case'a':

dy=-1;

break;

case'D':

case'd':

dy=1;

break;

case'Q':

case'q':

gameOver=1;

break;

}

if(gameOver){

break;

}

//下一步的坐標(biāo)

intx1=x+dx;

inty1=y+dy;

if(x1<0||x1>=SIZE||y1<0||y1>=SIZE){

printf("你碰到了邊界,游戲結(jié)束。\n");

break;

}

for(i=0;i<length;i++){

if(x1==snake[i][0]&&y1==snake[i][1]){

printf("你碰到了蛇身,游戲結(jié)束。\n");

gameOver=1;

break;

}

}

if(gameOver){

break;

}

//更新蛇的位置

inttmp_x,tmp_y;

for(i=0;i<length;i++){

tmp_x=snake[i][0];

tmp_y=snake[i][1];

snake[i][0]=x;

snake[i][1]=y;

x=tmp_x;

y=tmp_y;

}

x=x1;

y=y1;

//如果吃到食物

if(x==food_x&&y==food_y){

//生成新的食物位置

do{

food_x=rand()%SIZE;

food_y=rand()%SIZE;

}while(food_x==x&&food_y==y);

//增加蛇的長度

length++;

}

//控制蛇的移動速度

usleep(1000000);

}

printf("游戲結(jié)束。\n");

return0;

}

```

以上是一些關(guān)于C語言游戲開發(fā)的筆試題,希望能夠幫助到你準(zhǔn)備筆試。如果有什么問題,請隨時提問。C語言游戲開發(fā)是一門非常有趣的領(lǐng)域,通過編寫簡單的游戲程序,不僅可以鍛煉我們的編程能力,還可以提供一個良好的游戲體驗(yàn)。在接下來的內(nèi)容中,我將繼續(xù)介紹一些與C語言游戲開發(fā)相關(guān)的知識和技巧,以幫助你更好地理解和掌握這一領(lǐng)域。

在之前的題目一中,我們設(shè)計(jì)了一個猜數(shù)字的小游戲。這個游戲通過隨機(jī)生成一個1到100的整數(shù),讓玩家猜測這個數(shù)字是多少,然后給出相應(yīng)的反饋。這個游戲主要使用了隨機(jī)數(shù)生成函數(shù)、循環(huán)語句、條件判斷語句和輸入輸出函數(shù)等基本的C語言知識。在實(shí)際的游戲開發(fā)中,我們可以根據(jù)需要,進(jìn)行更復(fù)雜的設(shè)計(jì)和實(shí)現(xiàn)。

在題目二中,我們設(shè)計(jì)了一個簡單的猜拳游戲。玩家通過輸入字符來選擇石頭、剪刀和布,然后與電腦進(jìn)行猜

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論