C的抽卡小游戏

花了两周时间学了点C语言,写了一个模拟阴阳师的抽卡功能:
启动
C的抽卡小游戏_第1张图片
C的抽卡小游戏_第2张图片
C的抽卡小游戏_第3张图片
C的抽卡小游戏_第4张图片
C的抽卡小游戏_第5张图片

代码:

//ROLL!!!!!!!
#include
#include
#include
#include 

int in();
void zero();
void star(int);
void rollGame();
void payMoney();
void oneRoll();
void tenRoll(int);
void name(int);
void SSR();
void gg();
void pingjia();
void shuaxin();

int count=0;
int money=10000;
int chance=0;
int n=0,r=0,sr=0,ssr=0;
int s0=0,s1=0,s2=0,s3=0,s4=0,s5=0,s6=0,s7=0,s8=0,s9=0;
void main(){
    printf("抽卡模拟器启动中...\n");
    printf("游戏目标为花费最少的钱得到脸帝评价,在任意处输入0都可结束游戏并进行评价\n");
    Sleep(5000);
    zero();
    system("pause");
}
//ROLL STAR
int in(){
    int in;
    scanf("%d",&in);
    if(in!=0){
        return in;
    }else if(in==0){
        gg();
    }

}
void zero(){
    shuaxin();
    printf("抽卡器已启动\n输入1:抽卡\n输入2:充钱\n输入0:结束游戏并统计\n");
    int receive;
    receive=in();
    star(receive);
}
void star(int receive){
    shuaxin();
    switch(receive){
        case 1:
            rollGame();
            break;
        case 2:
            payMoney();
            break;
        default:
            printf("...别乱输\n");
            zero();
    }
}
void rollGame(){
    int receive;
    printf("你有:%d张蓝票\n输入1:抽一次(一张蓝票)\n输入2:十连抽(十张蓝票/保底一张SR)\n输入3:返回\n输入0:结束游戏并统计\n",chance);
    receive=in();
    switch(receive){
        case 1:
            if(chance>=1){
                oneRoll();
            }else{
                shuaxin();
                printf("你没有蓝票了...\n");
                rollGame();
            }
            break;
        case 2:
            if(chance>=10){
                tenRoll(sr);
            }else{
                shuaxin();
                printf("你没有蓝票了...\n");
                rollGame();
            }
            break;
        case 3:
            zero();
            break;
        default:
            printf("...别乱输\n");
            rollGame();
    }

}
void payMoney(){
    shuaxin();
    int receive;
    printf("你当前的金钱:%d\n你有%d张蓝票\n输入1氪金\n输入2返回\n输入0:结束游戏并统计\n",money,chance);
    receive=in();
    switch(receive){
        case 1:
            if(money>=600){
                printf("你花了600块钱,买了30张蓝票\n");
                chance+=30;
                money-=600;
                Sleep(1000);
                payMoney();
            }else{
                printf("你没钱了,游戏结束\n");
                gg();
            }
            break;
        case 2:
            shuaxin();
            zero();
            break;
        default:
            printf("...别乱输\n");
            payMoney();
    }

}
void oneRoll(){
    shuaxin();
    int random,receive;
    random=rand()%101;
    srand(clock());
    printf("抽卡中...\n");
    Sleep(1000);
    name(random);
    count++;
    chance-=1;
    printf("选择1:继续,选择2:返回\n");
    receive=in();
    if(chance<1){
        /
        zero();
    }else{
        if(receive==1){
            oneRoll();
        }else{
            shuaxin();
            rollGame();
        }
    }
    //return random;
}
void name(int random){
    if(random<=50){
        printf("你抽到了一张N卡\n");
        n++;
    }else if(random>50 && random<90){
        printf("你抽到了一张R卡!\n");
        r++;
    }else if(random>=90 && random<99){
        printf("你抽到了一张SR卡!!!\n");
        sr++;
    }else if(random==100||random==99){
        SSR();
        ssr++;
    }
}
void tenRoll(int flag){
    shuaxin();
    int i,random,receive;
    printf("抽卡中...\n");
    Sleep(1000);
    for(i=0;i<9;i++){
        random=rand()%101;
        srand(clock());
        name(random);
        Sleep(666);
    }
    if(flag==sr){
        printf("九抽毛都没有,给你个保底!\n");
        name(95);
    }else{
        random=rand()%101;
        srand(clock());
        name(random);
    }
    count+=10;
    chance-=10;
    printf("选择1:继续十连,选择2:返回\n");
    receive=in();
    if(chance<=10){
        /
        zero();
    }else{
        if(receive==1){
            tenRoll(sr);
        }else{
            shuaxin();
            rollGame();
        }
    }
}
void SSR(){
    int random;
    srand(clock());
    random=rand()%11;
    if(random==0){
        printf("脸帝附体,抽到茨木童子!!!!!\n");
        s0++;
    }else if(random==1){
        printf("脸帝附体,抽到酒吞童子!!!!!\n");
        s1++;
    }else if(random==2){
        printf("脸帝附体,抽到妖刀姬!!!!!\n");
        s2++;
    }else if(random==3){
        printf("脸帝附体,抽到大天狗!!!!!\n");
        s3++;
    }else if(random==4){
        printf("脸帝附体,抽到辉夜姬!!!!!\n");
        s4++;
    }else if(random==5){
        printf("脸帝附体,抽到青行灯!!!!!\n");
        s5++;
    }else if(random==6){
        printf("脸帝附体,抽到花鸟卷!!!!!\n");
        s6++;
    }else if(random==7){
        printf("脸帝附体,抽到小鹿男!!!!!\n");
        s7++;
    }else if(random==8){
        printf("脸帝附体,抽到荒川之主!!!!!\n");
        s8++;
    }else if(random==9){
        printf("脸帝附体(并不),你抽到了“非洲战神”两面佛!!!!!\n");
        s9++;
    }
}
void pingjia(){
    if(count<120){
        printf("穷逼");
    }else if(ssr==0){
        printf("非洲大酋长");
    }else if(ssr==1){
        printf("一般人");
    }else if(ssr==2){
        printf("欧洲人");
    }else if(ssr>=3){
        printf("脸帝!");
    }else if(sr>=15){
        printf("运气还行");
    }else if(sr<12){
        printf("......");
    }else{
        printf("???");
    }
}
void gg(){
    shuaxin();
    printf("游戏结束,统计如下:\n");
    printf("游戏期间,你花了%d的金钱,一共抽奖%d次,其中:\n",10000-money,count);
    printf("抽到N卡%d张\n抽到R卡%d张\n抽到SR卡%d张\n抽到SSR卡%d张\n",n,r,sr,ssr);
    printf("你的游戏评价为:");
    pingjia();
    printf("\n按任意键退出\n");
    system("pause");
    exit(0);
}
void shuaxin(){
    printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
}

感觉和上一个DOS游戏细节上没什么区别,写这个没有啥长进啊。。。

JAVA与C的区别:

1,C带指针,而且可以和数组一起组合出String的效果,然而并不太会用,也真的不好用。
2,相对于JAVA的类概念,C中有构造的概念,然而也比较难用,不知道有没有继承和多态的概念。
3,写完就有EXE文件拖走直接用,不像JAVA还得要虚拟机。
4,VS写起爽的飞起,eclipse都什么破玩意。

你可能感兴趣的:(从零开始的程序员生活)