版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年企業(yè)用工勞動(dòng)合同例文(二篇)
- 經(jīng)濟(jì)解約合同(2篇)
- 2024年個(gè)人裝修合同格式范本(二篇)
- 消防工程維修合同(2篇)
- 2024年環(huán)境評(píng)估與監(jiān)測(cè)服務(wù)項(xiàng)目規(guī)劃申請(qǐng)報(bào)告樣稿
- 公司內(nèi)部審計(jì)質(zhì)量控制研究
- 新形勢(shì)下公共就業(yè)服務(wù)發(fā)展初探
- 急診科至ICU危重病人轉(zhuǎn)運(yùn)演練
- 秋天的懷念課件教學(xué)
- 53模擬試卷初中數(shù)學(xué)八年級(jí)下冊(cè)01專項(xiàng)素養(yǎng)綜合全練(一)
- 電力綠色轉(zhuǎn)型:綠色電力市場(chǎng)的實(shí)踐與思考
- 《林教頭風(fēng)雪山神廟》名師課件2
- GB/T 44236-2024增材制造用鎳鈦合金粉
- 2024-2025學(xué)年人教版一年級(jí)數(shù)學(xué)上冊(cè) 第二單元測(cè)試卷
- 2024-2025學(xué)年八年級(jí)物理上冊(cè) 3.2 熔化和凝固教學(xué)設(shè)計(jì)(新版)新人教版
- 蘇教版英語(yǔ)小學(xué)四年級(jí)上學(xué)期2024年復(fù)習(xí)試卷及解答參考
- 2024年初級(jí)銀行從業(yè)資格《個(gè)人理財(cái)》考試試題
- 2024年新蘇教版六年級(jí)上冊(cè)科學(xué)全冊(cè)知識(shí)點(diǎn)(超全)
- 2024年全國(guó)電力安全生產(chǎn)與應(yīng)急管理知識(shí)競(jìng)賽考試題庫(kù)
- 2024-2030年中國(guó)服務(wù)外包行業(yè)市場(chǎng)深度調(diào)研及發(fā)展趨勢(shì)與投資前景研究報(bào)告
- 七年級(jí)體育與健康下冊(cè) 蹲踞式跳遠(yuǎn) 助跑與起跳教案
評(píng)論
0/150
提交評(píng)論