Compare commits
	
		
			3 Commits 
		
	
	
		
			9c5e120c75
			...
			bbb56fc4e5
		
	
	| Author | SHA1 | Date | 
|---|---|---|
|  BodgeMaster | bbb56fc4e5 | |
|  BodgeMaster | 196849620b | |
|  BodgeMaster | b9d026ce0c | 
|  | @ -0,0 +1,78 @@ | |||
| #!/usr/bin/env python3 | ||||
| 
 | ||||
| import sys, random | ||||
| 
 | ||||
| def bitflip(byte, bit): | ||||
|     bits = [ | ||||
|         0b00000001, | ||||
|         0b00000010, | ||||
|         0b00000100, | ||||
|         0b00001000, | ||||
|         0b00010000, | ||||
|         0b00100000, | ||||
|         0b01000000, | ||||
|         0b10000000 | ||||
|     ] | ||||
|     negbits = [ | ||||
|         0b11111110, | ||||
|         0b11111101, | ||||
|         0b11111011, | ||||
|         0b11110111, | ||||
|         0b11101111, | ||||
|         0b11011111, | ||||
|         0b10111111, | ||||
|         0b01111111 | ||||
|     ] | ||||
|     if byte | bits[bit] == byte: | ||||
|         return byte & bits[bit] | ||||
|     return byte | bits[bit] | ||||
| 
 | ||||
| def n_bits_off(byte, n): | ||||
|     if n>8: | ||||
|         raise Error | ||||
| 
 | ||||
|     bits = [] | ||||
| 
 | ||||
|     while len(bits) < n: | ||||
|         bit = random.randint(0,7) | ||||
|         if bit in bits: | ||||
|             continue | ||||
|         bits.append(bit) | ||||
| 
 | ||||
|     for bit in bits: | ||||
|         byte = bitflip(byte, bit) | ||||
| 
 | ||||
|     return byte | ||||
| 
 | ||||
| 
 | ||||
| if __name__ == "__main__": | ||||
|     if not len(sys.argv) == 2: | ||||
|         print("This program takes exactly one argument: the string to scramble.") | ||||
| 
 | ||||
|     output = [] | ||||
|     for character in list(sys.argv[1]): | ||||
|         a = random.randint(0, 36) | ||||
|         if ord(character)<33 or ord(character) > 126: | ||||
|             output.append(character) | ||||
|         elif a%18==0: | ||||
|             byte = n_bits_off(ord(character), 3) | ||||
|             if byte > 32 and byte < 127: | ||||
|                 output.append(chr(byte)) | ||||
|             else: | ||||
|                 output.append(character) | ||||
|         elif a%12==0: | ||||
|             byte = n_bits_off(ord(character), 2) | ||||
|             if byte > 32 and byte < 127: | ||||
|                 output.append(chr(byte)) | ||||
|             else: | ||||
|                 output.append(character) | ||||
|         elif a%9==0: | ||||
|             byte = n_bits_off(ord(character), 1) | ||||
|             if byte > 32 and byte < 127: | ||||
|                 output.append(chr(byte)) | ||||
|             else: | ||||
|                 output.append(character) | ||||
|         else: | ||||
|             output.append(character) | ||||
| 
 | ||||
