Annotation of sbbs/dice/craps.c, revision 1.1

1.1     ! root        1: #include <stdlib.h>
        !             2: #include <stdio.h>
        !             3: #include <dos.h>
        !             4: #include <io.h>
        !             5: #include <fcntl.h>
        !             6: 
        !             7: int players, player, roller, bet_amt, lose, win, ok;
        !             8: 
        !             9: main(int argc, char *argv[])
        !            10: {
        !            11:        FILE *fp;
        !            12:        char cont='Y', ch;
        !            13: 
        !            14: 
        !            15:        get_game_status(ok);
        !            16:        if (ok) { players++; player=players; }
        !            17:        if (players>1) request_access();
        !            18:        while (!kbhit()) { }
        !            19:        randomize();
        !            20:        roll();
        !            21: 
        !            22: 
        !            23:        while(cont=='Y') {
        !            24:                printf("\n\nWould you like to play again?");cont=toupper(getche());
        !            25:                if (cont=='Y')
        !            26:                        roll();
        !            27:                else
        !            28:                        printf("\n\nThank you for playing, try again soon!");
        !            29:        }
        !            30:        return;
        !            31: }
        !            32: 
        !            33: /* This is the routine to roll the dice */
        !            34: 
        !            35: roll()
        !            36: {
        !            37:        FILE *fp;
        !            38:        char ch;
        !            39:        int die1, die2, dice, roll, match, shake, x;
        !            40:        die1=die2=dice=roll=match=lose=win=0;
        !            41: 
        !            42:        clrscr();
        !            43:        while (!lose&&!win) { ch='';
        !            44:                printf("\n\n[S]end message or [ENTER] to roll!"); ch=toupper(getche());
        !            45:                printf("\n\n");
        !            46:                for (shake=0; shake<50; shake++) {
        !            47:                        die1=random(6)+1; die2=random(6)+1;
        !            48:                }
        !            49:                dice=die1+die2; roll++;
        !            50:                printf("You rolled a %d and a %d for a total of %d",die1,die2,dice);
        !            51: 
        !            52:                if (match==dice) {
        !            53:                        printf("\n\nBitchin!  You matched your first roll!  You WIN!"); getche();
        !            54:                        win=1; return;
        !            55:                }
        !            56:                if ((dice==7||dice==11) && roll==1) {
        !            57:                        printf("\n\nHurray!  You WIN!"); win=1; getche(); return;
        !            58:                }
        !            59:                if (((dice==2||dice==12) && roll==1) || ((dice==7||dice==11) && roll>1)) {
        !            60:                        printf("\n\nBummer dude, You LOST!"); lose=1; getche(); return;
        !            61:                } else if (roll==1) {
        !            62:                        match=dice;
        !            63:                        printf("\n\nYou've gotta try to match a %d",match);
        !            64:                }
        !            65:                        printf("\n\nWould you like to increase the bet? ");
        !            66:                        while (ch!='Y' && ch!='N') {
        !            67:                                ch=toupper(getche()); if (ch=='Y') increase_bet();
        !            68:                        }  ch='';
        !            69:        }
        !            70: }
        !            71: 
        !            72: /***********************************
        !            73:  Gets the current status of the game
        !            74: ************************************/
        !            75: int get_game_status()
        !            76: {
        !            77:        FILE *fp;
        !            78: 
        !            79:        if(!access("GAMESTAT.TXT",0)) {
        !            80:                printf("file exists\7");
        !            81:                if ((fp=fopen("GAMESTAT.TXT","r"))==NULL)
        !            82:                        return -1;
        !            83:                fscanf(fp,"%d%d%d", &players, &roller, &bet_amt);
        !            84:                fclose(fp); return 0;
        !            85:        } else {
        !            86:                if ((fp=fopen("GAMESTAT.TXT","a+"))==NULL)
        !            87:                        return -1;
        !            88:                players=player=roller=1;bet_amt=0;
        !            89:                fprintf(fp,"%d\n%d\n%d", players, roller, bet_amt);
        !            90:                fclose(fp); return 1;
        !            91:        }
        !            92: }
        !            93: 
        !            94: increase_bet()
        !            95: {
        !            96:        int add;
        !            97: 
        !            98:        ok=0;
        !            99: 
        !           100:        while (!ok) {
        !           101:                printf("\n\nEnter amount to increase by (in Kbytes): ");
        !           102:                scanf("%d",add);
        !           103:                if (add<=100) ok=1;
        !           104:                else printf("\n\nMust be less than 100K!!");
        !           105:        }
        !           106:        return;
        !           107: }
        !           108: 
        !           109: 
        !           110: /* This function waits till the current bet (if any) is over before
        !           111:    giving the new player access to the game */
        !           112: 
        !           113: request_access()
        !           114: {
        !           115:        FILE *fp;
        !           116:        char fname[81];
        !           117:        int x;
        !           118: 
        !           119:        sprintf(fname,"REQUEST.%d",player);
        !           120:        if ((fp=fopen(fname,"a+"))==NULL) return;
        !           121:        fclose(fp);
        !           122: 
        !           123:        printf("\n\nHang on!  Waiting to enter game!");
        !           124:        while (!access(fname,0)) { }
        !           125: 
        !           126:        sprintf(fname,"PLAYER.%d",player);
        !           127:        if ((fp=fopen(fname,"a+"))==NULL) return;
        !           128:        fclose(fp);
        !           129: 
        !           130: }
        !           131: 
        !           132: 
        !           133: 
        !           134: menu()
        !           135: {
        !           136:        char ch;
        !           137: 
        !           138:        if (roller==player)
        !           139:                printf("\n\nCommand (I,P,R,S,Q,?): ");
        !           140:        else
        !           141:                printf("\n\nCommand (S,Q,?): ");
        !           142: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.