C的抽卡小游戏

来源:互联网 发布:qq微商软件 编辑:程序博客网 时间:2024/05/15 12:55

花了两周时间学了点C语言,写了一个模拟阴阳师的抽卡功能:
启动
菜单
充钱。。
抽卡
单抽
带保底的十连

代码:

//ROLL!!!!!!!#include<stdio.h>#include<stdlib.h>#include<windows.h>#include <time.h>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 STARint 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都什么破玩意。