int put(void) /* synonyms = {buckle, strap, tie} */ { if (wordvalue[wordnumber + 1] == ON) { wordvalue[++wordnumber] = PUTON; return (cypher()); } if (wordvalue[wordnumber + 1] == DOWN) { wordvalue[++wordnumber] = DROP; return (cypher()); } puts("I don't understand what you want to put."); return(-1); }
int main(int argc, char **argv) { char *msg; int key[4]; int flag; int *res; size_t msg_len; if (argc == 8) { flag = atoi(argv[7]); if (check_base(argv[6])) { if ((flag == 0 && (msg = check_msg(argv[1]))) || (flag == 1 && (msg = check_msg_base(argv[1], argv[6])))) { if (get_key(argv[2], argv[3], argv[4], argv[5], key)) { if (flag == 1) inv_key(key); res = cypher(msg, key, flag, argv[6], &msg_len); if (flag) inv_key(key); print_msg(argv[1], key, argv[6], res, flag, msg_len); free(res); return (0); } } } printf("Invalid args\n"); } else usage(); return (0); }
static void process_block(state_type &state, block_type const &block) { block_cypher_type cypher(block); state_type new_state = cypher.encypher((state_type const &)state); combine_F f; f(state, new_state); }
int put(void) { /* synonyms = {buckle, strap, tie} */ if (inc_wordnumber(words[wordnumber], "what")) return(-1); if (wordvalue[wordnumber] == ON) { wordvalue[wordnumber] = PUTON; wordtype[wordnumber] = VERB; return (cypher() - 1); } if (wordvalue[wordnumber] == DOWN) { wordvalue[wordnumber] = DROP; wordtype[wordnumber] = VERB; return (cypher() - 1); } puts("I don't understand what you want to put."); return (-1); }
int main(int argc, string argv[]) { string key = ""; string userInput = ""; bool inputGood = false; do { // Check to see if user did command prompt correctly. if(argc != 2) { printf("You are not doing the command line prompt correctly.\n"); printf("Please use: \'./vigenere key\' where key is a single word to use as your cypher\n"); // Error code for falure to give proper command prompt. return 1; } else { key = argv[1]; int keyLen = strlen(key); // Check to see if the user used a valid int value to cypher the text. for(int i = 0; i < keyLen; i++) { if(isalpha(key[i])) { inputGood = true; } else { printf("You are not doing the command line prompt correctly.\n"); printf("Please use: \'./vigenere key\' where key is a single word to use as a cypher\n"); // Error code for failed int value. return 2; } } } } while(!inputGood); // Gets input from user to cypher. printf("Enter text to Vigenere Cypher: \n"); userInput = GetString(); // Show user their input. printf("You entered: \n %s \n", userInput); printf("Here is your cyphered text: \n"); cypher(userInput, key); return 0; }
int main(int argc, char **argv) { char mainbuf[LINELENGTH]; char *next; /* Open the score file then revoke setgid privileges */ open_score_file(); setgid(getgid()); initialize(argc < 2 || strcmp(argv[1], "-r")); start: news(); beenthere[position]++; if (notes[LAUNCHED]) crash(); /* decrements fuel & crash */ if (matchlight) { puts("Your match splutters out."); matchlight = 0; } if (!notes[CANTSEE] || testbit(inven, LAMPON) || testbit(location[position].objects, LAMPON)) { writedes(); printobjs(); } else puts("It's too dark to see anything in here!"); whichway(location[position]); run: next = getcom(mainbuf, sizeof mainbuf, ">-: ", "Please type in something."); for (wordcount = 0; next && wordcount < 20; wordcount++) next = getword(next, words[wordcount], -1); parse(); switch (cypher()) { case -1: goto run; case 0: goto start; default: exit(1); /* Shouldn't happen */ } return (1); }
void kiss (void) { while (wordtype[++wordnumber] != NOUNS && wordnumber <= wordcount) continue; // The goddess must be "taken" first if bathing. This will remove her from the bath and move her into the throne room. if (wordtype[wordnumber] == NOUNS && wordvalue[wordnumber] == NORMGOD && testbit(location[position].objects, BATHGOD)) { wordvalue[--wordnumber] = TAKE; cypher(); return; } if (wordtype[wordnumber] == NOUNS) { if (testbit(location[position].objects, wordvalue[wordnumber])) { pleasure++; printf("Kissed.\n"); switch (wordvalue[wordnumber]) { case NORMGOD: switch (godready++) { case 0: puts("She squirms and avoids your advances."); break; case 1: puts("She is coming around; she didn't fight it as much."); break; case 2: puts("She's beginning to like it."); break; default: puts("She's gone limp."); break; } break; case NATIVE: puts("Her lips are warm and her body robust. She pulls you down to the ground."); break; case TIMER: puts("The old man blushes."); break; case MAN: puts("The dwarf punches you in the kneecap."); break; default: pleasure--; } } else puts("I see nothing like that here."); } else puts("I'd prefer not to."); }
void nx7seg::write(char value[], int sizeArray){ clear(); int posChar = 0; for(int i = 0; i< n_7seg; i++){ // No overflow if(posChar == sizeArray) break; if(i == n_7seg) break; byte data = cypher(value[posChar]); // If we got a point for next value if(posChar+1 != sizeArray){ if(value[posChar+1] == '.'){ data = data & dic_numbers[10]; posChar++; } } buffer(i, data); posChar++; } }
int main(){ char choose; do{ char text[1000]; printf("Enter option:"); scanf("%c",&choose); getchar(); if(choose=='c'){ printf("Enter text:"); scanf("%1000s", text); cypher(text); getchar(); } if(choose=='d'){ printf("Enter text:"); scanf("%1000s", text); decypher(text); getchar(); } }while(choose!='q'); return 0; }
int fight(int enemy, int strength) { int lifeline; int hurt; char auxbuf[LINELENGTH]; char *next; int i; int exhaustion; exhaustion = lifeline = 0; fighton: gtime++; snooze -= 5; if (snooze > gtime) exhaustion = CYCLE / (snooze - gtime); else { puts("You collapse exhausted, and he pulverizes your skull."); die(0); } if (snooze - gtime < 20) puts("You look tired! I hope you're able to fight."); next = getcom(auxbuf, LINELENGTH, "<fight!>-: ", 0); for (i = 0; next && i < 10; i++) next = getword(next, words[i], -1); parse(); switch (wordvalue[wordnumber]) { case KILL: case SMITE: if (testbit(inven, TWO_HANDED)) hurt = rnd(70) - 2 * card(injuries, NUMOFINJURIES) - ucard(wear) - exhaustion; else if (testbit(inven, SWORD) || testbit(inven, BROAD)) hurt = rnd(50) % (WEIGHT - carrying) - card(injuries, NUMOFINJURIES) - encumber - exhaustion; else if (testbit(inven, KNIFE) || testbit(inven, MALLET) || testbit(inven, CHAIN) || testbit(inven, MACE) || testbit(inven, HALBERD)) hurt = rnd(15) - card(injuries, NUMOFINJURIES) - exhaustion; else hurt = rnd(7) - encumber; if (hurt < 5) switch (rnd(3)) { case 0: puts("You swung wide and missed."); break; case 1: puts("He checked your blow. CLASH! CLANG!"); break; case 2: puts("His filthy tunic hangs by one less thread."); break; } else if (hurt < 10) { switch (rnd(3)) { case 0: puts("He's bleeding."); break; case 1: puts("A trickle of blood runs down his face."); break; case 2: puts("A huge purple bruise is forming on the side of his face."); break; } lifeline++; } else if (hurt < 20) { switch (rnd(3)) { case 0: puts("He staggers back quavering."); break; case 1: puts("He jumps back with his hand over the wound."); break; case 2: puts("His shirt falls open with a swath across the chest."); break; } lifeline += 5; } else if (hurt < 30) { switch (rnd(3)) { case 0: printf("A bloody gash opens up on his %s side.\n", (rnd(2) ? "left" : "right")); break; case 1: puts("The steel bites home and scrapes along his ribs."); break; case 2: puts("You pierce him, and his breath hisses through clenched teeth."); break; } lifeline += 10; } else if (hurt < 40) { switch (rnd(3)) { case 0: puts("You smite him to the ground."); if (strength - lifeline > 20) puts("But in a flurry of steel he regains his feet!"); break; case 1: puts("The force of your blow sends him to his knees."); puts("His arm swings lifeless at his side."); break; case 2: puts("Clutching his blood drenched shirt, he collapses stunned."); break; } lifeline += 20; } else { switch (rnd(3)) { case 0: puts("His ribs crack under your powerful swing, flooding his lungs with blood."); break; case 1: puts("You shatter his upheld arm in a spray of blood. The blade continues deep"); puts("into his back, severing the spinal cord."); lifeline += 25; break; case 2: puts("With a mighty lunge the steel slides in, and gasping, he falls to the ground."); lifeline += 25; break; } lifeline += 30; } break; case BACK: if (enemy == DARK && lifeline > strength * 0.33) { puts("He throws you back against the rock and pummels your face."); if (testbit(inven, AMULET) || testbit(wear, AMULET)) { printf("Lifting the amulet from you, "); if (testbit(inven, MEDALION) || testbit(wear, MEDALION)) { puts("his power grows and the walls of\nthe earth tremble."); puts("When he touches the medallion, your chest explodes and the foundations of the\nearth collapse."); puts("The planet is consumed by darkness."); die(0); } if (testbit(inven, AMULET)) { clearbit(inven, AMULET); carrying -= objwt[AMULET]; encumber -= objcumber[AMULET]; } else clearbit(wear, AMULET); puts("he flees down the dark caverns."); clearbit(location[position].objects, DARK); injuries[SKULL] = 1; followfight = gtime; return (0); } else { puts("I'm afraid you have been killed."); die(0); } } else { puts("You escape stunned and disoriented from the fight."); puts("A victorious bellow echoes from the battlescene."); if (back && position != back) battlestar_move(back, BACK); else if (ahead && position != ahead) battlestar_move(ahead, AHEAD); else if (left && position != left) battlestar_move(left, LEFT); else if (right && position != right) battlestar_move(right, RIGHT); else battlestar_move(location[position].down, AHEAD); return (0); } case SHOOT: if (testbit(inven, LASER)) { if (strength - lifeline <= 50) { printf("The %s took a direct hit!\n", objsht[enemy]); lifeline += 50; } else { puts("With his bare hand he deflects the laser blast and whips the pistol from you!"); clearbit(inven, LASER); setbit(location[position].objects, LASER); carrying -= objwt[LASER]; encumber -= objcumber[LASER]; } } else puts("Unfortunately, you don't have a blaster handy."); break; case DROP: case DRAW: cypher(); gtime--; break; default: puts("You don't have a chance, he is too quick."); break; } if (lifeline >= strength) { printf("You have killed the %s.\n", objsht[enemy]); if (enemy == ELF || enemy == DARK) puts("A watery black smoke consumes his body and then vanishes with a peal of thunder!"); clearbit(location[position].objects, enemy); power += 2; notes[JINXED]++; return (0); } puts("He attacks..."); /* Some embellishments. */ hurt = rnd(NUMOFINJURIES) - (testbit(inven, SHIELD) != 0) - (testbit(wear, MAIL) != 0) - (testbit(wear, HELM) != 0); hurt += (testbit(wear, AMULET) != 0) + (testbit(wear, MEDALION) != 0) + (testbit(wear, TALISMAN) != 0); hurt = hurt < 0 ? 0 : hurt; hurt = hurt >= NUMOFINJURIES ? NUMOFINJURIES - 1 : hurt; if (!injuries[hurt]) { injuries[hurt] = 1; printf("I'm afraid you have suffered %s.\n", ouch[hurt]); } else puts("You emerge unscathed."); if (injuries[SKULL] && injuries[INCISE] && injuries[NECK]) { puts("I'm afraid you have suffered fatal injuries."); die(0); } goto fighton; }
void nx7seg::writeChar(char value, int digit, bool point){ byte data = cypher(value); if(point) data = data & dic_numbers[10]; buffer(digit, data); }
void murder(void) { int n; if (inc_wordnumber(words[wordnumber], "whom")) return; for (n = 0; n < NUMOFOBJECTS && !((n == SWORD || n == KNIFE || n == TWO_HANDED || n == MACE || n == CLEAVER || n == BROAD || n == CHAIN || n == SHOVEL || n == HALBERD) && TestBit(inven, n)); n++) ; if (n == NUMOFOBJECTS) { if (TestBit(inven, LASER)) { printf("Your laser should do the trick.\n"); switch(wordvalue[wordnumber]) { case NORMGOD: case TIMER: case NATIVE: case MAN: wordvalue[--wordnumber] = SHOOT; cypher(); break; case -1: puts("Kill what?"); break; default: if (wordtype[wordnumber] != OBJECT || wordvalue[wordnumber] == EVERYTHING) puts("You can't kill that!"); else printf("You can't kill %s%s!\n", A_OR_AN_OR_BLANK(wordvalue[wordnumber]), objsht[wordvalue[wordnumber]]); break; } } else puts("You don't have suitable weapons to kill."); } else { printf("Your %s should do the trick.\n", objsht[n]); switch (wordvalue[wordnumber]) { case NORMGOD: if (TestBit(location[position].objects, BATHGOD)) { puts("The goddess's head slices off. Her corpse floats in the water."); ClearBit(location[position].objects, BATHGOD); SetBit(location[position].objects, DEADGOD); power += 5; notes[JINXED]++; } else if (TestBit(location[position].objects, NORMGOD)) { puts("The goddess pleads but you strike her mercilessly. Her broken body lies in a\npool of blood."); ClearBit(location[position].objects, NORMGOD); SetBit(location[position].objects, DEADGOD); power += 5; notes[JINXED]++; if (wintime) live(); } else puts("I don't see her anywhere."); break; case TIMER: if (TestBit(location[position].objects, TIMER)) { puts("The old man offers no resistance."); ClearBit(location[position].objects, TIMER); SetBit(location[position].objects, DEADTIME); power++; notes[JINXED]++; } else puts("Who?"); break; case NATIVE: if (TestBit(location[position].objects, NATIVE)) { puts("The girl screams as you cut her body to shreds. She is dead."); ClearBit(location[position].objects, NATIVE); SetBit(location[position].objects, DEADNATIVE); power += 5; notes[JINXED]++; } else puts("What girl?"); break; case MAN: if (TestBit(location[position].objects, MAN)) { puts("You strike him to the ground, and he coughs up blood."); puts("Your fantasy is over."); die(0); } case -1: puts("Kill what?"); break; default: if (wordtype[wordnumber] != OBJECT || wordvalue[wordnumber] == EVERYTHING) puts("You can't kill that!"); else printf("You can't kill the %s!\n", objsht[wordvalue[wordnumber]]); } } wordnumber++; }
/* returns 0 if error or no more commands to do, * 1 if there are more commands remaining on the current input line */ int cypher(void) { int n; int junk; int lflag = -1; char *filename, *rfilename; size_t filename_len; while (wordnumber <= wordcount) { if (wordtype[wordnumber] != VERB && !(wordtype[wordnumber] == OBJECT && wordvalue[wordnumber] == KNIFE)) { printf("%s: How's that?\n", (wordnumber == wordcount) ? words[wordnumber - 1] : words[wordnumber]); return (0); } switch (wordvalue[wordnumber]) { case AUXVERB: /* Take the following word as the verb */ wordnumber++; return(cypher()); break; case UP: if (location[position].access || wiz || tempwiz) { if (!location[position].access) puts("Zap! A gust of wind lifts you up."); if (!moveplayer(location[position].up, AHEAD)) return (0); } else { puts("There is no way up."); return (0); } lflag = 0; break; case DOWN: if (!moveplayer(location[position].down, AHEAD)) return (0); lflag = 0; break; case LEFT: if (!moveplayer(left, LEFT)) return (0); lflag = 0; break; case RIGHT: if (!moveplayer(right, RIGHT)) return (0); lflag = 0; break; case AHEAD: if (!moveplayer(ahead, AHEAD)) return (0); lflag = 0; break; case BACK: if (!moveplayer(back, BACK)) return (0); lflag = 0; break; case SHOOT: verb_with_all(location[position].objects, OBJ_PERSON, shoot, "shoot at"); break; case TAKE: if (wordnumber < wordcount && wordvalue[wordnumber + 1] == EVERYTHING) { int things; things = 0; for (n = 0; n < NUMOFOBJECTS; n++) if (TestBit(location[position].objects, n) && objsht[n]) { things++; wordvalue[wordnumber + 1] = n; /* Some objects (type NOUNS) have special treatment in take(). For these * we must set the type to NOUNS. However for SWORD and BODY all it does * is find which of many objects is meant, so we need do nothing here. * BATHGOD must become NORMGOD as well. NOUNS with no special case must be * included here to get the right error. DOOR cannot occur as an object so * need not be included. */ switch (n) { case BATHGOD: wordvalue[wordnumber + 1] = NORMGOD; /* FALLTHROUGH */ case NORMGOD: case AMULET: case MEDALION: case TALISMAN: case MAN: case TIMER: case NATIVE: wordtype[wordnumber + 1] = NOUNS; break; default: wordtype[wordnumber + 1] = OBJECT; } wordnumber = take(location[position].objects); wordnumber += 2; } if (!things) puts("Nothing to take!"); } else take(location[position].objects); break; case DROP: if (wordnumber < wordcount && wordvalue[wordnumber + 1] == EVERYTHING) { int things; things = 0; for (n = 0; n < NUMOFOBJECTS; n++) if (TestBit(inven, n)) { things++; wordvalue[wordnumber + 1] = n; wordnumber = drop("Dropped"); } wordnumber++; wordnumber++; if (!things) puts("Nothing to drop!"); } else drop("Dropped"); break; case KICK: case THROW: if (wordnumber < wordcount && wordvalue[wordnumber + 1] == EVERYTHING) { int things, wv; things = 0; wv = wordvalue[wordnumber]; for (n = 0; n < NUMOFOBJECTS; n++) if (TestBit(inven, n) || (TestBit(location[position].objects, n) && objsht[n])) { things++; wordvalue[wordnumber + 1] = n; wordnumber = throw(wordvalue[wordnumber] == KICK ? "Kicked" : "Thrown"); } wordnumber += 2; if (!things) printf("Nothing to %s!\n", wv == KICK ? "kick" : "throw"); } else throw(wordvalue[wordnumber] == KICK ? "Kicked" : "Thrown"); break; case TAKEOFF: verb_with_all(wear, 0, takeoff, "take off"); break; case DRAW: verb_with_all(wear, 0, draw, "draw"); break; case PUTON: verb_with_all(location[position].objects, 0, puton, "put on"); break; case WEARIT: verb_with_all(inven, 0, wearit, "wear"); break; case EAT: verb_with_all(inven, 0, eat, "eat"); break; case PUT: put(); break; case INVEN: if (ucard(inven)) { puts("You are holding:\n"); for (n = 0; n < NUMOFOBJECTS; n++) if (TestBit(inven, n)) printf("\t%s\n", objsht[n]); printf("\n= %d kilogram%s ", carrying, (carrying == 1 ? "." : "s.")); if (WEIGHT) printf("(%d%%)\n", carrying * 100 / WEIGHT); else printf("(can't lift any weight%s)\n", (carrying ? " or move with what you have" : "")); if (CUMBER) printf("Your arms are %d%% full.\n", encumber * 100 / CUMBER); else printf("You can't pick anything up.\n"); } else puts("You aren't carrying anything."); if (ucard(wear)) { puts("\nYou are wearing:\n"); for (n = 0; n < NUMOFOBJECTS; n++) if (TestBit(wear, n)) printf("\t%s\n", objsht[n]); } else puts("\nYou are stark naked."); if (card(injuries, NUMOFINJURIES)) { puts("\nYou have suffered:\n"); for (n = 0; n < NUMOFINJURIES; n++) if (injuries[n]) printf("\t%s\n", ouch[n]); printf("\nYou can still carry up to %d kilogram%s\n", WEIGHT, (WEIGHT == 1 ? "." : "s.")); } else puts("\nYou are in perfect health."); break; case USE: lflag = use(); break; case OPEN: dooropen(); break; case LOOK: if (!notes[CANTSEE] || TestBit(inven, LAMPON) || TestBit(location[position].objects, LAMPON) || matchlight) { beenthere[position] = 2; writedes(); printobjs(); if (matchlight) { puts("\nYour match splutters out."); matchlight = 0; } } else puts("I can't see anything."); return (0); /* No commands after a look */ break; case SU: if (wiz || tempwiz) { getnum(&position, "\nRoom (was %d) = ", position); getnum(&ourtime, "Time (was %d) = ", ourtime); getnum(&fuel, "Fuel (was %d) = ", fuel); getnum(&torps, "Torps (was %d) = ", torps); getnum(&CUMBER, "CUMBER (was %d) = ", CUMBER); getnum(&WEIGHT, "WEIGHT (was %d) = ", WEIGHT); getnum(&ourclock, "Clock (was %d) = ", ourclock); if (getnum(&junk, "Wizard (was %d, %d) = ", wiz, tempwiz) != -1 && !junk) tempwiz = wiz = 0; printf("\nDONE.\n"); return (0); /* No commands after a SU */ } else puts("You aren't a wizard."); break; case SCORE: printf("\tPLEASURE\tPOWER\t\tEGO\n"); printf("\t%3d\t\t%3d\t\t%3d\n\n", pleasure, power, ego); printf("This gives you the rating of %s in %d turns.\n", rate(), ourtime); printf("You have visited %d out of %d rooms this run (%d%%).\n", card(beenthere, NUMOFROOMS), NUMOFROOMS, card(beenthere, NUMOFROOMS) * 100 / NUMOFROOMS); break; /* case KNIFE: */ case KILL: murder(); break; case UNDRESS: undress(); break; case RAVAGE: ravage(); break; case SAVE: printf("\nSave file name (default %s): ", DEFAULT_SAVE_FILE); filename = fgetln(stdin, &filename_len); if (filename_len == 0 || (filename_len == 1 && filename[0] == '\n')) rfilename = save_file_name(DEFAULT_SAVE_FILE, strlen(DEFAULT_SAVE_FILE)); else { if (filename[filename_len - 1] == '\n') filename_len--; rfilename = save_file_name(filename, filename_len); } save(rfilename); free(rfilename); break; case VERBOSE: verbose = 1; printf("[Maximum verbosity]\n"); break; case BRIEF: verbose = 0; printf("[Standard verbosity]\n"); break; case FOLLOW: lflag = follow(); break; case GIVE: give(); break; case KISS: kiss(); break; case LOVE: love(); break; case RIDE: lflag = ride(); break; case DRIVE: lflag = drive(); break; case LIGHT: light(); break; case LAUNCH: if (!launch()) return (0); else lflag = 0; break; case LANDIT: if (!land()) return (0); else lflag = 0; break; case TIME: chime(); break; case SLEEP: zzz(); break; case DIG: dig(); break; case JUMP: lflag = jump(); break; case BURY: bury(); break; case SWIM: puts("Surf's up!"); break; case DRINK: drink(); break; case QUIT: die(0); default: puts("How's that?"); return (0); break; } if (!lflag) newlocation(); if (wordnumber < wordcount && !stop_cypher && (*words[wordnumber] == ',' || *words[wordnumber] == '.')) { wordnumber++; return (1); } else return (0); } return (0); }
int LoadController::exec() { clean(); QFile zeus (filename()); if(!zeus.open(QIODevice::ReadOnly)) { return -1; } QDomDocument hera; if(!hera.setContent(&zeus)) { return -2; } QDomElement athena = hera.documentElement(); QDomNodeList hermes = athena.elementsByTagName("user"); for(int appolon = 0; appolon < hermes.size(); appolon++) { QDomElement gaia = hermes.at(appolon).toElement(); UserSPointer ares = UserController::user(cypher(gaia.elementsByTagName("username").at(0).toElement().text(), 57)); if(ares) ares->setType((User::UserType)cypher(gaia.elementsByTagName("type").at(0).toElement().text(), 95).toInt()); } hermes = athena.elementsByTagName("category"); for(int apollon = 0; apollon < hermes.size(); apollon++) { if(hermes.at(apollon).parentNode().toElement().tagName() != "subCategory") { CategorySPointer ares(new Category); QDomElement aphrodite = hermes.at(apollon).toElement(); ares->load(aphrodite); if(!categories().contains(ares->name())) addCategory(ares); } } hermes = athena.elementsByTagName("entry"); for(int apollon = 0; apollon < hermes.size(); apollon++) { if(hermes.at(apollon).parentNode().toElement().tagName() != "subMedia") { MediaSPointer ares(new Media); QDomElement aphrodite = hermes.at(apollon).toElement(); ares->load(aphrodite, AbstractController::categories()); if(!medias().contains(qMakePair(ares->category()->name(),ares->name()))) { ares->category()->addAssociations(ares); addMedia(ares); } } } zeus.close(); return 0; }