本文章是用C++純字符打印來(lái)實(shí)現(xiàn)“我”與“鬼”的追趕游戲,主要是玩家操縱“我”來(lái)躲避“鬼”
創(chuàng)新互聯(lián)公司堅(jiān)信:善待客戶,將會(huì)成為終身客戶。我們能堅(jiān)持多年,是因?yàn)槲覀円恢笨芍档眯刨?。我們從不忽悠初訪客戶,我們用心做好本職工作,不忘初心,方得始終。十載網(wǎng)站建設(shè)經(jīng)驗(yàn)創(chuàng)新互聯(lián)公司是成都老牌網(wǎng)站營(yíng)銷(xiāo)服務(wù)商,為您提供成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、外貿(mào)營(yíng)銷(xiāo)網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、H5建站、網(wǎng)站制作、高端網(wǎng)站設(shè)計(jì)、成都微信小程序服務(wù),給眾多知名企業(yè)提供過(guò)好品質(zhì)的建站服務(wù)。1.思路
使用換行代表縱軸坐標(biāo),使用空格代表橫向坐標(biāo)
2.代碼實(shí)現(xiàn)
(1)頭文件
在這里我們沒(méi)有只用一個(gè)萬(wàn)能頭文件,因?yàn)槿f(wàn)能頭文件并不包含
#include//萬(wàn)能頭文件
#include//接收按鍵信息
using namespace std;
int main()
{return 0;
}
(2)變量(在主函數(shù)內(nèi))
int x=10,y=4,gx,gy;//xy表示“我”的坐標(biāo),gxgy表示“鬼”的坐標(biāo)
char yd;//檢測(cè)按鍵的變量
int sjs,a;
srand(time(0));//隨機(jī)數(shù)
sjs=rand()%10+1;//隨機(jī)數(shù)
gx=sjs*2;
gy=sjs*3;
cout<<"WASD移動(dòng),你的目標(biāo)是躲開(kāi)鬼離開(kāi)這個(gè)房間"<
(3)
接下來(lái)寫(xiě)一個(gè)死循環(huán),來(lái)支持程序運(yùn)行,注意,接下來(lái)的程序均在這個(gè)死循環(huán)當(dāng)中
for(int i=1;i>0;i++)
{}
(4)控制以及變量變化
這里主要涉及到的就是“鬼”追趕“我”的運(yùn)動(dòng)軌跡,對(duì)這兩者的坐標(biāo)計(jì)算,以及運(yùn)用到_getch()函數(shù)來(lái)接收鍵盤(pán)按鍵的信號(hào);(wasd移動(dòng))而這里調(diào)用系統(tǒng)指令“cls”,我們放到后續(xù)的代碼中講;
運(yùn)用if語(yǔ)句判斷按下的是什么上下左右鍵;
在代碼中“鬼”的追趕路徑尊崇著x軸(橫向)優(yōu)先
yd=_getch();//按下按鍵
system("cls");//清屏
if(yd=='w')
{ y--;
}
if(yd=='s')
{ y++;
}
if(yd=='a')
{ x--;
}
if(yd=='d')
{ x++;
}
if(gx gx++;
}
else
{ if(gx>x)
{ gx--;
}
else
{ if(gygy++;
}
else
{if(gy>y)
{gy--;
}
else
{cout<<"你輸了"; //兩個(gè)坐標(biāo)都==“我”的坐標(biāo),所以肯定是碰到鬼了
}
}
}
}
(5)打印字符
因?yàn)檫@個(gè)程序是純打印字符,所以我們需要判斷是鬼先輸出還是我先輸出,而判斷這個(gè)的唯一標(biāo)準(zhǔn)是縱軸(y)
縱軸在另外一個(gè)角色上的就先輸出,橫軸同理。
if(gy>y)
{ for(int iy=1;iy<=y;iy++)//這里的iy,ix都是用來(lái)造循環(huán)的
{ cout< cout<<" ";
}
cout<<"我";
for(int iy=1;iy<=gy-y;iy++)
{ cout< cout<<" ";
}
cout<<"鬼";
for(int ii=1;ii<=25-gy;ii++)//這里的目的就是為了填滿已打印出來(lái)的字符的剩余部分,不然運(yùn)行程序時(shí)人物就會(huì)一直在底下
{ cout<
接下來(lái)依舊是打印字符,上面那種情況是“鬼”的縱軸大于“我”的縱軸,接下來(lái)還要進(jìn)行x軸的判斷,以及“鬼”的縱軸等于“我”的縱軸,“鬼”的縱軸小于“我”的縱軸;
if(y==gy)
{ for(int iy=1;iy<=gy||iy<=y;iy++)
{ cout< for(int ix=1;ix<=x;ix++)
{cout<<" ";//這里用兩個(gè)空格是因?yàn)閷?shí)際上一個(gè)空格只有半個(gè)字符的寬度
}
cout<<"我";
for(int ix=1;ix<=gx-x;ix++)
{cout<<" ";
}
cout<<"鬼";
for(int ii=1;ii<=25-gy;ii++)
{cout< for(int ix=1;ix<=gx;ix++)
{cout<<" ";
}
cout<<"鬼";
for(int ix=1;ix<=x-gx;ix++)
{cout<<" ";
}
cout<<"我";
for(int ii=1;ii<=25-y;ii++)
{cout<
(6)判斷輸贏
我們已經(jīng)做好了“我”的移動(dòng)以及“鬼”的人機(jī)移動(dòng),接下來(lái)就是要加入一個(gè)門(mén),來(lái)判定“我”有沒(méi)有碰到“鬼”以及“我”有沒(méi)有走到門(mén),實(shí)現(xiàn)這個(gè)主要就是測(cè)量出門(mén)的xy坐標(biāo),鬼的xy坐標(biāo)是否與“我”的相同即可;
cout<<" 門(mén) ";
if(gy==y)//如果“鬼”和“我”的縱軸相等(這里可以采用gy==y&&gx==x)
{ if(gx==x)//如果“鬼”和“我”的橫軸相等
{ system("cls");//清屏,游戲結(jié)束
cout<<"你輸了";
}
}
if(x==24&&y==24)
{ for(int ii=1;ii<=25;ii++)
{ cout<
這樣到這里整個(gè)程序的開(kāi)發(fā)就完畢了,難度是很小的,只要掌握三種基本結(jié)構(gòu)基本就可以獨(dú)立完成這樣的一個(gè)小程序
接下來(lái)放出全代碼:
#include#includeusing namespace std;
int main()
{int x=10,y=6,gx,gy;
char yd;
int sjs,a;
srand(time(0));//隨機(jī)數(shù)
sjs=rand()%10+1;//隨機(jī)數(shù)
gx=sjs;
gy=sjs;
cout<<"WASD移動(dòng),你的目標(biāo)是躲開(kāi)鬼離開(kāi)這個(gè)房間"<=0;i++)
{yd=_getch();
system("cls");
if(yd=='w')
{ y--;
}
if(yd=='s')
{ y++;
}
if(yd=='a')
{ x--;
}
if(yd=='d')
{ x++;
}
if(gx gx++;
}
else
{ if(gx>x)
{ gx--;
}
else
{ if(gygy++;
}
else
{if(gy>y)
{gy--;
}
else
{cout<<"你輸了";
}
}
}
}
if(gy>y)
{ for(int iy=1;iy<=y;iy++)
{ cout< cout<<" ";
}
cout<<"我";
for(int iy=1;iy<=gy-y;iy++)
{ cout< cout<<" ";
}
cout<<"鬼";
for(int ii=1;ii<=25-gy;ii++)
{ cout<gy)
{ for(int iy=1;iy<=gy;iy++)
{ cout< cout<<" ";
}
cout<<"鬼";
for(int iy=1;iy<=y-gy;iy++)
{ cout< cout<<" ";
}
cout<<"我";
for(int ii=1;ii<=25-y;ii++)
{ cout< for(int iy=1;iy<=gy||iy<=y;iy++)
{ cout< for(int ix=1;ix<=x;ix++)
{cout<<" ";
}
cout<<"我";
for(int ix=1;ix<=gx-x;ix++)
{cout<<" ";
}
cout<<"鬼";
for(int ii=1;ii<=25-gy;ii++)
{cout< for(int ix=1;ix<=gx;ix++)
{cout<<" ";
}
cout<<"鬼";
for(int ix=1;ix<=x-gx;ix++)
{cout<<" ";
}
cout<<"我";
for(int ii=1;ii<=25-y;ii++)
{cout< if(gx==x)
{ system("cls");
cout<<"你輸了";
}
}
if(x==24&&y==24)
{ for(int ii=1;ii<=25;ii++)
{ cout<
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧
文章名稱:“我”與“鬼”追趕游戲-創(chuàng)新互聯(lián)
路徑分享:http://muchs.cn/article34/djgise.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管、網(wǎng)站策劃、網(wǎng)站設(shè)計(jì)、網(wǎng)站改版、定制開(kāi)發(fā)、網(wǎng)站設(shè)計(jì)公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容