1. 程式人生 > >用C++語言寫遊戲——打怪小遊戲

用C++語言寫遊戲——打怪小遊戲

想玩遊戲嗎?

就到某位神犇這來吧!

這會告訴你很多遊戲寫法!

今天,神犇就開始書寫第二期——打怪小遊戲!!!

很容易,只需要用腦袋想想即可,READY——GO!

我也希望大家多多捧場哦~~~

有一點點BUG,敬請諒解!

#include <iostream> 
using namespace std; 
double shengmingli=2000;//定義主角初始生命力 
int gongjili=150;//定義主角初始攻擊力 
int fangyuli=200;//定義主角初始防禦力 
int money=20;//定義主角初始金錢數量 
bool guoguan;//定義是否通關判定 
void wuqidian();//定義武器店函式 
void yaodian();//定義藥店函式 
void guaiwu1();//定義小怪物函式 
void guaiwu2();//定義大怪物函式 
int main() 
{ 
cout<<"歡迎你開始玩打怪物小遊戲!\n"; 
cout<<"小鎮\n"; 
cout<<"一個1000年的小鎮。周圍有一條河,有一片樹林,很多房子和很多人。\n有一家藥店"<<endl; 
cout<<"和一家武器店。\n"; 
int xiaozhen;//定義選擇專案 
cout<<"1.去武器店"<<endl; 
cout<<"2.去藥品店"<<endl; 
cout<<"3.去打小怪物"<<endl; 
cout<<"4.去打大怪物"<<endl; 
cout<<"5.退出遊戲"<<endl; 
cout<<"6.顯示你的狀態"<<endl; 
cin>>xiaozhen; 
while(xiaozhen!=5)//輸入5時退出遊戲 
{ 
if(shengmingli<=0)//主角生命力小於等於0時遊戲結束 
{ 
cout<<"你死啦!"<<endl; 
break; 
} 
if(guoguan) 
{ 
cout<<"恭喜通關!"<<endl; 
break; 
} 
if(xiaozhen==6)//輸入6可檢測自己的狀態 
{ 
cout<<"你的生命力:"<<shengmingli<<endl; 
cout<<"你的攻擊力:"<<gongjili<<endl; 
cout<<"你的防禦力:"<<fangyuli<<endl; 
cout<<"你擁有的錢:"<<money<<endl; 
} 
else 
switch(xiaozhen) 
{ 
case 1 : wuqidian();break; 
case 2 : yaodian();break; 
case 3 : guaiwu1();break; 
case 4 : guaiwu2();break; 
default : cout<<"請不要亂選!"<<endl;break; 
} 
cin>>xiaozhen; 
} 
if(xiaozhen==5) 
{ 
cout<<"正在退出遊戲……"<<endl; 
} 
cin.get(); 
cin.get(); 
return 0; 
} 
void wuqidian() 
{ 
cout<<"歡迎來到武器店!"<<endl; 
cout<<"1、買小刀(1M加2攻擊力)"<<endl; 
cout<<"2、買短劍(2M加20攻擊力)"<<endl; 
cout<<"3、買大砍刀(5M加40攻擊力)"<<endl; 
cout<<"4、買雙節棍(7M加60攻擊力)"<<endl; 
cout<<"5、買盾牌(2M加30防禦力)"<<endl; 
cout<<"6、買鎧甲(5M加60防禦力)"<<endl; 
cout<<"7、離開武器店"<<endl; 
int wuqidian; 
cin>>wuqidian; 
while(wuqidian!=7)//輸入7時結束函式 
{ 
switch(wuqidian) 
{ 
case 1 : if(money<10) 
cout<<"你的錢不夠"<<endl;//錢不夠時返回Flase 
else  
cout<<"購買成功!"<<endl;//錢足夠時返回True 
gongjili+=2; 
money-=1; 
break; 
case 2 : if(money<80) 
cout<<"你的錢不夠"<<endl; 
else  
cout<<"購買成功!"<<endl; 
gongjili+=20; 
money-=80; 
break; 
case 3 : if(money<140) 
cout<<"你的錢不夠"<<endl; 
    else  
cout<<"購買成功!"<<endl; 
gongjili+=40; 
money-=140; 
break; 
case 4 : if(money<200) 
cout<<"你的錢不夠"<<endl; 
else  
cout<<"購買成功!"<<endl; 
gongjili+=60; 
money-=200; 
break; 
case 5 : if(money<60) 
cout<<"你的錢不夠"<<endl; 
else  
cout<<"購買成功!"<<endl; 
fangyuli+=30; 
money-=60; 
break; 
fangyuli+=60; 
money-=100; 
break; 
default : cout<<"無"<<endl; 
    break; 
}  
cin>>wuqidian; 
} 
if(wuqidian==7) 
{	  //返回main()主函式 
cout<<"歡迎下次再來!"<<endl; 
cout<<"歡迎你開始玩打怪物小遊戲!\n"; 
cout<<"小鎮\n"; 
cout<<"一個1000年的小鎮。周圍有一條河,有一片樹林,很多房子和很多人。\n有一家藥店"<<endl; 
cout<<"和一家武器店。\n"; 
cout<<"1.去武器店"<<endl; 
cout<<"2.去藥品店"<<endl; 
cout<<"3.去打小怪物"<<endl; 
cout<<"4.去打大怪物"<<endl; 
cout<<"5.退出遊戲"<<endl; 
cout<<"6.顯示你的狀態"<<endl; 
} 
} 
/* 
yaodian()的設定與wuqidian()相同,可參照閱讀. 
*/ 
void yaodian() 
{ 
cout<<"歡迎來到藥品店!"<<endl; 
cout<<"1、買1號補血藥(10M加200生命)"<<endl; 
cout<<"2、買2號補血藥(50M加1000生命力)"<<endl; 
cout<<"3、買3號補血藥(100M加2200生命力)"<<endl; 
cout<<"4、離開武器店"<<endl; 
int yaodian; 
cin>>yaodian; 
while(yaodian!=4) 
{ 
switch(yaodian) 
{ 
case 1 : if(money<10) 
cout<<"你的錢不夠"<<endl; 
else  
cout<<"購買成功!"<<endl; 
shengmingli+=200; 
money-=10; 
break; 
case 2 : if(money<50) 
cout<<"你的錢不夠"<<endl; 
else  
cout<<"購買成功!"<<endl; 
shengmingli+=1000; 
money-=50; 
break; 
case 3 : if(money<100) 
cout<<"你的錢不夠"<<endl; 
else  
cout<<"購買成功!"<<endl; 
shengmingli+=2200; 
money-=100; 
break; 
default : cout<<"無"<<endl; 
break; 
} 
cin>>yaodian; 
} 
if(yaodian==4) 
{	   
cout<<"歡迎下次再來!"<<endl;	   
cout<<"歡迎你開始玩打怪物小遊戲!\n"; 
cout<<"小鎮\n"; 
cout<<"一個1000年的小鎮。周圍有一條河,有一片樹林,很多房子和很多人。\n有一家藥店"<<endl; 
cout<<"和一家武器店。\n"; 
cout<<"1.去武器店"<<endl; 
cout<<"2.去藥品店"<<endl; 
cout<<"3.去打小怪物"<<endl; 
cout<<"4.去打大怪物"<<endl; 
cout<<"5.退出遊戲"<<endl; 
cout<<"6.顯示你的狀態"<<endl; 
} 
} 
/*這裡是兩個戰鬥函式,使用指標來處理.避免造成記憶體崩潰.*/ 
void guaiwu1() 
{ 
cout<<"開始與小怪物戰鬥!!!"<<endl; 
double* g_shengmingli=new double;//定義怪物生命 
int* g_gongjili=new int;//定義怪物攻擊力 
int* g_fangyuli=new int;//定義怪物防禦力 
    int* g_money=new int;//定義怪物金錢 
*g_shengmingli=100; 
*g_gongjili=5; 
*g_fangyuli=3; 
*g_money=5; 
double* tongji1=new double;//用來計算主角對怪物的殺傷 
double* tongji2=new double;//用來計算怪物對主角的殺傷 
*tongji1=0; 
*tongji2=0; 
int* huihe=new int;//定義回合數 
*huihe=1; 
cout<<"你開始對小怪物進行攻擊!"<<endl; 
int* xuanze=new int; 
/* 
攻擊計算公式 
殺傷=攻擊力*2-防禦力 
玩家每回合可以選擇攻擊與逃跑 
*/ 
while((*g_shengmingli)>0 && shengmingli>0 && (*xuanze)!=2) 
{ 
cout<<"現在是"<<"第"<<*huihe<<"回合!"<<endl; 
cout<<"請選擇你的動作:\n"; 
cout<<"1、攻擊\n2、逃跑\n"; 
cin>>*xuanze; 
switch((*xuanze)) 
{ 
case 1 : cout<<"你對小怪物發動了攻擊!"<<endl; 
*g_shengmingli-=gongjili*2-(*g_fangyuli); 
*tongji1=gongjili*2-(*g_fangyuli); 
cout<<"你打掉了小怪物"<<*tongji1<<"的生命!"<<endl; 
cout<<"小怪物還剩"<<(*g_shengmingli)-(*tongji1)<<"點生命"<<endl; 
shengmingli-=(*g_gongjili)*2-fangyuli; 
*tongji2=(*g_gongjili)*2-fangyuli; 
cout<<"小怪物對你發動了攻擊!"<<endl; 
cout<<"小怪物打掉了你"<<*tongji2<<"的生命!"<<endl; 
cout<<"你還剩"<<shengmingli-(*tongji2)<<"點生命"<<endl;break; 
case 2 : cout<<"你決定逃跑!"<<endl; 
cout<<"逃跑成功!"<<endl;continue; 
default : cout<<"請不要亂選!"<<endl; 
} 
(*huihe)++; 
} 
if((*g_shengmingli)<=0) 
{//殺死怪物後的返回 
cout<<"小怪物被你殺死了!你真厲害!!!"<<endl; 
money+=(*g_money); 
cout<<"歡迎你開始玩打怪物小遊戲!\n"; 
cout<<"小鎮\n"; 
cout<<"一個1000年的小鎮。周圍有一條河,有一片樹林,很多房子和很多人。\n有一家藥店"<<endl; 
cout<<"和一家武器店。\n"; 
cout<<"1.去武器店"<<endl; 
cout<<"2.去藥品店"<<endl; 
cout<<"3.去打小怪物"<<endl; 
cout<<"4.去打大怪物"<<endl; 
cout<<"5.退出遊戲"<<endl; 
cout<<"6.顯示你的狀態"<<endl; 
} 
else 
if(shengmingli<=0) 
{//被怪物殺死後的返回 
cout<<"你被小怪物殺死了!遊戲結束!!!"<<endl; 
} 
else 
if((*xuanze)==2) 
{//逃跑的返回 
cout<<"你逃回了小鎮!"<<endl; 
cout<<"歡迎你開始玩打怪物小遊戲!\n"; 
cout<<"小鎮\n"; 
cout<<"一個1000年的小鎮。周圍有一條河,有一片樹林,很多房子和很多人。\n有一家藥店"<<endl; 
cout<<"和一家武器店。\n"; 
cout<<"1.去武器店"<<endl; 
cout<<"2.去藥品店"<<endl; 
cout<<"3.去打小怪物"<<endl; 
cout<<"4.去打大怪物"<<endl; 
cout<<"5.退出遊戲"<<endl; 
cout<<"6.顯示你的狀態"<<endl; 
} 
delete g_shengmingli; 
delete g_gongjili; 
delete g_fangyuli; 
delete g_money; 
delete tongji1; 
delete tongji2; 
} 
/* 
設定均與void函式guaiwu1()相同,可參照上例閱讀. 
*/ 
void guaiwu2() 
{ 
cout<<"開始與大怪物戰鬥!!!"<<endl; 
double* g_shengmingli=new double; 
int* g_gongjili=new int; 
int* g_fangyuli=new int; 
*g_shengmingli=3600; 
*g_gongjili=500; 
*g_fangyuli=500; 
double* tongji1=new double; 
double* tongji2=new double; 
*tongji1=0; 
*tongji2=0; 
int* huihe=new int; 
*huihe=1; 
cout<<"你開始對大怪物進行攻擊!"<<endl; 
int* xuanze=new int; 
while((*g_shengmingli)>0 && shengmingli>0 && (*xuanze)!=2) 
{ 
cout<<"現在是"<<"第"<<*huihe<<"回合!"<<endl; 
cout<<"請選擇你的動作:\n"; 
cout<<"1、攻擊\n2、逃跑\n"; 
cin>>*xuanze; 
switch((*xuanze)) 
{ 
case 1 : cout<<"你對大怪物發動了攻擊!"<<endl; 
*g_shengmingli-=gongjili*2-(*g_fangyuli); 
*tongji1=gongjili*2-(*g_fangyuli); 
cout<<"你打掉了大怪物"<<*tongji1<<"的生命!"<<endl; 
cout<<"大怪物還剩"<<(*g_shengmingli)-(*tongji1)<<"點生命"<<endl; 
shengmingli-=(*g_gongjili)*2-fangyuli; 
*tongji2=(*g_gongjili)*2-fangyuli; 
cout<<"大怪物對你發動了攻擊!"<<endl; 
cout<<"大怪物打掉了你"<<*tongji2<<"的生命!"<<endl; 
cout<<"你還剩"<<shengmingli-(*tongji2)<<"點生命"<<endl;break; 
case 2 : cout<<"你決定逃跑!"<<endl; 
cout<<"逃跑成功!"<<endl;continue; 
default : cout<<"請不要亂選!"<<endl; 
} 
(*huihe)++; 
} 
if((*g_shengmingli)<=0) 
{ 
    cout<<"大怪物被你殺死了!你真厲害!!!"<<endl; 
guoguan=true; 
cout<<"歡迎你開始玩打怪物小遊戲!\n"; 
cout<<"小鎮\n"; 
cout<<"一個1000年的小鎮。周圍有一條河,有一片樹林,很多房子和很多人。\n有一家藥店"<<endl; 
cout<<"和一家武器店。\n"; 
cout<<"1.去武器店"<<endl; 
cout<<"2.去藥品店"<<endl; 
cout<<"3.去打小怪物"<<endl; 
cout<<"4.去打大怪物"<<endl; 
cout<<"5.退出遊戲"<<endl; 
cout<<"6.顯示你的狀態"<<endl; 
} 
else 
if(shengmingli<=0) 
{ 
cout<<"你被大怪物殺死了!遊戲結束!!!"<<endl; 
} 
else 
if((*xuanze)==2) 
{ 
cout<<"你逃回了小鎮!"<<endl; 
cout<<"歡迎你開始玩打怪物小遊戲!\n"; 
cout<<"小鎮\n"; 
cout<<"一個1000年的小鎮。周圍有一條河,有一片樹林,很多房子和很多人。\n有一家藥店"<<endl; 
cout<<"和一家武器店。\n"; 
cout<<"1.去武器店"<<endl; 
cout<<"2.去藥品店"<<endl; 
cout<<"3.去打小怪物"<<endl; 
cout<<"4.去打大怪物"<<endl; 
cout<<"5.退出遊戲"<<endl; 
cout<<"6.顯示你的狀態"<<endl; 
} 
delete g_shengmingli; 
delete g_gongjili; 
delete g_fangyuli; 
delete tongji1; 
delete tongji2; 
}
容易吧!只需用c++執行即可,這樣,你就可以盡情裝B了!!!

