U E D R , A S I H C RSS

데블스캠프2010/다섯째날/Object Craft/미션2/허준

main.cpp

#include <stdio.h>

struct unit {

	int att;
	int def;
	int HP;

};


void main() {
	
	unit zeli1={5,0,50};
	unit zeli2={5,0,50};
	
	while(zeli2.HP>0 || zeli1.HP>0) {
		zeli2.HP -= zeli1.att;
		zeli1.HP -= zeli2.att;
		printf("저글링1이 저글링2에 데미지 %d를 입혀서 저글링2의 HP가 %d가 되었습니다.\n", zeli1.att, zeli2.HP);
		if(zeli2.HP == 0) {
			printf("저글링2가 죽었습니다.\n");
			break;
		}
		printf("저글링2이 저글링1에 데미지 %d를 입혀서 저글링1의 HP가 %d가 되었습니다.\n", zeli2.att, zeli1.HP);

		if(zeli1.HP == 0) {
			printf("저글링1가 죽었습니다.\n");
			break;
		}

	}

}

main.cpp(수정)

#include <stdio.h>

struct unit {
	int no;
	int att;
	int def;
	int HP;
};
unit zeli1, zeli2;

void init_unit() {
	zeli1.no = 1;
	zeli1.att = 5;
	zeli1.def = 0;
	zeli1.HP = 50;
	zeli2.no = 2;
	zeli2.att = 5;
	zeli2.def = 0;
	zeli2.HP = 50;
}

int get_damage(unit a1, unit a2) {
	return a1.att - a2.def;
}

void attack(unit a1, unit& a2) {
	int damage = get_damage(a1, a2);

	a2.HP -= damage;
	printf("저글링%d이 저글링%d에 데미지 %d를 입혀서 저글링%d의 HP가 %d가 되었습니다.\n", a1.no, a2.no, damage, a2.no, a2.HP);
}

int is_dead(unit a) {
	return a.HP <=0;
}

void main() {
	init_unit();

	while(true) {
		
		attack(zeli1, zeli2);
		if(is_dead(zeli2)) {
			printf("저글링%d가 죽었습니다.\n", zeli2.no);
			break;
		}

		attack(zeli2, zeli1);
		if(is_dead(zeli1)) {
			printf("저글링%d가 죽었습니다.\n", zeli1.no);
			break;
		}

	}

}
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:29:10
Processing time 0.0205 sec