Describe 데블스캠프2010/다섯째날/ObjectCraft/미션2/강소현 here == before == {{{ #include #include typedef struct zergling{ char *name; int attack; int protect; int HP; }zerg; void AAttackB(zerg *a, zerg *b){ b->HP -= a->attack; } int main(){ zerg zerg1={"저그1",5,0,50}, zerg2={"저그2",5,0,50}; int order; while(zerg2.HP > 0 && zerg1.HP >0){ order = (int) rand() % 2; if(order == 0){ AAttackB(&zerg1,&zerg2); printf("%s가 %s에게 데미지 %d를 입혀 HP가 %d가 되었다.\n",zerg1.name, zerg2.name, zerg1.attack, zerg2.HP); }else{ AAttackB(&zerg2,&zerg1); printf("%s가 %s에게 데미지 %d를 입혀 HP가 %d가 되었다.\n",zerg2.name, zerg1.name, zerg2.attack, zerg1.HP); } } puts("--------------------------------------------------"); printf("게임 끝 ㅇㅇ\n"); return 0; } }}} == after == {{{ #include #include #include typedef struct zergling{ char *name; int attack; int protect; int HP; }zerg; void init(zerg *newZerg, zerg *newZerg2){ newZerg->name="ㅡㅁㅡ"; newZerg->HP = 50; newZerg->attack = 5; newZerg->protect = 0; newZerg2->name="ㅇㅁㅇ"; newZerg2->HP = 50; newZerg2->attack = 5; newZerg2->protect = 0; srand((unsigned)time(NULL)); } int order(){ int ordering = (int) rand() % 2; return ordering; } void AAttackB(zerg *a, zerg *b){ if(order() == 0){ b->HP -= a->attack; printf("%s가 %s에게 데미지 %d를 입혀 HP가 %d가 되었다.\n",a->name, b->name, a->attack, b->HP); }else{ a->HP -= b->attack; printf("%s가 %s에게 데미지 %d를 입혀 HP가 %d가 되었다.\n",b->name, a->name, b->attack, a->HP); } } bool isDead(zerg a, zerg b){ return a.HP > 0 && b.HP >0; } int main(){ zerg zerg1, zerg2; init(&zerg1, &zerg2); while(isDead(zerg1, zerg2)){ AAttackB(&zerg1,&zerg2); } puts("---------------------------------------------------"); printf("게임 끝 ㅇㅇ\n"); return 0; } }}}