|     print("".join(output)) | ||||
|  | @ -15,13 +15,12 @@ | |||
|     </ul> | ||||
|   </li> | ||||
|   <li class="comment"> | ||||
|     Emily and Lena sit down at a desk with a view of the biotope and have | ||||
|     Emily and Lena sit down at a table with a view of the biotope and have | ||||
|     a meal | ||||
|     <ul> | ||||
|       <li class="comment"> | ||||
|         the meal gets interrupted by the equipment in the control center | ||||
|         coming to life (fans coming on, some control panels lighting up, | ||||
|         boot-up/status/ready beeps) | ||||
|         coming to life | ||||
|         <ul> | ||||
|           <li class="comment"> | ||||
|             a status light on the wall, that Emily had never seen on, | ||||
|  | @ -74,9 +73,6 @@ | |||
|   </li> | ||||
| </ul> | ||||
| <p> | ||||
|   <span class="comment">note: need to check mice eating behavior when fed, | ||||
|   might want to add a section where she actually handles and feeds them | ||||
|   </span><br /> | ||||
|   Emily closes the cage and puts the <whatever they feed the mice> | ||||
|   back into the cupboard. She <span class="comment">does something related | ||||
|   to taking care of the mice</span>, steps out into the hallway, and | ||||
|  | @ -87,24 +83,23 @@ | |||
| <p> | ||||
|   3 – 5 – 2 – 1 – Enter. The keypad beeps with | ||||
|   every button press. A computer voice announces | ||||
|   <span class="quote speech">Access authorized</span>. The door to the main | ||||
|   control center module slides up and she steps through. The module | ||||
|   contains one large room with rows of integrated computer equipment desks | ||||
|   arranged <span class="comment">need a fitting description of what a | ||||
|   mission control rom looks like</span>. The wall to the left that most of | ||||
|   the seats are facing is completely taken up by a panorama window into | ||||
|   the biosphere, an even larger module with a ceiling of glass and support | ||||
|   beams completely taken up by plant life, trees, small animals, and a big | ||||
|   pond. The wall to the right holds a large status panel with some | ||||
|   seven-segment displays for information and lots of big status indicator | ||||
|   symbols. | ||||
|   <span class="quote speech">Access authorized</span> and the door slides | ||||
|   up. She steps through into the main control center. The module contains | ||||
|   one large room with rows of integrated computer equipment desks arranged | ||||
|   <span class="comment">need a fitting description of what a mission | ||||
|   control rom looks like</span>. The wall to the left that most of the | ||||
|   seats are facing is completely taken up by a panorama window into the | ||||
|   biotope, an even larger module with a ceiling of glass and support beams, | ||||
|   completely filled with plant life, trees, small animals, and a big pond. | ||||
|   The wall to the right holds a large status panel with some seven-segment | ||||
|   displays for information and lots of big status indicator symbols. | ||||
| </p> | ||||
| <p> | ||||
|   Emily walks down the shallow stairs towards the panorama window. In | ||||
|   front of the window are tables and chairs that were moved there recently | ||||
|   as the room had become more of a general hangout spot for the remaining | ||||
|   people when they were still around. Lena sits at one of them, | ||||
|   <span class="comment">preparing something</span> while waiting for her. | ||||
|   people when there still more than just Lena and her. Lena sits at one of | ||||
|   them, cutting a bread into slices while waiting for her. | ||||
| </p> | ||||
| <p class="comment"> | ||||
|   missing dialog about food and starting to eat | ||||
|  | @ -115,64 +110,18 @@ | |||
|   turn on. Some of the status indicators on the back wall start blinking. | ||||
|   A large, green triangle with the letters LINK next to it flickers and | ||||
|   then lights up. Emily looks at it in confusion.<br /> | ||||
|   <span class="quote speech">What does that light mean?</span> She gestures | ||||
|   towards it.<br /> | ||||
|   <span class="quote speech">What's going on?</span><br /> | ||||
|   <span class="quote speech">That's them.</span><br /> | ||||
|   <span class="quote speech">Earth people?</span><br /> | ||||
|   <span class="quote speech">Yes</span>, Lena replies while quickly | ||||
|   finishing her meal, <span class="quote speech">they said they'd try | ||||
|   to get a phone connection going.</span><br /> | ||||
|   As if on cue, the phone on the large center console begins to ring. Lena | ||||
|   gets up and walks over, Emily follows her. <span class="comment">note: | ||||
|   might need to imply that Lena is very sick</span> Lena sits down in | ||||
|   front of it, picks up the receiver, and presses a few buttons. | ||||
|   The speaker on the console starts crackling and hissing. Through the | ||||
|   noise, they hear a faint voice. Lena leans over to a microphone and | ||||
|   talks into it:<br /> | ||||
|   <span class="quote speech">We can't hear you, one moment.</span> | ||||
|   <br /> | ||||
|   She flips some switches on the console. The speaker cracles some more, | ||||
|   then a loud pop, then silence. The smell of magic smoke is in the air. | ||||
| </p> | ||||
| <p> | ||||
|   Lena turns to a terminal and starts typing.<br /> | ||||
|   <span class="comment">note to self: missing establishing connection<br /> | ||||
|   note to self: add some data corruption</span> | ||||
| </p> | ||||
| <pre class="terminal"> | ||||
| MOON-01 > This hasn't been maintained in forever. I think the | ||||
|           phone just went. | ||||
| EARTH-53> You may wanna check the modules under P2 for burnt components. | ||||
| MOON-01 > I know. | ||||
| MOON-01 > We have another problem somewhere along the line. There's | ||||
|           apparently more noise than signal. | ||||
| </pre> | ||||
| <p> | ||||
|   Lena opens a cover with a small label "P2", pulls two cards | ||||
|   out of their sockets, and inspects them. One has a big black burn mark | ||||
|   right in the center. She turns to Emily:<br /> | ||||
|   <span class="quote speech">Can you fetch me this module from another | ||||
|   phone?</span> | ||||
| </p> | ||||
| <p> | ||||
|   <span class="quote speech">And?</span> Michelle asks Jack as he looks up | ||||
|   from the terminal.<br /> | ||||
|   <span class="quote speech">Weak signal - and they need to fix their | ||||
|   phone.</span><br /> | ||||
|   James asks <span class="quote speech">What about that plan B of | ||||
|   increasing the transmit power?</span><br /> | ||||
|   <span class="quote speech">Meh.</span> Jack doesn't seem too | ||||
|   enthusiastic about it.<br /> | ||||
|   <span class="comment">TODO: Dialog. They decide not to increase the | ||||
|   power before double-checking that everything is aligned properly. Sure | ||||
|   enough, they're off by a bit.<br /> | ||||
|   Request for comment: Does this make the story more interesting or is it | ||||
|   confusing? I originally didn't want to do perspective changes | ||||
|   within chapters, and I still might not, but this was too good of an idea | ||||
|   not to write it down.</span> | ||||
|   finishing her meal, <span class="quote speech">They have some abilities | ||||
|   to remotely control things – including turning on the main radio | ||||
|   transmitter.</span><br /> | ||||
|   She gets up and asks Emily to follow her to one of the consoles with a | ||||
|   terminal. She sits down in front of it, logs on and enters a few | ||||
|   commands. | ||||
| </p> | ||||
| <p class="comment"> | ||||
|   note to self: After fixing the alignment, pick up on the moon and | ||||
|   continue. | ||||
|   corrupted chat, the connection has deteriorated in comparison to before | ||||
| </p> | ||||
| <p class="copyright">Copyright © 2023 Jan Danielzick (aka. BodgeMaster) – All rights reserved.</p><script>let spans = ["<span class=\"paper green\">", "<span>"]; let pre_texts = document.getElementsByTagName("pre"); for (let i = 0; i < pre_texts.length; i++) {if (pre_texts[i].className != "paper") continue; let lines = pre_texts[i].innerHTML.split("\n"); let result = ""; for (let j = 0; j < lines.length; j++) {result = result + spans[j%2] + lines[j] + " ".repeat(80-lines[j].length) + "</span>\n";} pre_texts[i].innerHTML = result;}</script></body></html> | ||||
|  |  | |||
|  | @ -53,7 +53,7 @@ | |||
|     Lena dies | ||||
|   </li> | ||||
|   <li class="comment"> | ||||
|     Emily returns inside and goes to the control center | ||||
|     Emily returns inside and goes to a room with a view of the sky | ||||
|     <ul> | ||||
|       <li class="comment"> | ||||
|         following any procedures such as operating the air lock as | ||||
|  | @ -84,7 +84,7 @@ | |||
|   Emily takes their helmets and brings them into the airlock. She returns | ||||
|   for a life support unit, pulls it out of the rack in the wall, and sets | ||||
|   it down on the floor. Following a mental checklist, she makes sure that | ||||
|   the air tank is connected properly and the status display reads what it | ||||
|   the air bottle is connected properly and the gauges read what they | ||||
|   should. Everything okay... or is it? She double-checks with the check | ||||
|   list on the wall. Yes, this unit is ready. She triple-checks everything | ||||
|   – first time it actually matters. Reasonably satisfied with her | ||||
|  | @ -96,8 +96,8 @@ | |||
|   The pumps are getting quieter and quieter. Lena kneels on the floor | ||||
|   holding a bunch of flowers from the biotope module, her life support | ||||
|   unit next to her on a short tether. Emily puts it on her back and and | ||||
|   helps her up. The outer door of the airlock swings aside and they start | ||||
|   walking, Lena leaning on Emily. | ||||
|   helps her up. The outer door of the airlock silently swings aside and | ||||
|   they start walking, Lena leaning on Emily. | ||||
| </p> | ||||
| <p> | ||||
|   They reach the graveyard and walk over to the recent graves. The entire | ||||
|  | @ -105,7 +105,7 @@ | |||
|   buried. Some have signs with names, some have painted pieces of regalith | ||||
|   as gravestones, some have <span class="comment"><the crumpled remains | ||||
|   of>? What happens to flowers when exposed to vacuum for a prolonged | ||||
|   amount of time?</span> flowers next to them, some are entirely | ||||
|   amount of time?</span> flowers next to them, a few are entirely | ||||
|   undecorated. | ||||
| </p> | ||||
| <p> | ||||
|  | @ -140,14 +140,13 @@ | |||
|     Emily starting to reconsider her choice not to leave the moon | ||||
|   </lI> | ||||
|   <li class="comment"> | ||||
|     brief mention that the conversation changes to a more pleasant topic | ||||
|     and continues for a while | ||||
|     The conversation topic changes to Earth in general | ||||
|   </li> | ||||
| </ul> | ||||
| <p> | ||||
|   The conversation is interrupted by the beeping of Lena's low oxygen | ||||
|   alarm going off. Emily gets up and walks back to the habitat. She enters | ||||
|   through the airlock and looks for a full oxygen bottle. She lifts one | ||||
|   through the airlock and looks for a full air bottle. She lifts one | ||||
|   out of its rack and carries it back to Lena. She opens the life support | ||||
|   unit and closes the valves on it and the empty bottle, then she replaces | ||||
|   it and opens the valves again. Just as she is done with that, her own | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue