C - 一个C语言猜字游戏

下面是一个简陋的猜字游戏,玩了一会儿,发现自己打不过自己写的游戏,除非赢了就跑,最高分没有过1000。

 

说明:srand(time(NULL))和rand(),srand,time和rand都是函数,其中srand和rand配对使用,srand是start random,也就是随机数的初始化,time函数中的NULL表示获取系统时间,所以整个意思是:以系统时间开始初始化,然后获取随机数。随机数结果是一个整数。

 

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int cash = 100;

void play(int bet) {

    char *C = (char *) malloc(sizeof(char) * 100);
    C[0] = 'J';
    C[1] = 'Q';
    C[2] = 'K';
    printf("Shuffling... \n");
    srand(time(NULL));

    int i;
    for (i = 0; i < 5; i++) {
        int x = rand() % 3;
        int y = rand() % 3;
        char temp = C[x];
        C[x] = C[y];
        C[y] = temp;
    }

    int playersGuess;
    printf("What's your guess for the Queen's position? 1, 2 or 3: ");
    scanf("%d", &playersGuess);

    if (C[playersGuess - 1] == 'Q') {
        cash = cash + bet * 3;
        printf("You win! the result is: %c %c %c\n", C[0], C[1], C[2]);
        printf("Your money left is $ %d.\n", cash);
    } else {
        cash = cash - bet * 3;
        printf("You lose the bet, the result is: %c %c %c\n", C[0], C[1], C[2]);
        printf("Your money left is $ %d.\n", cash);
    }

    free(C);
}

void main(void) {
    int bet;
    printf("Welcome to the virtual Casino!\n");
    printf("The total cash you have from the start is $%d.\n", cash);

    while (cash > 0) {
        printf("Please enter your bet: $ ");
        scanf("%d", &bet);

        if (bet <= 0) break;
        else if (bet > cash) {
            printf("Error. The bet is bigger than your cash.");
            break;
        }

        play(bet);

    }
    printf("You lost the game. \n");

}

 

有时间加入一个重新开始的功能,可玩性会高一些。

posted @ 2020-08-09 16:46  Johnthegreat  阅读(425)  评论(0编辑  收藏  举报