C 언어 마 탑 게임 의 실현 코드
게임 캡 처:
컴 파일 환경:VS 2017
게임 은 그림 이 필요 합 니 다.원 하 는 것 이 있 거나 게임 에 대해 어떤 견 해 를 가지 고 있 는 지 제 QQ 2985486630 토론 을 추가 할 수 있 습 니 다.잠시 대답 이 없 으 면 블 로그 아래 에 글 을 남 길 수 있 습 니 다.그때 보 겠 습 니 다.번 거 로 우 시 면 바로 다운로드 하 세 요.
압축 해제 후 sln 파일 을 누 르 면 바로 실행 할 수 있 습 니 다.
다음은 제 가 게임 의 주요 기능 과 실현 방식 을 소개 하 겠 습 니 다.
먼저 유저 의 정의 입 니 다.구조 체 를 사용 하면 이 이름 은 스스로 바 꿀 수 있 습 니 다.
struct gamerole
{
char name[20] = " "; //
int HP; //
int MP;
int DEF; //
int ATT; //
int Lv; //
int Exp; //
int Num_Blue_Key; //
int Num_Yellow_Key;
}player;
게임 오른쪽 에 퀘 스 트 의 속성 을 표시 합 니 다.함수:
void SetPlayer()
{
putimage(60 * 13, 0, &Message);
outtextxy(60 * 13 + 12, 100, player.name);
outtextxy(60 * 13 + 12, 180, intToString(player.Lv));
outtextxy(60 * 13 + 12, 235, intToString(player.Exp));
outtextxy(60 * 13 + 12, 362, intToString(player.HP));
outtextxy(60 * 13 + 12, 425, intToString(player.MP));
outtextxy(60 * 13 + 12, 517, intToString(player.ATT));
outtextxy(60 * 13 + 12, 567, intToString(player.DEF));
outtextxy(60 * 13 + 12, 689, intToString(player.Num_Yellow_Key));
outtextxy(60 * 13 + 12, 759, intToString(player.Num_Blue_Key));
}
이 함수 가 속성 이 문자열 이 어야 하기 때문에 나 는 숫자 를 문자열 로 바 꾸 는 함 수 를 썼 다.
//
char *intToString(int Number)
{
int len = 0;
if (Number == 0) {
str[0] = '0';
len++;
}
while (Number)
{
str[len++] = Number % 10+'0';
Number /= 10;
}
for (int i = 0; i < len/2; i++) {
char t = str[i];
str[i] = str[len - i - 1];
str[len - i - 1] = t;
}
str[len] = '\0';
return str;
}
몬스터 속성의 정의
struct monster
{
int HP; //
int ATT; //
int DEF; //
int Exp; //
};
다음은 캔버스 를 정의 한 다음 에 그림 을 불 러 옵 니 다.저 는 2 차원 배열 로 지 도 를 저 장 했 습 니 다.서로 다른 숫자 는 서로 다른 그림 을 대표 한 다음 에 2 차원 배열 의 값 에 따라 서로 다른 곳 에 서로 다른 그림 을 붙 였 습 니 다.
void SetMap()
{
for (int i = 0; i < 13; i++)
{
for (int j = 0; j < 13; j++)
{
switch (map[i][j])
{
case 0:
putimage(j * 60, i * 60, &Wall); //
break;
case 1:
putimage(j * 60, i * 60, &Ground); //
break;
case 2:
putimage(j * 60, i * 60, &Blue_door); //
break;
case 3:
putimage(j * 60, i * 60, &Yellow_door); //
break;
case 4:
putimage(j * 60, i * 60, &Blue_Cry); //
break;
case 5:
putimage(j * 60, i * 60, &Red_Cry); //
break;
case 6:
putimage(j * 60, i * 60, &Blue_Key); //
break;
case 7:
putimage(j * 60, i * 60, &Yellow_Key); //
break;
case 8:
putimage(j * 60, i * 60, &Red_Med); //
break;
case 9:
putimage(j * 60, i * 60, &Blue_Med); //
break;
case 10:
putimage(j * 60, i * 60, &Small_Bat); //
break;
case 11:
putimage(j * 60, i * 60, &Small_Wizard); //
break;
case 12:
putimage(j * 60, i * 60, &Small_Skull); //
break;
case 13:
putimage(j * 60, i * 60, &Big_Skull); //
break;
case 14:
putimage(j * 60, i * 60, &Green_Slime); //
break;
case 15:
putimage(j * 60, i * 60, &Red_Slime); //
break;
case 98:
putimage(j * 60, i * 60, &Ladder); //
break;
case 99:
putimage(j * 60, i * 60, &Player); //
break;
}
}
}
}
그 다음은 인물 의 이동 과 전투 입 니 다.인물 의 이동 은 저 는 상하 좌우 네 가지 상황 에 대해 직접 토론 하고 인물 이 움 직 일 때 갈 수 있 는 지 없 는 지 판단 하려 면 처리 하지 않 습 니 다.만약 에 갈 수 있다 면 걸 어 온 그 위 치 를 사람 으로 만 들 고 앞 사람의 위 치 를 바닥 으로 만 듭 니 다.
case 'w':
case 72:
if (map[playerx - 1][playery] == 1) { //
map[playerx - 1][playery] = 99;
map[playerx][playery] = 1;
playerx--;
}
처리 해 야 할 것 은 열쇠,문,수정,물약,괴물 이다.열쇠 라면,대응 하 는 열쇠 수 를 1 로 늘 려 라.
문 이 라면 해당 색상 의 열쇠 가 충분 한 지,충분 하 다 면 열쇠 수 를 1 로 줄 이 고 해당 위치 에 있 는 문 을 공 터 로 만든다.
회복 제 라면,먹고 나 면 생명 이 늘어난다.
수정 이 라면 수정의 색깔 에 대응 하 는 속성 을 추가 합 니 다.
몬스터 를 만 났 을 때 전투 가 일어나 서로 다른 몬스터 를 분리 처리 합 니 다.다음은 작은 박쥐의 처리 입 니 다.
case 10:
ID = MessageBox(hwnd, " ", " ?", MB_YESNO);
if (ID == IDYES)
{
if (VS(player.HP, player.ATT, player.DEF, Small_Bat_Pro.HP, Small_Bat_Pro.ATT, Small_Bat_Pro.DEF)) {
player.Exp += Small_Bat_Pro.Exp;
return 1;
}
}
break;
몬스터 를 만나면 해당 하 는 대화 상자 가 팝 업 됩 니 다전투 성공 여 부 를 계산 하 는 VS 함수 가 있 습 니 다.성공 하면 해당 속성 을 추가 하고 실패 하면 이 길 수 없 는 창 이 팝 업 됩 니 다.
int VS(int playHP, int playATT, int playDEF, int monHP, int monATT, int monDEF)
{
while (playHP > 0 || monHP > 0)
{
monHP -= (playATT - monDEF);
if (monHP < 0)
break;
playHP -= (monATT - playDEF);
}
if (playHP > 0) {
player.HP = playHP;
return 1;
}
else {
MessageBox(hwnd, "", " ", MB_YESNO);
return 0;
}
}
키 보드 를 두 드 릴 때마다 지도 정보 와 인물 정 보 를 업데이트 합 니 다.
SetMap(); //
SetPlayer(); //
여기까지 와 서 게임 의 내용 도 거의 다 르 지 않 았 다.비록 나 는 첫 번 째 지도 만 썼 지만.그러나 지 도 를 추가 하면 더 많은 게임 방법 이 있 고 관심 이 있 는 학생 들 은 관문 을 직접 만들어 더 많은 내용 을 실현 할 수 있다.마지막 으로 모든 코드 를 더 하면 주석 에서 말 하 는 것 도 비교적 명확 하 다.
#include <stdlib.h>
#include <graphics.h>
#include <windows.h>
#include<conio.h>
#include<graphics.h>
#include<windows.h>
#include <stdio.h>
void initgamePicture(); //
void SetPlayer(); //
void initPlayer(); //
void SetMap(); //
char *intToString(int Number); //
void playGame(); //
int Combat(int x);
int VS(int playHP, int playATT, int playDEF, int monHP, int monATT, int monDEF);
int playerx, playery;
char str[20] = "";
// 1
int map[13][13] = {
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 98, 1, 14, 15, 14, 1, 1, 1, 1, 1, 1, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 },
{ 0, 8, 1, 1, 2, 1, 0, 5, 6, 1, 0, 1, 0 },
{ 0, 1, 12, 1, 0, 1, 0, 4, 8, 1, 0, 1, 0 },
{ 0, 0, 2, 0, 0, 1, 0, 0, 0, 14, 0, 1, 0 },
{ 0, 6, 1, 1, 0, 1, 3, 10, 11, 10, 0, 1, 0 },
{ 0, 1, 13, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0 },
{ 0, 0, 2, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0 },
{ 0, 1, 1, 1, 0, 0, 14, 0, 0, 0, 14, 0, 0 },
{ 0, 8, 1, 6, 0, 7, 1, 6, 0, 1, 10, 1, 0 },
{ 0, 8, 1, 6, 0, 1, 99, 1, 0, 14, 9, 14, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
};
IMAGE Wall, Ground, Green_Slime, Red_Slime, Blue_Cry, Red_Cry, Blue_Key, Yellow_Key,
Red_Med, Blue_Med, Ladder, Small_Skull, Big_Skull, Small_Bat, Small_Wizard,
Blue_door, Yellow_door, Player, Message;
HWND hwnd;
struct gamerole
{
char name[20] = " "; //
int HP; //
int MP;
int DEF; //
int ATT; //
int Lv; //
int Exp; //
int Num_Blue_Key; //
int Num_Yellow_Key;
}player;
struct monster
{
int HP; //
int ATT; //
int DEF; //
int Exp; //
};
struct monster Green_Slime_Pro = { 50,10,12,100 }; //
struct monster Red_Slime_Pro = { 100, 50, 12, 500 }; //
struct monster Small_Wizard_Pro = { 100, 30, 9, 400 };//
struct monster Small_Bat_Pro = { 20, 10, 9, 50 }; //
struct monster Small_Skull_Pro = {30, 20, 10, 200}; //
struct monster Big_Skull_Pro = {60, 50, 25, 300}; //
int main()
{
initPlayer();
hwnd = initgraph(60 * 14, 60 * 13);
initgamePicture();
while (1) {
SetMap();
SetPlayer();
playGame();
}
return 0;
}
/*
*
*/
void SetPlayer()
{
putimage(60 * 13, 0, &Message);
outtextxy(60 * 13 + 12, 100, player.name);
outtextxy(60 * 13 + 12, 180, intToString(player.Lv));
outtextxy(60 * 13 + 12, 235, intToString(player.Exp));
outtextxy(60 * 13 + 12, 362, intToString(player.HP));
outtextxy(60 * 13 + 12, 425, intToString(player.MP));
outtextxy(60 * 13 + 12, 517, intToString(player.ATT));
outtextxy(60 * 13 + 12, 567, intToString(player.DEF));
outtextxy(60 * 13 + 12, 689, intToString(player.Num_Yellow_Key));
outtextxy(60 * 13 + 12, 759, intToString(player.Num_Blue_Key));
}
/*
*
*/
void initgamePicture()
{
loadimage(&Wall, " .jpg", 60, 60);
loadimage(&Ground, " .jpg", 60, 60);
loadimage(&Green_Slime, " .jpg", 60, 60);
loadimage(&Red_Slime, " .jpg", 60, 60);
loadimage(&Blue_Cry, " .jpg", 60, 60);
loadimage(&Red_Cry, " .jpg", 60, 60);
loadimage(&Blue_Key, " .jpg", 60, 60);
loadimage(&Yellow_Key, " .jpg", 60, 60);
loadimage(&Red_Med, " .jpg", 60, 60);
loadimage(&Blue_Med, " .jpg", 60, 60);
loadimage(&Ladder, " .jpg", 60, 60);
loadimage(&Small_Bat, " .jpg", 60, 60);
loadimage(&Small_Wizard, " .jpg", 60, 60);
loadimage(&Small_Skull, " .jpg", 60, 60);
loadimage(&Big_Skull, " .jpg", 60, 60);
loadimage(&Blue_door, " .jpg", 60, 60);
loadimage(&Yellow_door, " .jpg", 60, 60);
loadimage(&Player, " .jpg", 60, 60);
loadimage(&Message, "info.jpg");
}
/*
*
*/
void initPlayer()
{
player.Lv = 0;
player.ATT = 50;
player.DEF = 50;
player.Num_Blue_Key = 0;
player.Num_Yellow_Key = 0;
player.HP = 500;
player.MP = 250;
player.Exp = 0;
playerx = 11;
playery = 6;
}
//
char *intToString(int Number)
{
int len = 0;
if (Number == 0) {
str[0] = '0';
len++;
}
while (Number)
{
str[len++] = Number % 10+'0';
Number /= 10;
}
for (int i = 0; i < len/2; i++) {
char t = str[i];
str[i] = str[len - i - 1];
str[len - i - 1] = t;
}
str[len] = '\0';
return str;
}
/*
*
*
*/
void SetMap()
{
for (int i = 0; i < 13; i++)
{
for (int j = 0; j < 13; j++)
{
switch (map[i][j])
{
case 0:
putimage(j * 60, i * 60, &Wall); //
break;
case 1:
putimage(j * 60, i * 60, &Ground); //
break;
case 2:
putimage(j * 60, i * 60, &Blue_door); //
break;
case 3:
putimage(j * 60, i * 60, &Yellow_door); //
break;
case 4:
putimage(j * 60, i * 60, &Blue_Cry); //
break;
case 5:
putimage(j * 60, i * 60, &Red_Cry); //
break;
case 6:
putimage(j * 60, i * 60, &Blue_Key); //
break;
case 7:
putimage(j * 60, i * 60, &Yellow_Key); //
break;
case 8:
putimage(j * 60, i * 60, &Red_Med); //
break;
case 9:
putimage(j * 60, i * 60, &Blue_Med); //
break;
case 10:
putimage(j * 60, i * 60, &Small_Bat); //
break;
case 11:
putimage(j * 60, i * 60, &Small_Wizard); //
break;
case 12:
putimage(j * 60, i * 60, &Small_Skull); //
break;
case 13:
putimage(j * 60, i * 60, &Big_Skull); //
break;
case 14:
putimage(j * 60, i * 60, &Green_Slime); //
break;
case 15:
putimage(j * 60, i * 60, &Red_Slime); //
break;
case 98:
putimage(j * 60, i * 60, &Ladder); //
break;
case 99:
putimage(j * 60, i * 60, &Player); //
break;
}
}
}
}
int Combat(int x)
{
int ID;
switch (x) {
case 10:
ID = MessageBox(hwnd, " ", " ?", MB_YESNO);
if (ID == IDYES)
{
if (VS(player.HP, player.ATT, player.DEF, Small_Bat_Pro.HP, Small_Bat_Pro.ATT, Small_Bat_Pro.DEF)) {
player.Exp += Small_Bat_Pro.Exp;
return 1;
}
}
break;
case 11:
ID = MessageBox(hwnd, " ", " ?", MB_YESNO);
if (ID == IDYES)
{
if (VS(player.HP, player.ATT, player.DEF, Small_Wizard_Pro.HP, Small_Wizard_Pro.ATT, Small_Wizard_Pro.DEF)) {
player.Exp += Small_Wizard_Pro.Exp;
return 1;
}
}
break;
case 12:
ID = MessageBox(hwnd, " ", " ?", MB_YESNO);
if (ID == IDYES)
{
if (VS(player.HP, player.ATT, player.DEF, Small_Skull_Pro.HP, Small_Skull_Pro.ATT, Small_Skull_Pro.DEF)) {
player.Exp += Small_Skull_Pro.Exp;
return 1;
}
}
break;
case 13:
ID = MessageBox(hwnd, " ", " ?", MB_YESNO);
if (ID == IDYES)
{
if (VS(player.HP, player.ATT, player.DEF, Big_Skull_Pro.HP, Big_Skull_Pro.ATT, Big_Skull_Pro.DEF)) {
player.Exp += Big_Skull_Pro.Exp;
return 1;
}
}
break;
case 14:
ID = MessageBox(hwnd, " ", " ?", MB_YESNO);
if (ID == IDYES)
{
if (VS(player.HP, player.ATT, player.DEF, Green_Slime_Pro.HP, Green_Slime_Pro.ATT, Green_Slime_Pro.DEF)) {
player.Exp += Green_Slime_Pro.Exp;
return 1;
}
}
break;
case 15:
ID = MessageBox(hwnd, " ", " ?", MB_YESNO);
if (ID == IDYES)
{
if (VS(player.HP, player.ATT, player.DEF, Red_Slime_Pro.HP, Red_Slime_Pro.HP, Red_Slime_Pro.HP)) {
player.Exp += Green_Slime_Pro.Exp;
return 1;
}
}
break;
}
return 0;
}
int VS(int playHP, int playATT, int playDEF, int monHP, int monATT, int monDEF)
{
while (playHP > 0 || monHP > 0)
{
monHP -= (playATT - monDEF);
if (monHP < 0)
break;
playHP -= (monATT - playDEF);
}
if (playHP > 0) {
player.HP = playHP;
return 1;
}
else {
MessageBox(hwnd, "", " ", MB_YESNO);
return 0;
}
}
void playGame()
{
while (1)
{
char ch = _getch();
switch (ch) {
case 'w':
case 72:
if (map[playerx - 1][playery] == 1) { //
map[playerx - 1][playery] = 99;
map[playerx][playery] = 1;
playerx--;
}
else if (map[playerx-1][playery]== 6) { //
player.Num_Blue_Key++;
map[playerx - 1][playery] = 99;
map[playerx][playery] = 1;
playerx--;
}
else if (map[playerx - 1][playery] == 7) { //
player.Num_Yellow_Key++;
map[playerx - 1][playery] = 99;
map[playerx][playery] = 1;
playerx--;
}
//
else if (map[playerx - 1][playery] == 10 || map[playerx - 1][playery] == 11 ||
map[playerx - 1][playery] == 12 || map[playerx - 1][playery] == 13 ||
map[playerx - 1][playery] == 14 || map[playerx - 1][playery] == 15)
{
int x = Combat(map[playerx - 1][playery]);
if (x == 1) {
map[playerx - 1][playery] = 99;
map[playerx][playery] = 1;
playerx--;
}
}
//
else if (map[playerx - 1][playery] == 8 || map[playerx - 1][playery] == 9) {
if (map[playerx - 1][playery] == 8)
player.HP += 200;
else
player.HP += 500;
map[playerx - 1][playery] = 99;
map[playerx][playery] = 1;
playerx--;
}
//
else if (map[playerx - 1][playery] == 2 || map[playerx - 1][playery] == 3) {
if (map[playerx - 1][playery] == 2 && player.Num_Blue_Key) {
player.Num_Blue_Key--;
map[playerx - 1][playery] = 99;
map[playerx][playery] = 1;
playerx--;
}
if (map[playerx - 1][playery] == 3 && player.Num_Yellow_Key) {
player.Num_Yellow_Key--;
map[playerx - 1][playery] = 99;
map[playerx][playery] = 1;
playerx--;
}
}
//
// +2
// +2
else if (map[playerx - 1][playery] == 4 || map[playerx - 1][playery] == 5) {
if (map[playerx - 1][playery] == 4)
player.DEF += 2;
else if (map[playerx - 1][playery] == 5)
player.ATT += 2;
map[playerx - 1][playery] = 99;
map[playerx][playery] = 1;
playerx--;
}
break;
case 's':
case 80:
if (map[playerx + 1][playery] == 1) { //
map[playerx + 1][playery] = 99;
map[playerx][playery] = 1;
playerx++;
}
else if (map[playerx + 1][playery] == 6) { //
player.Num_Blue_Key++;
map[playerx + 1][playery] = 99;
map[playerx][playery] = 1;
playerx++;
}
else if (map[playerx + 1][playery] == 7) { //
player.Num_Yellow_Key++;
map[playerx + 1][playery] = 99;
map[playerx][playery] = 1;
playerx++;
}
//
else if (map[playerx + 1][playery] == 10 || map[playerx + 1][playery] == 11 ||
map[playerx + 1][playery] == 12 || map[playerx + 1][playery] == 13 ||
map[playerx + 1][playery] == 14 || map[playerx + 1][playery] == 15)
{
int x = Combat(map[playerx + 1][playery]);
if (x == 1) {
map[playerx + 1][playery] = 99;
map[playerx][playery] = 1;
playerx++;
}
}
//
else if (map[playerx + 1][playery] == 8 || map[playerx + 1][playery] == 9) {
if (map[playerx + 1][playery] == 8)
player.HP += 200;
else
player.HP += 500;
map[playerx + 1][playery] = 99;
map[playerx][playery] = 1;
playerx++;
}
//
else if (map[playerx + 1][playery] == 2 || map[playerx + 1][playery] == 3) {
if (map[playerx + 1][playery] == 2 && player.Num_Blue_Key) {
player.Num_Blue_Key++;
map[playerx + 1][playery] = 99;
map[playerx][playery] = 1;
playerx++;
}
if (map[playerx + 1][playery] == 3 && player.Num_Yellow_Key) {
player.Num_Yellow_Key++;
map[playerx + 1][playery] = 99;
map[playerx][playery] = 1;
playerx++;
}
}
//
// +2
// +2
else if (map[playerx + 1][playery] == 4 || map[playerx + 1][playery] == 5) {
if (map[playerx + 1][playery] == 4)
player.DEF += 2;
else if (map[playerx + 1][playery] == 5)
player.ATT += 2;
map[playerx + 1][playery] = 99;
map[playerx][playery] = 1;
playerx++;
}
break;
case 'a':
case 75:
if (map[playerx][playery - 1] == 1) { //
map[playerx][playery - 1] = 99;
map[playerx][playery] = 1;
playery--;
}
else if (map[playerx][playery - 1] == 6) { //
player.Num_Blue_Key++;
map[playerx][playery - 1] = 99;
map[playerx][playery] = 1;
playery--;
}
else if (map[playerx][playery - 1] == 7) { //
player.Num_Yellow_Key++;
map[playerx][playery - 1] = 99;
map[playerx][playery] = 1;
playery--;
}
//
else if (map[playerx][playery - 1] == 10 || map[playerx][playery - 1] == 11 ||
map[playerx][playery - 1] == 12 || map[playerx][playery - 1] == 13 ||
map[playerx][playery - 1] == 14 || map[playerx][playery - 1] == 15)
{
int x = Combat(map[playerx][playery - 1]);
if (x == 1) {
map[playerx][playery - 1] = 99;
map[playerx][playery] = 1;
playery--;
}
}
//
else if (map[playerx][playery - 1] == 8 || map[playerx][playery - 1] == 9) {
if (map[playerx][playery - 1] == 8)
player.HP += 200;
else
player.HP += 500;
map[playerx ][playery- 1] = 99;
map[playerx][playery] = 1;
playery--;
}
//
else if (map[playerx][playery - 1] == 2 || map[playerx][playery - 1] == 3) {
if (map[playerx][playery - 1] == 2 && player.Num_Blue_Key) {
player.Num_Blue_Key--;
map[playerx][playery - 1] = 99;
map[playerx][playery] = 1;
playery--;
}
if (map[playerx][playery - 1] == 3 && player.Num_Yellow_Key) {
player.Num_Yellow_Key--;
map[playerx][playery - 1] = 99;
map[playerx][playery] = 1;
playery--;
}
}
//
// +2
// +2
else if (map[playerx][playery - 1] == 4 || map[playerx][playery - 1] == 5) {
if (map[playerx][playery - 1] == 4)
player.DEF += 2;
else if (map[playerx][playery - 1] == 5)
player.ATT += 2;
map[playerx][playery - 1] = 99;
map[playerx][playery] = 1;
playery--;
}
break;
case 'd':
case 77:
if (map[playerx][playery + 1] == 1) { //
map[playerx][playery + 1] = 99;
map[playerx][playery] = 1;
playery++;
}
else if (map[playerx][playery + 1] == 6) { //
player.Num_Blue_Key++;
map[playerx][playery + 1] = 99;
map[playerx][playery] = 1;
playery++;
}
else if (map[playerx][playery + 1] == 7) { //
player.Num_Yellow_Key++;
map[playerx][playery + 1] = 99;
map[playerx][playery] = 1;
playery++;
}
//
else if (map[playerx][playery + 1] == 10 || map[playerx][playery + 1] == 11 ||
map[playerx][playery + 1] == 12 || map[playerx][playery + 1] == 13 ||
map[playerx][playery + 1] == 14 || map[playerx][playery + 1] == 15)
{
int x = Combat(map[playerx][playery + 1]);
if (x == 1) {
map[playerx][playery + 1] = 99;
map[playerx][playery] = 1;
playery++;
}
}
//
else if (map[playerx][playery + 1] == 8 || map[playerx][playery + 1] == 9) {
if (map[playerx][playery + 1] == 8)
player.HP += 200;
else
player.HP += 500;
map[playerx][playery + 1] = 99;
map[playerx][playery] = 1;
playery++;
}
//
else if (map[playerx][playery + 1] == 2 || map[playerx][playery + 1] == 3) {
if (map[playerx][playery + 1] == 2 && player.Num_Blue_Key) {
player.Num_Blue_Key--;
map[playerx][playery + 1] = 99;
map[playerx][playery] = 1;
playery++;
}
if (map[playerx][playery + 1] == 3 && player.Num_Yellow_Key) {
player.Num_Yellow_Key--;
map[playerx][playery + 1] = 99;
map[playerx][playery] = 1;
playery++;
}
}
//
// +2
// +2
else if (map[playerx][playery + 1] == 4 || map[playerx][playery + 1] == 5) {
if (map[playerx][playery + 1] == 4)
player.DEF += 2;
else if (map[playerx][playery + 1] == 5)
player.ATT += 2;
map[playerx][playery + 1] = 99;
map[playerx][playery] = 1;
playery++;
}
break;
}
SetMap(); //
SetPlayer(); //
}
}
C 언어 마 탑 게임 의 실현 코드 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 C 언어 마 탑 게임 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 부 탁 드 리 겠 습 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
C 언어 체인 시계는 뱀을 탐식하는 작은 게임을 실현한다본고의 실례는 여러분에게 C 언어 체인표가 뱀 탐식 게임을 실현하는 구체적인 코드를 공유하여 참고하도록 하였으며, 구체적인 내용은 다음과 같다. 프로젝트 이름: 뱀놀이 운영 환경: Linux 프로그래밍 언어: C 언...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.