希望你可以一直追蹤哦~~~

相關推薦

C++語言遊戲——遊戲

想玩遊戲嗎? 就到某位神犇這來吧! 這會告訴你很多遊戲寫法! 今天,神犇就開始書寫第二期——打怪小遊戲!!! 很容易,只需要用腦袋想想即可,READY——GO! 我也希望大家多多捧場哦~~~ 有一點點BUG,敬請諒解! #include <iostre

C語言一個簡單的掃雷遊戲

#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <windows.h> #include <time.h> /* 用 C 語言寫一個簡單的掃雷遊戲 */ // 1.寫一個遊戲選單 M

C++語言遊戲——飛機

想玩遊戲嗎? 就到某位神犇這來吧! 這會告訴你很多遊戲寫法! 今天,神犇就開始書寫第三期——打飛機!!! 很容易,只需要用腦袋想想即可,READY——GO! 我也希望大家多多捧場哦~~~ #include<iostream> #include<

c語言一個猜數字遊戲

#include <time.h> #include <stdlib.h> void menu() {  printf("******歡迎進入猜數字遊戲*****\n");  printf("******   1. 開始遊戲    *****\n")

C語言一個好玩的寶石一樣的圖像

循環圖像圖形#include<stdio.h>main(){int n;scanf("%d",&n); for(int i=0;i<n;i++) { for(int j=0;j<n-i-1;j++) { printf(" ")

怎麽C語言一個飛機程序

sge 怎麽 das mob gpl hdd ref dhx cte 5zeffurgal誥退俁稼犢爍厝擋傅鼓《http://weibo.com/p/230927987816857564094464》 wv8kbiqhdd壁溉斡吠戎琴痛鋼匙谷《http://weibo.c

自己C語言RL78 serial bootloader

      瞭解更多關於bootloader 的C語言實現,請加我QQ: 1273623966 (驗證資訊請填 bootloader),歡迎諮詢或定製bootloader(線上升級程式)。   之前用C實現過多款PIC微控制器的bootloader, 包括8-bit的PIC16,PIC18;16-bit的P

懶癌晚期學圖論的時候自己C語言了個求可達性矩陣的演算法~

可達性矩陣演算法~ 直接上程式碼 #include <iostream> #include <cstring> using namespace std; #define n 5 void print(int a[n][n]); void print1(int a[n][n]); v

C語言完成成語接龍遊戲

用C語言實現成語接龍小遊戲(新手上路,大神勿噴) 1、首先需要找到一個成語庫(從網上下載即可,儲存為.txt檔案) 2、整體思路如下 由於要用的成語儲存在檔案裡,一邊用一邊讀取會降低程式碼的效率,所以我們首先建立一個二維動態陣列,將檔案裡的成語讀取到二維數組裡。首先讓使用者輸入第一個成

C語言一個簡單的三子棋,實現玩家與電腦的對戰

原始碼: #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <windows.h> #include <time.h> /* 用 C 寫一個三子棋 */ //邏輯: //1. 畫

C語言PL0編譯器

#include<stdio.h> /*#include"pl0.h"*/ #include"string.h" #include <windows.h> /*PL/0編譯系統C版本標頭檔案pl0.h*/ /*typedef enum{false,t

C語言實現井字棋遊戲

#include <stdio.h> #include <stdlib.h> int store[]={'_','_','_','_','_','_','_','_','_'}, shunt=1, count, i; void pr

C語言的一個順序表實現圖書館書籍管理

Function: 增add_book() 刪delete_book() 改modify_book() 查check_book() 實現吧! **************************/ #include<stdio.h>//裡

C語言一個掃雷程式

執行環境:win10   vs2013       本程式所有設計思路均已註釋行為標記在程式中,為了方便起見,將不在部落格中進行書寫,想要學的朋友複製下面的原始碼可進行學習,也可將程式進行修改獲取不同的遊戲體驗 程式原始截圖 執行結果:

C語言_簡易三子棋遊戲

三子棋和五子棋的玩法相同,率先三子連成直線的玩家即可獲勝。 下面簡單介紹用C語言編寫的三子棋小遊戲。 思路如下: 1.定義一個二維陣列做為棋盤,定義陣列的行和列。 2.將棋盤初始化,填充為空格。 3.列印棋盤函式,每次下子後都列印一次棋盤。 4.玩家下子函式。

C語言一個數組,實現類似JAVA語言中ArrayList的功能

此程式是在看過郝斌老師的資料結構與演算法的視訊後,自己用C語言實現的。整個程式比較簡單,適合入門資料結構時練手。 #include <stdio.h> #include <stdlib.h> #include <malloc.h> #

Java遊戲

Java文字小遊戲 怪物分為四個型別: 超級喪屍/變異喪屍/普通喪屍/吸血鬼. 不同類別的怪物具有不同的攻擊力,防禦力,躲避以及特殊屬性等等. 人類殺死殭屍後會獲得經驗升級,升級會回覆血量,提高攻擊力. 下面是執行截圖 下面是程式碼 gam

C++語言bmp檔案的程式完整版

#include <stdio.h> #include <stdlib.h> /* 定義WORD為兩個位元組的型別 */ typedef unsigned short WORD; /* 定義DWORD為四個位元組的型別 */ typedef uns

C語言做的接雞蛋遊戲(附原始碼註釋)【原創】

//以下是接雞蛋小遊戲原始碼  。建議在VS中執行除錯! /* 標頭檔案 */ # include <windows.h> # include <stdlib.h> # include <stdio.h> # include

C函式指標妙c語言一個簡易類

其實在C++中的物件也並不是實現起來也並不是多麼的什麼神祕,只是編譯器幫我們做了許多工作,所以我們總覺得C++要比c語言難一些,C++編譯器其實對於類中的非Virtual 函式的的呼叫規則與對C編譯器對函式的呼叫時一樣的,那就是通過call 函式地址的方法。等有