static int key(W_Event *data) { if (data->y == (metaHeight-B_ADD)) return add_key(data); if (data->key == 113 || data->key == 196) { /* q or ^d */ metadone(); terminate(0); } else if (data->key == 114 || data->key == 210) { /* r or ^r */ refresh(); } else if (data->key == W_Key_Up) { choose(-1); } else if (data->key == W_Key_Down) { choose(1); } else if (data->key == '\r' || data->key == ' ') { /* enter or space */ if (chosen != -1) return chose(chosen, W_LBUTTON); } else if (data->key == 'g') { /* g, for guest */ if (chosen != -1) return chose(chosen, W_MBUTTON); } else if (data->key == 'o') { /* o, for observe */ if (chosen != -1) return chose(chosen, W_RBUTTON); } else if (data->key == 'h') { toggle_help(); } else { return button(data); } return 0; }
int main() { time_t t; long int r; int i,j,poss_num,x,y,f; t = time(NULL); my_srandom(t); for(i=0; i<MAX; i++) { for(j=0; j<MAX; j++) { pros[i][j].chosed = 0; pros[i][j].possible = 1; } } r = random()%(MAX*MAX); chose(r,&x,&y); printf("%u%u ",x,y); for(i=0;i<(MAX*MAX);i++) { f = get_possible(x,y); poss_num = get_possible_num(); if(poss_num == 0) break; r = my_random()%poss_num; chose(r,&x,&y); printf("%u%u ",x,y); } printf("\n"); }
int main() { while(~scanf("%d %d", &n, &m)) { for(int i = 0; i < 9; ++ i) flag[i] = true; if(n > 8) { for(int i = 1; i <= n - 8; ++ i) printf("%d ", i); base = n - 8; mn = 8; chose(0); } else { mn = n; base = 0; chose(0); } } return 0; }
static int button(W_Event *data) { if ((data->y > 0) && (data->y <= num_servers)) { /* click on server */ return chose(data->y - 1, data->key); } if (data->y == (metaHeight-B_REFRESH)) { /* refresh */ refresh(); } else if (data->y == metaHeight-B_HELP) { /* help */ toggle_help(); } else if (data->y == metaHeight-B_QUIT) { /* quit */ metadone(); terminate(0); } return 0; }
void chose(int k) { if(k == mn) { m --; if(m == 0) { for(int i = 0; i < mn - 1; ++ i) printf("%d ", seq[i] + base); printf("%d\n", seq[mn - 1] + base); } return ; } for(int i = 1; i <= mn; ++ i) { if(flag[i]) { seq[k] = i; flag[i] = false; chose(k + 1); flag[i] = true; } } }