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> |     </ul> | ||||||
|   </li> |   </li> | ||||||
|   <li class="comment"> |   <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 |     a meal | ||||||
|     <ul> |     <ul> | ||||||
|       <li class="comment"> |       <li class="comment"> | ||||||
|         the meal gets interrupted by the equipment in the control center |         the meal gets interrupted by the equipment in the control center | ||||||
|         coming to life (fans coming on, some control panels lighting up, |         coming to life | ||||||
|         boot-up/status/ready beeps) |  | ||||||
|         <ul> |         <ul> | ||||||
|           <li class="comment"> |           <li class="comment"> | ||||||
|             a status light on the wall, that Emily had never seen on, |             a status light on the wall, that Emily had never seen on, | ||||||
|  | @ -74,9 +73,6 @@ | ||||||
|   </li> |   </li> | ||||||
| </ul> | </ul> | ||||||
| <p> | <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> |   Emily closes the cage and puts the <whatever they feed the mice> | ||||||
|   back into the cupboard. She <span class="comment">does something related |   back into the cupboard. She <span class="comment">does something related | ||||||
|   to taking care of the mice</span>, steps out into the hallway, and |   to taking care of the mice</span>, steps out into the hallway, and | ||||||
|  | @ -87,24 +83,23 @@ | ||||||
| <p> | <p> | ||||||
|   3 – 5 – 2 – 1 – Enter. The keypad beeps with |   3 – 5 – 2 – 1 – Enter. The keypad beeps with | ||||||
|   every button press. A computer voice announces |   every button press. A computer voice announces | ||||||
|   <span class="quote speech">Access authorized</span>. The door to the main |   <span class="quote speech">Access authorized</span> and the door slides | ||||||
|   control center module slides up and she steps through. The module |   up. She steps through into the main control center. The module contains | ||||||
|   contains one large room with rows of integrated computer equipment desks |   one large room with rows of integrated computer equipment desks arranged | ||||||
|   arranged <span class="comment">need a fitting description of what a |   <span class="comment">need a fitting description of what a mission | ||||||
|   mission control rom looks like</span>. The wall to the left that most of |   control rom looks like</span>. The wall to the left that most of the | ||||||
|   the seats are facing is completely taken up by a panorama window into |   seats are facing is completely taken up by a panorama window into the | ||||||
|   the biosphere, an even larger module with a ceiling of glass and support |   biotope, an even larger module with a ceiling of glass and support beams, | ||||||
|   beams completely taken up by plant life, trees, small animals, and a big |   completely filled with plant life, trees, small animals, and a big pond. | ||||||
|   pond. The wall to the right holds a large status panel with some |   The wall to the right holds a large status panel with some seven-segment | ||||||
|   seven-segment displays for information and lots of big status indicator |   displays for information and lots of big status indicator symbols. | ||||||
|   symbols. |  | ||||||
| </p> | </p> | ||||||
| <p> | <p> | ||||||
|   Emily walks down the shallow stairs towards the panorama window. In |   Emily walks down the shallow stairs towards the panorama window. In | ||||||
|   front of the window are tables and chairs that were moved there recently |   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 |   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, |   people when there still more than just Lena and her. Lena sits at one of | ||||||
|   <span class="comment">preparing something</span> while waiting for her. |   them, cutting a bread into slices while waiting for her. | ||||||
| </p> | </p> | ||||||
| <p class="comment"> | <p class="comment"> | ||||||
|   missing dialog about food and starting to eat |   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. |   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 |   A large, green triangle with the letters LINK next to it flickers and | ||||||
|   then lights up. Emily looks at it in confusion.<br /> |   then lights up. Emily looks at it in confusion.<br /> | ||||||
|   <span class="quote speech">What does that light mean?</span> She gestures |   <span class="quote speech">What's going on?</span><br /> | ||||||
|   towards it.<br /> |  | ||||||
|   <span class="quote speech">That's them.</span><br /> |   <span class="quote speech">That's them.</span><br /> | ||||||
|   <span class="quote speech">Earth people?</span><br /> |   <span class="quote speech">Earth people?</span><br /> | ||||||
|   <span class="quote speech">Yes</span>, Lena replies while quickly |   <span class="quote speech">Yes</span>, Lena replies while quickly | ||||||
|   finishing her meal, <span class="quote speech">they said they'd try |   finishing her meal, <span class="quote speech">They have some abilities | ||||||
|   to get a phone connection going.</span><br /> |   to remotely control things – including turning on the main radio | ||||||
|   As if on cue, the phone on the large center console begins to ring. Lena |   transmitter.</span><br /> | ||||||
|   gets up and walks over, Emily follows her. <span class="comment">note: |   She gets up and asks Emily to follow her to one of the consoles with a | ||||||
|   might need to imply that Lena is very sick</span> Lena sits down in |   terminal. She sits down in front of it, logs on and enters a few | ||||||
|   front of it, picks up the receiver, and presses a few buttons. |   commands. | ||||||
|   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> |  | ||||||
| </p> | </p> | ||||||
| <p class="comment"> | <p class="comment"> | ||||||
|   note to self: After fixing the alignment, pick up on the moon and |   corrupted chat, the connection has deteriorated in comparison to before | ||||||
|   continue. |  | ||||||
| </p> | </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> | <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 |     Lena dies | ||||||
|   </li> |   </li> | ||||||
|   <li class="comment"> |   <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> |     <ul> | ||||||
|       <li class="comment"> |       <li class="comment"> | ||||||
|         following any procedures such as operating the air lock as |         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 |   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 |   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 |   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 |   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 |   list on the wall. Yes, this unit is ready. She triple-checks everything | ||||||
|   – first time it actually matters. Reasonably satisfied with her |   – 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 |   The pumps are getting quieter and quieter. Lena kneels on the floor | ||||||
|   holding a bunch of flowers from the biotope module, her life support |   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 |   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 |   helps her up. The outer door of the airlock silently swings aside and | ||||||
|   walking, Lena leaning on Emily. |   they start walking, Lena leaning on Emily. | ||||||
| </p> | </p> | ||||||
| <p> | <p> | ||||||
|   They reach the graveyard and walk over to the recent graves. The entire |   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 |   buried. Some have signs with names, some have painted pieces of regalith | ||||||
|   as gravestones, some have <span class="comment"><the crumpled remains |   as gravestones, some have <span class="comment"><the crumpled remains | ||||||
|   of>? What happens to flowers when exposed to vacuum for a prolonged |   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. |   undecorated. | ||||||
| </p> | </p> | ||||||
| <p> | <p> | ||||||
|  | @ -140,14 +140,13 @@ | ||||||
|     Emily starting to reconsider her choice not to leave the moon |     Emily starting to reconsider her choice not to leave the moon | ||||||
|   </lI> |   </lI> | ||||||
|   <li class="comment"> |   <li class="comment"> | ||||||
|     brief mention that the conversation changes to a more pleasant topic |     The conversation topic changes to Earth in general | ||||||
|     and continues for a while |  | ||||||
|   </li> |   </li> | ||||||
| </ul> | </ul> | ||||||
| <p> | <p> | ||||||
|   The conversation is interrupted by the beeping of Lena's low oxygen |   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 |   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 |   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 |   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 |   it and opens the valves again. Just as she is done with that, her own | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue