AMETHOD(New, TYP, Std$Address$T, TYP, Std$Integer$SmallT) { //@address //@length //:T // Returns a new reader starting at <code>address</code> with length <code>length</code>. reader_t *Reader = new(reader_t); Reader->Type = T; Reader->Address = Std$Address$get_value(Args[0].Val); Reader->Length = Std$Integer$get_small(Args[1].Val); Result->Val = (Std$Object$t *)Reader; return SUCCESS; }
#include <Std.h> GLOBAL_FUNCTION(Minimize, 2) { size_t NumParams = Std$Integer$get_small(Args[0].Val); Std$Object_t *Function = Args[1].Val; return SUCCESS; };
/* play one numbers round */ void numbers_round(void) { int num_large; int i, j; static int turn = 0; /* stages: pick numbers 30 second timer (let Rachel think during this time?) reveal answers reveal methods assign scores Rachel's solution */ printf(" Round %d: Numbers round\n", round); printf("It is %s's turn to choose numbers.\n", player[turn].name); /* choose numbers */ init_numbers(); do { printf("%s, how many large numbers? [0 to 4] ", player[turn].name); num_large = atoi(get_line()); } while(num_large < 0 || num_large > 4); /* generate numbers */ for(i = 0; i < num_large; i++) { number[i] = get_large(); } for(; i < 6; i++) { number[i] = get_small(); } /* display numbers */ for(j = 6; j >= 0; j--) { printf("\r"); if(nocolour) printf("| "); else printf("%s ", letter_colour); for(i = 0; i < j; i++) { if(number[i] > 9) printf(" "); if(number[i] > 99) printf(" "); printf(" "); } for(i = j; i < 6; i++) { printf("%d ", number[i]); } if(nocolour) printf("|"); else printf("%s", colour_off); fflush(stdout); usleep(500000); } putchar('\n'); speak(RACHEL, "And the target number is...\n"); /* generate a target */ for(i = 0; i < 20; i++) { printf(" \r"); if(!nocolour) printf("%s", number_colour); printf(" %d ", 100 + (rand() % 900)); if(!nocolour) printf("%s", colour_off); fflush(stdout); usleep(100000); } target = 100 + (rand() % 900); printf(" \r"); if(!nocolour) printf("%s", number_colour); printf(" %d ", target); if(!nocolour) printf("%s", colour_off); printf("\n"); /* let people think */ run_timer(); /* increment the player whose turn it is to choose numbers */ round++; turn++; if(turn >= players) turn = 0; }