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

下載本文檔

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

文檔簡(jiǎn)介

C語(yǔ)言游戲開(kāi)發(fā)筆試題C語(yǔ)言游戲開(kāi)發(fā)筆試題

題目一:

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

要求:

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

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

3.使用條件判斷語(yǔ)句判斷玩家猜測(cè)的結(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("請(qǐng)輸入一個(gè)1到100的整數(shù):");

scanf("%d",&n);

if(n==m){

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

}else{

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

}

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

scanf("%c",&choice);

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

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

return0;

}

```

題目二:

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

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

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

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

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

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

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

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

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

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

要求:

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

2.使用條件判斷語(yǔ)句判斷玩家和電腦的猜拳結(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("請(qǐng)選擇你的出拳:\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ì)一個(gè)小游戲,要求玩家通過(guò)控制臺(tái)輸入字符進(jìn)行貪吃蛇游戲。游戲區(qū)域以#符號(hào)構(gòu)成的矩陣,玩家通過(guò)輸入w、s、a、d分別控制蛇的上、下、左、右移動(dòng)。游戲規(guī)則如下:

1.蛇的初始長(zhǎng)度為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),蛇的下一步移動(dòng)的坐標(biāo)為(x+dx,y+dy)。

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

6.蛇每次移動(dòng)的速度為1秒。

要求:

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

2.使用條件判斷語(yǔ)句判斷蛇頭的移動(dòng)方向和是否碰到邊界或蛇身。

3.使用switch語(yǔ)句控制蛇頭的移動(dòng)方向。

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

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

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

解答:

```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("請(qǐng)選擇蛇的移動(dòng)方向:\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);

//增加蛇的長(zhǎng)度

length++;

}

//控制蛇的移動(dòng)速度

usleep(1000000);

}

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

return0;

}

```

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

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

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

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論