level 12
战BOSS\n●进入旅店\n"); c=getch(); if (c=='w'&&'W') { if(n==1)n=5; else n--; continue; } if (c=='s'&&'S') { if(n==5)n=1; else n++; continue; } if (c=='j'&&'J'&&13) { switch(n){ case 1:battle();break; case 2:shop();break; case 3:menu();break; case 4:boss();break; case 5:hotel();break; } } }}void human_create(){ printf("来创建你的人物吧!"); Sleep(500); printf("要叫什么名字?(30字符以内)\n"); scanf("%s",name); printf("\n叫做%s?还行吧。",name); Sleep(500); printf("性别呢?\n"); PAUSE;CLS; int n=1; char c; bool out=true; for(;out;) { CLS; printf("\n\n\n\n\n性别呢?\n"); if(n==1) printf(" ●男\n ○女\n"); else if(n==2)printf(" ○男\n ●女\n"); c=getch(); if (c=='w'&&'W') { if(n==1)n=2; else n--; continue; } if (c=='s'&&'S') { if(n==2)n=1; else n++; } if (c=='j'&&'J'&&13) { if(n==2)sex=false;//女 else sex=true;//男 out=false; } } CLS; printf("\n\n\n\n\n 职业呢?\n"); PAUSE;CLS; n=1; c='\0'; out=true; for(;out;) { CLS; printf("\n\n\n\n\n 职业呢?\n"); if(n==1) printf(" ●剑士\n ○法师\n ○弓箭手\n ○祭司\n ○刺客\n ○随机\n"); else if(n==2) printf(" ○剑士\n ●法师\n ○弓箭手\n ○祭司\n ○刺客\n ○随机\n"); else if(n==3) printf(" ○剑士\n ○法师\n ●弓箭手\n ○祭司\n ○刺客\n ○随机\n"); else if(n==4) printf(" ○剑士\n ○法师\n ○弓箭手\n ●祭司\n ○刺客\n ○随机\n"); else if(n==5) printf(" ○剑士\n ○法师\n ○弓箭手\n ○祭司\n ●刺客\n ○随机\n"); else if(n==6) printf(" ○剑士\n ○法师\n ○弓箭手\n ○祭司\n ○刺客\n ●随机\n"); c=getch(); if (c=='w'&&'W') { if(n==1)n=6; else n--; continue; } if (c=='s'&&'S') { if(n==6)n=1; else n++; continue; } if (c=='j'&&'J'&&13) { if(n==6)n=rand()%10; job_z=n; switch(job_z){ case 1:sprintf(job,"剑士");str_cz+=5;dex_cz+=5;spd_cz+=1;mgc_cz-=5;hp_cz+=20,mp_cz-=20;break; case 2:sprintf(job,"法师");str_cz-=15;dex_cz-=2;spd_cz-=1;mgc_cz+=15;hp_cz-=30,mp_cz+=30;break; case 3:sprintf(job,"弓箭手");str_cz+=3;dex_cz-=2;mgc_cz+=1;hp_cz-=10;break; case 4:sprintf(job,"祭司");str_cz-=10;dex_cz-=2;spd_cz-=1;mgc_cz+=10;hp_cz-=30,mp_cz+=30;break; case 5:sprintf(job,"刺客");str_cz+=3;dex_cz-=5;spd_cz+=7;mgc_cz+=15;hp_cz-=20,mp_cz+=10;break; case 6:sprintf(job,"枪兵");str_cz+=3;dex_cz+=7;spd_cz+=5;mgc_cz-=2;hp_cz+=40,mp_cz-=40;break; case 7:sprintf(job,"魔王");str_cz+=1;dex_cz+=1;spd_cz+=1;mgc_cz+=3;hp_cz+=10,mp_cz+=10;break; case 8:sprintf(job,"极客");hp_cz+=30,mp_cz+=30;break; case 9:sprintf(job,"光头");str_cz+=5;dex_cz-=2;spd_cz-=3;mgc_cz+=5;hp_cz-=10,mp_cz+=10;break; case 0:sprintf(job,"元首");str_cz+=2;dex_cz-=3;spd_cz+=1;mgc_cz+=3;hp_cz+=15,mp_cz+=15;break; } out=false; CLS; } } level_up(1); printf("好,那么……"); PAUSE; printf("\n"); printf("%s的属性栏\n生命%d/%d,魔法%d/%d\n职业:%s\n力量%d,体质%d,智慧%d,速度%d\n",name,hpm,hp,mpm,mp,job,str,dex,mgc,spd); printf("金钱¥%d\n等级%d,经验值%d/%d\n",money,level,exp,level*100); printf("满意么?\n"); PAUSE; }int main(){ srand(time(NULL)); int n=1; char c; bool out=true; for(;out;) { CLS; printf("\n\n 狗蛋打怪RPG!\n"); if(n==1) printf("●创建人物\n○保存读取\n○退出游戏\n"); else if(n==2) printf("○创建人物\n●保存读取\n○退出游戏\n"); else if(n==3) printf("○创建人物\n○保存读取\n●退出游戏\n"); c=getch(); if (c=='w'&&'W') { if(n==1)n=3; else n--; continue; } else if (c=='s'&&'S') { if(n==3)n=1; else n++; continue; } else if (c=='j'&&'J'&&'\13') { switch(n){ case 1:out=false;break; case 2:sl(true);break; case 3:return 0;break; } } if (c=='k'&&'K') { return 0; } } for(int i=0;i<10;i++) { printf("载入中……\n%d/100",i); for(int j=i;j>=0;j--)printf("|"); Sleep(10); CLS; } human_create(); CLS; zongcan(); while(1); return 0;}
2013年04月26日 12点04分
5
level 1
如果楼主还在的话,我觉得,使用sdl+lua的方式,应该很好。呵呵,c和C++专注于图形算法和现实,ai和数据的加载,交给lua
2013年05月27日 02点05分
11
为了避免ifelseswitch地狱,可以使用行为树。 lua的行为树实现非常简单。
2013年05月27日 02点05分
回复 大侠刘子龙 :sdl有哪些功能?
2013年06月03日 12点06分