HTMLify

turnstile.c
Views: 1 | Author: abh
#include <stdio.h>
#include <stdlib.h>

struct StateMachine {
    int state;
};

struct StateMachine New_machine() {
    struct StateMachine machine;
    return machine;
}

void Coin_machine(struct StateMachine *machine) {
    machine->state = 1;
}

void Push_machine(struct StateMachine *machine) {
    machine->state = 0;
}

int main() {
    struct StateMachine machine = New_machine();
    int input;

    while (1) {
        printf(">> Machine status: ");
        if (machine.state == 1)
            printf("Unlocked\n");
        else
            printf("Locked\n");

        printf("\n");
        printf("------------------\n");
        printf("0: Exit\n");
        printf("1: Coin\n");
        printf("2: Push\n");
        printf("<< ");
        scanf("%d", &input);
        printf("\n");

        switch (input) {
            case 0:
                exit(0);
                break;
            case 1:
                Coin_machine(&machine);
                break;
            case 2:
                Push_machine(&machine);
                break;
            default:
                printf("Invalid Option\n");
        }

    }

    return 0;
}

Comments