diff options
Diffstat (limited to 'blog')
-rw-r--r-- | blog/c/game.html | 467 |
1 files changed, 212 insertions, 255 deletions
diff --git a/blog/c/game.html b/blog/c/game.html index d79bbbf..ac14ee3 100644 --- a/blog/c/game.html +++ b/blog/c/game.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <head> -<!-- 2024-02-14 Wed 23:58 --> +<!-- 2024-02-15 Thu 00:02 --> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <title>The loneliness Game</title> @@ -12,38 +12,6 @@ <link rel="stylesheet" type="text/css" href="../../src/css/colors.css"/> <link rel="stylesheet" type="text/css" href="../../src/css/style.css"/> <link rel="icon" type="image/x-icon" href="../../../favicon.png"> -<script> - window.MathJax = { - tex: { - ams: { - multlineWidth: '85%' - }, - tags: 'ams', - tagSide: 'right', - tagIndent: '.8em' - }, - chtml: { - scale: 1.0, - displayAlign: 'center', - displayIndent: '0em' - }, - svg: { - scale: 1.0, - displayAlign: 'center', - displayIndent: '0em' - }, - output: { - font: 'mathjax-modern', - displayOverflow: 'overflow' - } - }; -</script> - -<script - id="MathJax-script" - async - src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"> -</script> </head> <body> <div id="org-div-home-and-up"> @@ -55,170 +23,164 @@ <p> Hello !!, I hope you are doing great you amazing person whoever you are, and I really appreciate you reading my little C programming adventure. Soo basically I wanted to blog about a little game I made when bored, and figured out it would be a great way to optimize it, and learn new stuff too by documenting the process! </p> -<div id="outline-container-org494cba6" class="outline-2"> -<h2 id="org494cba6">The concept :</h2> -<div class="outline-text-2" id="text-org494cba6"> +<div id="outline-container-org09f9ff1" class="outline-2"> +<h2 id="org09f9ff1">The concept :</h2> +<div class="outline-text-2" id="text-org09f9ff1"> <p> Basically the player is faced with a NxM field made up with the sign <b>“-”</b> and the player is denoted by the symbol <b>“+”</b>, there are also Bonuses <b>“B”</b> which add 1 to your score, Traps <b>“T”</b>, that remove one from your score, and Dead <b>“D”</b> which resets the score to 0. I will go into more of the specifics later but for now this is how it works, and the controls are Basic WASD bindings, though i may go for a HJKL style later. </p> </div> </div> -<div id="outline-container-org490b019" class="outline-2"> -<h2 id="org490b019">The code :</h2> -<div class="outline-text-2" id="text-org490b019"> -<blockquote> -<p> -#include <stdio.h> -#include <stdlib.h> -int main(int argc, char *argv[]) { - char input,map[5][5] = { - {’-’, ’-’, ’-’, ’-’, ’-’}, - {’-’, ’-’, ’-’, ’-’, ’-’}, - {’-’, ’-’, ’-’, ’-’, ’-’}, - {’-’, ’-’, ’-’, ’-’, ’-’}, - {’-’, ’-’, ’-’, ’-’, ’-’} - }; - int stop=0,i=0,moves=0,score=0,pos[2] = {2, 2}; - int bonus[2]; - int trap[2] ; - int death[2]; - map[pos[0]][pos[1]] = ’<del>’; - do{ - bonus[0] = arc4random_uniform(5); bonus[1] = arc4random_uniform(5); - trap[0] = arc4random_uniform(5); trap[1] = arc4random_uniform(5); - death[0] = arc4random_uniform(5); death[1] = arc4random_uniform(5); - }while((bonus[0] <code>= trap[0] && bonus[1] =</code> trap[1]) || (bonus[0] <code>= death[0] && bonus[1] =</code> death[1]) || (trap[0] <code>= death[0] && trap[1] =</code> death[1]) || (bonus[0] <code>= pos[0] && bonus[1] =</code> pos[1]) || (trap[0] <code>= pos[0] && trap[1] =</code> pos[1]) || (death[0] <code>= pos[0] && death[1] =</code> pos[1])); - map[bonus[0]][bonus[1]] = ’B’; - map[trap[0]][trap[1]] = ’T’; - map[death[0]][death[1]] = ’D’; - do{ - printf(“Map:\n”); - for (int i = 0; i < 5; i+</del>) { - for (int j = 0; j < 5; j++) { - printf(“%c ”, map[i][j]); - } - printf(“\n”); - } - printf(“Score: %d\n”, score); - printf(“Moves: %d\n”, moves); - printf(“Enter a direction (w,a,s,d) or c to quit: ”); - scanf(“ %c”, &input); -// pos[0] updown pos[1] lr - if (input <code>= 'w') { - printf("Moving up\n"); - map[pos[0]][pos[1]] = '-'; - if (pos[0] =</code> 0) { - pos[0] = 4; - } - else { - pos[0]–; - } - } else if (input <code>= 'a') { - printf("Moving left\n"); - map[pos[0]][pos[1]] = '-'; - if (pos[1] =</code> 0) { - pos[1] = 4; - } - else { - pos[1]–; - } - } else if (input == ’s’) { -</p> - -<p> - printf("Moving down\n”); - map[pos[0]][pos[1]] = ’-’; - if (pos[0] <code>= 4) { - pos[0] = 0; - } - else { - pos[0]++; - } - } else if (input =</code> ’d’) { - printf(“Moving right\n”); - map[pos[0]][pos[1]] = ’-’; - if (pos[1] <code>= 4) { - pos[1] = 0; - } - else { - pos[1]++; - } - } else if (input =</code> ’c’) { - printf(“Quitting\n”); -} else { - printf(“Invalid input\n”); -} -map[pos[0]][pos[1]] = ’<del>’; -if (pos[0] <code>= bonus[0] && pos[1] =</code> bonus[1]) { - score+</del>; - do{ - bonus[0]= arc4random_uniform(5); - bonus[1]= arc4random_uniform(5); - }while((bonus[0] <code>= trap[0] && bonus[1] =</code> trap[1]) || (bonus[0] <code>= death[0] && bonus[1] =</code> death[1]) || (bonus[0] <code>= pos[0] && bonus[1] =</code> pos[1])); -} -if (pos[0] <code>= trap[0] && pos[1] =</code> trap[1]) { - score–; - do{ - trap[0]= arc4random_uniform(5); - trap[1]= arc4random_uniform(5); - }while((trap[0] <code>= bonus[0] && trap[1] =</code> bonus[1]) || (trap[0] <code>= death[0] && trap[1] =</code> death[1]) || (trap[0] <code>= pos[0] && trap[1] =</code> pos[1])); - } -if (pos[0] <code>= death[0] && pos[1] =</code> death[1]) { - score = 0; - do{ - death[0]= arc4random_uniform(5); - death[1]= arc4random_uniform(5); - }while((death[0] <code>= bonus[0] && death[1] =</code> bonus[1]) || (death[0] <code>= trap[0] && death[1] =</code> trap[1]) || (death[0] <code>= pos[0] && death[1] =</code> pos[1])); -} -if (score % 3 <code>= 0 && score !</code> 0 && stop <code>= 0) { - map[death[0]][death[1]] = '-'; - do{ - death[0]</code> arc4random_uniform(5); - death[1]= arc4random_uniform(5); - }while((death[0] <code>= bonus[0] && death[1] =</code> bonus[1]) || (death[0] <code>= trap[0] && death[1] =</code> trap[1]) || (death[0] <code>= pos[0] && death[1] =</code> pos[1])); - stop = 1; -} -else if (score % 3 != 0) { -stop = 0; -} -if (moves % 5 <code>= 0 && moves !</code> 0) { - do{ - map[trap[0]][trap[1]] = ’-’; - trap[0]= arc4random_uniform(5); - trap[1]= arc4random_uniform(5); - }while((trap[0] <code>= bonus[0] && trap[1] =</code> bonus[1]) || (trap[0] <code>= death[0] && trap[1] =</code> death[1]) || (trap[0] <code>= pos[0] && trap[1] =</code> pos[1])); -</p> - -<p> - } - map[bonus[0]][bonus[1]] = ’B’; - map[trap[0]][trap[1]] = ’T’; - map[death[0]][death[1]] = ’D’; - moves++; - }while(input != ’c’); - return 0; -} -</p> -</blockquote> +<div id="outline-container-org82bcd1e" class="outline-2"> +<h2 id="org82bcd1e">The code :</h2> +<div class="outline-text-2" id="text-org82bcd1e"> +<div class="org-src-container"> +<pre class="src src-c"><span class="linenr"> 1: </span><span style="color: #f9e2af;">#include</span> <span style="color: #f38ba8;"><</span><span style="color: #a6e3a1;">stdio.h</span><span style="color: #f38ba8;">></span> +<span class="linenr"> 2: </span><span style="color: #f9e2af;">#include</span> <span style="color: #f38ba8;"><</span><span style="color: #a6e3a1;">stdlib.h</span><span style="color: #f38ba8;">></span> +<span class="linenr"> 3: </span><span style="color: #f9e2af;">int</span> <span style="color: #89b4fa;">main</span><span style="color: #f38ba8;">(</span><span style="color: #f9e2af;">int</span> <span style="color: #cdd6f4;">argc</span>, <span style="color: #f9e2af;">char</span> *<span style="color: #cdd6f4;">argv</span><span style="color: #fab387;">[]</span><span style="color: #f38ba8;">)</span> <span style="color: #f38ba8;">{</span> +<span class="linenr"> 4: </span> <span style="color: #f9e2af;">char</span> <span style="color: #cdd6f4;">input</span>,<span style="color: #cdd6f4;">map</span><span style="color: #fab387;">[</span><span style="color: #fab387;">5</span><span style="color: #fab387;">][</span><span style="color: #fab387;">5</span><span style="color: #fab387;">]</span> = <span style="color: #fab387;">{</span> +<span class="linenr"> 5: </span> <span style="color: #f9e2af;">{</span><span style="color: #a6e3a1;">'-'</span>, <span style="color: #a6e3a1;">'-'</span>, <span style="color: #a6e3a1;">'-'</span>, <span style="color: #a6e3a1;">'-'</span>, <span style="color: #a6e3a1;">'-'</span><span style="color: #f9e2af;">}</span>, +<span class="linenr"> 6: </span> <span style="color: #f9e2af;">{</span><span style="color: #a6e3a1;">'-'</span>, <span style="color: #a6e3a1;">'-'</span>, <span style="color: #a6e3a1;">'-'</span>, <span style="color: #a6e3a1;">'-'</span>, <span style="color: #a6e3a1;">'-'</span><span style="color: #f9e2af;">}</span>, +<span class="linenr"> 7: </span> <span style="color: #f9e2af;">{</span><span style="color: #a6e3a1;">'-'</span>, <span style="color: #a6e3a1;">'-'</span>, <span style="color: #a6e3a1;">'-'</span>, <span style="color: #a6e3a1;">'-'</span>, <span style="color: #a6e3a1;">'-'</span><span style="color: #f9e2af;">}</span>, +<span class="linenr"> 8: </span> <span style="color: #f9e2af;">{</span><span style="color: #a6e3a1;">'-'</span>, <span style="color: #a6e3a1;">'-'</span>, <span style="color: #a6e3a1;">'-'</span>, <span style="color: #a6e3a1;">'-'</span>, <span style="color: #a6e3a1;">'-'</span><span style="color: #f9e2af;">}</span>, +<span class="linenr"> 9: </span> <span style="color: #f9e2af;">{</span><span style="color: #a6e3a1;">'-'</span>, <span style="color: #a6e3a1;">'-'</span>, <span style="color: #a6e3a1;">'-'</span>, <span style="color: #a6e3a1;">'-'</span>, <span style="color: #a6e3a1;">'-'</span><span style="color: #f9e2af;">}</span> +<span class="linenr"> 10: </span> <span style="color: #fab387;">}</span>; +<span class="linenr"> 11: </span> <span style="color: #f9e2af;">int</span> <span style="color: #cdd6f4;">stop</span>=<span style="color: #fab387;">0</span>,<span style="color: #cdd6f4;">i</span>=<span style="color: #fab387;">0</span>,<span style="color: #cdd6f4;">moves</span>=<span style="color: #fab387;">0</span>,<span style="color: #cdd6f4;">score</span>=<span style="color: #fab387;">0</span>,<span style="color: #cdd6f4;">pos</span><span style="color: #fab387;">[</span><span style="color: #fab387;">2</span><span style="color: #fab387;">]</span> = <span style="color: #fab387;">{</span><span style="color: #fab387;">2</span>, <span style="color: #fab387;">2</span><span style="color: #fab387;">}</span>; +<span class="linenr"> 12: </span> <span style="color: #f9e2af;">int</span> <span style="color: #cdd6f4;">bonus</span><span style="color: #fab387;">[</span><span style="color: #fab387;">2</span><span style="color: #fab387;">]</span>; +<span class="linenr"> 13: </span> <span style="color: #f9e2af;">int</span> <span style="color: #cdd6f4;">trap</span><span style="color: #fab387;">[</span><span style="color: #fab387;">2</span><span style="color: #fab387;">]</span> ; +<span class="linenr"> 14: </span> <span style="color: #f9e2af;">int</span> <span style="color: #cdd6f4;">death</span><span style="color: #fab387;">[</span><span style="color: #fab387;">2</span><span style="color: #fab387;">]</span>; +<span class="linenr"> 15: </span> map<span style="color: #fab387;">[</span>pos<span style="color: #f9e2af;">[</span><span style="color: #fab387;">0</span><span style="color: #f9e2af;">]</span><span style="color: #fab387;">][</span>pos<span style="color: #f9e2af;">[</span><span style="color: #fab387;">1</span><span style="color: #f9e2af;">]</span><span style="color: #fab387;">]</span> = <span style="color: #a6e3a1;">'+'</span>; +<span class="linenr"> 16: </span> <span style="color: #cba6f7;">do</span><span style="color: #fab387;">{</span> +<span class="linenr"> 17: </span> bonus<span style="color: #f9e2af;">[</span><span style="color: #fab387;">0</span><span style="color: #f9e2af;">]</span> = arc4random_uniform<span style="color: #f9e2af;">(</span><span style="color: #fab387;">5</span><span style="color: #f9e2af;">)</span>; bonus<span style="color: #f9e2af;">[</span><span style="color: #fab387;">1</span><span style="color: #f9e2af;">]</span> = arc4random_uniform<span style="color: #f9e2af;">(</span><span style="color: #fab387;">5</span><span style="color: #f9e2af;">)</span>; +<span class="linenr"> 18: </span> trap<span style="color: #f9e2af;">[</span><span style="color: #fab387;">0</span><span style="color: #f9e2af;">]</span> = arc4random_uniform<span style="color: #f9e2af;">(</span><span style="color: #fab387;">5</span><span style="color: #f9e2af;">)</span>; trap<span style="color: #f9e2af;">[</span><span style="color: #fab387;">1</span><span style="color: #f9e2af;">]</span> = arc4random_uniform<span style="color: #f9e2af;">(</span><span style="color: #fab387;">5</span><span style="color: #f9e2af;">)</span>; +<span class="linenr"> 19: </span> death<span style="color: #f9e2af;">[</span><span style="color: #fab387;">0</span><span style="color: #f9e2af;">]</span> = arc4random_uniform<span style="color: #f9e2af;">(</span><span style="color: #fab387;">5</span><span style="color: #f9e2af;">)</span>; death<span style="color: #f9e2af;">[</span><span style="color: #fab387;">1</span><span style="color: #f9e2af;">]</span> = arc4random_uniform<span style="color: #f9e2af;">(</span><span style="color: #fab387;">5</span><span style="color: #f9e2af;">)</span>; +<span class="linenr"> 20: </span> <span style="color: #fab387;">}</span><span style="color: #cba6f7;">while</span><span style="color: #fab387;">(</span><span style="color: #f9e2af;">(</span>bonus<span style="color: #a6e3a1;">[</span><span style="color: #fab387;">0</span><span style="color: #a6e3a1;">]</span> == trap<span style="color: #a6e3a1;">[</span><span style="color: #fab387;">0</span><span style="color: #a6e3a1;">]</span> && bonus<span style="color: #a6e3a1;">[</span><span style="color: #fab387;">1</span><span style="color: #a6e3a1;">]</span> == trap<span style="color: #a6e3a1;">[</span><span style="color: #fab387;">1</span><span style="color: #a6e3a1;">]</span><span style="color: #f9e2af;">)</span> || <span style="color: #f9e2af;">(</span>bonus<span style="color: #a6e3a1;">[</span><span style="color: #fab387;">0</span><span style="color: #a6e3a1;">]</span> == death<span style="color: #a6e3a1;">[</span><span style="color: #fab387;">0</span><span style="color: #a6e3a1;">]</span> && bonus<span style="color: #a6e3a1;">[</span><span style="color: #fab387;">1</span><span style="color: #a6e3a1;">]</span> == death<span style="color: #a6e3a1;">[</span><span style="color: #fab387;">1</span><span style="color: #a6e3a1;">]</span><span style="color: #f9e2af;">)</span> || <span style="color: #f9e2af;">(</span>trap<span style="color: #a6e3a1;">[</span><span style="color: #fab387;">0</span><span style="color: #a6e3a1;">]</span> == death<span style="color: #a6e3a1;">[</span><span style="color: #fab387;">0</span><span style="color: #a6e3a1;">]</span> && trap<span style="color: #a6e3a1;">[</span><span style="color: #fab387;">1</span><span style="color: #a6e3a1;">]</span> == death<span style="color: #a6e3a1;">[</span><span style="color: #fab387;">1</span><span style="color: #a6e3a1;">]</span><span style="color: #f9e2af;">)</span> || <span style="color: #f9e2af;">(</span>bonus<span style="color: #a6e3a1;">[</span><span style="color: #fab387;">0</span><span style="color: #a6e3a1;">]</span> == pos<span style="color: #a6e3a1;">[</span><span style="color: #fab387;">0</span><span style="color: #a6e3a1;">]</span> && bonus<span style="color: #a6e3a1;">[</span><span style="color: #fab387;">1</span><span style="color: #a6e3a1;">]</span> == pos<span style="color: #a6e3a1;">[</span><span style="color: #fab387;">1</span><span style="color: #a6e3a1;">]</span><span style="color: #f9e2af;">)</span> || <span style="color: #f9e2af;">(</span>trap<span style="color: #a6e3a1;">[</span><span style="color: #fab387;">0</span><span style="color: #a6e3a1;">]</span> == pos<span style="color: #a6e3a1;">[</span><span style="color: #fab387;">0</span><span style="color: #a6e3a1;">]</span> && trap<span style="color: #a6e3a1;">[</span><span style="color: #fab387;">1</span><span style="color: #a6e3a1;">]</span> == pos<span style="color: #a6e3a1;">[</span><span style="color: #fab387;">1</span><span style="color: #a6e3a1;">]</span><span style="color: #f9e2af;">)</span> || <span style="color: #f9e2af;">(</span>death<span style="color: #a6e3a1;">[</span><span style="color: #fab387;">0</span><span style="color: #a6e3a1;">]</span> == pos<span style="color: #a6e3a1;">[</span><span style="color: #fab387;">0</span><span style="color: #a6e3a1;">]</span> && death<span style="color: #a6e3a1;">[</span><span style="color: #fab387;">1</span><span style="color: #a6e3a1;">]</span> == pos<span style="color: #a6e3a1;">[</span><span style="color: #fab387;">1</span><span style="color: #a6e3a1;">]</span><span style="color: #f9e2af;">)</span><span style="color: #fab387;">)</span>; +<span class="linenr"> 21: </span> map<span style="color: #fab387;">[</span>bonus<span style="color: #f9e2af;">[</span><span style="color: #fab387;">0</span><span style="color: #f9e2af;">]</span><span style="color: #fab387;">][</span>bonus<span style="color: #f9e2af;">[</span><span style="color: #fab387;">1</span><span style="color: #f9e2af;">]</span><span style="color: #fab387;">]</span> = <span style="color: #a6e3a1;">'B'</span>; +<span class="linenr"> 22: </span> map<span style="color: #fab387;">[</span>trap<span style="color: #f9e2af;">[</span><span style="color: #fab387;">0</span><span style="color: #f9e2af;">]</span><span style="color: #fab387;">][</span>trap<span style="color: #f9e2af;">[</span><span style="color: #fab387;">1</span><span style="color: #f9e2af;">]</span><span style="color: #fab387;">]</span> = <span style="color: #a6e3a1;">'T'</span>; +<span class="linenr"> 23: </span> map<span style="color: #fab387;">[</span>death<span style="color: #f9e2af;">[</span><span style="color: #fab387;">0</span><span style="color: #f9e2af;">]</span><span style="color: #fab387;">][</span>death<span style="color: #f9e2af;">[</span><span style="color: #fab387;">1</span><span style="color: #f9e2af;">]</span><span style="color: #fab387;">]</span> = <span style="color: #a6e3a1;">'D'</span>; +<span class="linenr"> 24: </span> <span style="color: #cba6f7;">do</span><span style="color: #fab387;">{</span> +<span class="linenr"> 25: </span> printf<span style="color: #f9e2af;">(</span><span style="color: #a6e3a1;">"Map:\n"</span><span style="color: #f9e2af;">)</span>; +<span class="linenr"> 26: </span> <span style="color: #cba6f7;">for</span> <span style="color: #f9e2af;">(</span><span style="color: #f9e2af;">int</span> <span style="color: #cdd6f4;">i</span> = <span style="color: #fab387;">0</span>; i < <span style="color: #fab387;">5</span>; i++<span style="color: #f9e2af;">)</span> <span style="color: #f9e2af;">{</span> +<span class="linenr"> 27: </span> <span style="color: #cba6f7;">for</span> <span style="color: #a6e3a1;">(</span><span style="color: #f9e2af;">int</span> <span style="color: #cdd6f4;">j</span> = <span style="color: #fab387;">0</span>; j < <span style="color: #fab387;">5</span>; j++<span style="color: #a6e3a1;">)</span> <span style="color: #a6e3a1;">{</span> +<span class="linenr"> 28: </span> printf<span style="color: #f38ba8;">(</span><span style="color: #a6e3a1;">"%c "</span>, map<span style="color: #fab387;">[</span>i<span style="color: #fab387;">][</span>j<span style="color: #fab387;">]</span><span style="color: #f38ba8;">)</span>; +<span class="linenr"> 29: </span> <span style="color: #a6e3a1;">}</span> +<span class="linenr"> 30: </span> printf<span style="color: #a6e3a1;">(</span><span style="color: #a6e3a1;">"\n"</span><span style="color: #a6e3a1;">)</span>; +<span class="linenr"> 31: </span> <span style="color: #f9e2af;">}</span> +<span class="linenr"> 32: </span> printf<span style="color: #f9e2af;">(</span><span style="color: #a6e3a1;">"Score: %d\n"</span>, score<span style="color: #f9e2af;">)</span>; +<span class="linenr"> 33: </span> printf<span style="color: #f9e2af;">(</span><span style="color: #a6e3a1;">"Moves: %d\n"</span>, moves<span style="color: #f9e2af;">)</span>; +<span class="linenr"> 34: </span> printf<span style="color: #f9e2af;">(</span><span style="color: #a6e3a1;">"Enter a direction (w,a,s,d) or c to quit: "</span><span style="color: #f9e2af;">)</span>; +<span class="linenr"> 35: </span> scanf<span style="color: #f9e2af;">(</span><span style="color: #a6e3a1;">" %c"</span>, &input<span style="color: #f9e2af;">)</span>; +<span class="linenr"> 36: </span><span style="color: #6c7086;">// </span><span style="color: #6c7086;">pos[0] updown pos[1] lr</span> +<span class="linenr"> 37: </span> <span style="color: #cba6f7;">if</span> <span style="color: #f9e2af;">(</span>input == <span style="color: #a6e3a1;">'w'</span><span style="color: #f9e2af;">)</span> <span style="color: #f9e2af;">{</span> +<span class="linenr"> 38: </span> printf<span style="color: #a6e3a1;">(</span><span style="color: #a6e3a1;">"Moving up\n"</span><span style="color: #a6e3a1;">)</span>; +<span class="linenr"> 39: </span> map<span style="color: #a6e3a1;">[</span>pos<span style="color: #f38ba8;">[</span><span style="color: #fab387;">0</span><span style="color: #f38ba8;">]</span><span style="color: #a6e3a1;">][</span>pos<span style="color: #f38ba8;">[</span><span style="color: #fab387;">1</span><span style="color: #f38ba8;">]</span><span style="color: #a6e3a1;">]</span> = <span style="color: #a6e3a1;">'-'</span>; +<span class="linenr"> 40: </span> <span style="color: #cba6f7;">if</span> <span style="color: #a6e3a1;">(</span>pos<span style="color: #f38ba8;">[</span><span style="color: #fab387;">0</span><span style="color: #f38ba8;">]</span> == <span style="color: #fab387;">0</span><span style="color: #a6e3a1;">)</span> <span style="color: #a6e3a1;">{</span> +<span class="linenr"> 41: </span> pos<span style="color: #f38ba8;">[</span><span style="color: #fab387;">0</span><span style="color: #f38ba8;">]</span> = <span style="color: #fab387;">4</span>; +<span class="linenr"> 42: </span> <span style="color: #a6e3a1;">}</span> +<span class="linenr"> 43: </span> <span style="color: #cba6f7;">else</span> <span style="color: #a6e3a1;">{</span> +<span class="linenr"> 44: </span> pos<span style="color: #f38ba8;">[</span><span style="color: #fab387;">0</span><span style="color: #f38ba8;">]</span>--; +<span class="linenr"> 45: </span> <span style="color: #a6e3a1;">}</span> +<span class="linenr"> 46: </span> <span style="color: #f9e2af;">}</span> <span style="color: #cba6f7;">else</span> <span style="color: #cba6f7;">if</span> <span style="color: #f9e2af;">(</span>input == <span style="color: #a6e3a1;">'a'</span><span style="color: #f9e2af;">)</span> <span style="color: #f9e2af;">{</span> +<span class="linenr"> 47: </span> printf<span style="color: #a6e3a1;">(</span><span style="color: #a6e3a1;">"Moving left\n"</span><span style="color: #a6e3a1;">)</span>; +<span class="linenr"> 48: </span> map<span style="color: #a6e3a1;">[</span>pos<span style="color: #f38ba8;">[</span><span style="color: #fab387;">0</span><span style="color: #f38ba8;">]</span><span style="color: #a6e3a1;">][</span>pos<span style="color: #f38ba8;">[</span><span style="color: #fab387;">1</span><span style="color: #f38ba8;">]</span><span style="color: #a6e3a1;">]</span> = <span style="color: #a6e3a1;">'-'</span>; +<span class="linenr"> 49: </span> <span style="color: #cba6f7;">if</span> <span style="color: #a6e3a1;">(</span>pos<span style="color: #f38ba8;">[</span><span style="color: #fab387;">1</span><span style="color: #f38ba8;">]</span> == <span style="color: #fab387;">0</span><span style="color: #a6e3a1;">)</span> <span style="color: #a6e3a1;">{</span> +<span class="linenr"> 50: </span> pos<span style="color: #f38ba8;">[</span><span style="color: #fab387;">1</span><span style="color: #f38ba8;">]</span> = <span style="color: #fab387;">4</span>; +<span class="linenr"> 51: </span> <span style="color: #a6e3a1;">}</span> +<span class="linenr"> 52: </span> <span style="color: #cba6f7;">else</span> <span style="color: #a6e3a1;">{</span> +<span class="linenr"> 53: </span> pos<span style="color: #f38ba8;">[</span><span style="color: #fab387;">1</span><span style="color: #f38ba8;">]</span>--; +<span class="linenr"> 54: </span> <span style="color: #a6e3a1;">}</span> +<span class="linenr"> 55: </span> <span style="color: #f9e2af;">}</span> <span style="color: #cba6f7;">else</span> <span style="color: #cba6f7;">if</span> <span style="color: #f9e2af;">(</span>input == <span style="color: #a6e3a1;">'s'</span><span style="color: #f9e2af;">)</span> <span style="color: #f9e2af;">{</span> +<span class="linenr"> 56: </span> +<span class="linenr"> 57: </span> printf<span style="color: #a6e3a1;">(</span><span style="color: #a6e3a1;">"Moving down\n"</span><span style="color: #a6e3a1;">)</span>; +<span class="linenr"> 58: </span> map<span style="color: #a6e3a1;">[</span>pos<span style="color: #f38ba8;">[</span><span style="color: #fab387;">0</span><span style="color: #f38ba8;">]</span><span style="color: #a6e3a1;">][</span>pos<span style="color: #f38ba8;">[</span><span style="color: #fab387;">1</span><span style="color: #f38ba8;">]</span><span style="color: #a6e3a1;">]</span> = <span style="color: #a6e3a1;">'-'</span>; +<span class="linenr"> 59: </span> <span style="color: #cba6f7;">if</span> <span style="color: #a6e3a1;">(</span>pos<span style="color: #f38ba8;">[</span><span style="color: #fab387;">0</span><span style="color: #f38ba8;">]</span> == <span style="color: #fab387;">4</span><span style="color: #a6e3a1;">)</span> <span style="color: #a6e3a1;">{</span> +<span class="linenr"> 60: </span> pos<span style="color: #f38ba8;">[</span><span style="color: #fab387;">0</span><span style="color: #f38ba8;">]</span> = <span style="color: #fab387;">0</span>; +<span class="linenr"> 61: </span> <span style="color: #a6e3a1;">}</span> +<span class="linenr"> 62: </span> <span style="color: #cba6f7;">else</span> <span style="color: #a6e3a1;">{</span> +<span class="linenr"> 63: </span> pos<span style="color: #f38ba8;">[</span><span style="color: #fab387;">0</span><span style="color: #f38ba8;">]</span>++; +<span class="linenr"> 64: </span> <span style="color: #a6e3a1;">}</span> +<span class="linenr"> 65: </span> <span style="color: #f9e2af;">}</span> <span style="color: #cba6f7;">else</span> <span style="color: #cba6f7;">if</span> <span style="color: #f9e2af;">(</span>input == <span style="color: #a6e3a1;">'d'</span><span style="color: #f9e2af;">)</span> <span style="color: #f9e2af;">{</span> +<span class="linenr"> 66: </span> printf<span style="color: #a6e3a1;">(</span><span style="color: #a6e3a1;">"Moving right\n"</span><span style="color: #a6e3a1;">)</span>; +<span class="linenr"> 67: </span> map<span style="color: #a6e3a1;">[</span>pos<span style="color: #f38ba8;">[</span><span style="color: #fab387;">0</span><span style="color: #f38ba8;">]</span><span style="color: #a6e3a1;">][</span>pos<span style="color: #f38ba8;">[</span><span style="color: #fab387;">1</span><span style="color: #f38ba8;">]</span><span style="color: #a6e3a1;">]</span> = <span style="color: #a6e3a1;">'-'</span>; +<span class="linenr"> 68: </span> <span style="color: #cba6f7;">if</span> <span style="color: #a6e3a1;">(</span>pos<span style="color: #f38ba8;">[</span><span style="color: #fab387;">1</span><span style="color: #f38ba8;">]</span> == <span style="color: #fab387;">4</span><span style="color: #a6e3a1;">)</span> <span style="color: #a6e3a1;">{</span> +<span class="linenr"> 69: </span> pos<span style="color: #f38ba8;">[</span><span style="color: #fab387;">1</span><span style="color: #f38ba8;">]</span> = <span style="color: #fab387;">0</span>; +<span class="linenr"> 70: </span> <span style="color: #a6e3a1;">}</span> +<span class="linenr"> 71: </span> <span style="color: #cba6f7;">else</span> <span style="color: #a6e3a1;">{</span> +<span class="linenr"> 72: </span> pos<span style="color: #f38ba8;">[</span><span style="color: #fab387;">1</span><span style="color: #f38ba8;">]</span>++; +<span class="linenr"> 73: </span> <span style="color: #a6e3a1;">}</span> +<span class="linenr"> 74: </span> <span style="color: #f9e2af;">}</span> <span style="color: #cba6f7;">else</span> <span style="color: #cba6f7;">if</span> <span style="color: #f9e2af;">(</span>input == <span style="color: #a6e3a1;">'c'</span><span style="color: #f9e2af;">)</span> <span style="color: #f9e2af;">{</span> +<span class="linenr"> 75: </span> printf<span style="color: #a6e3a1;">(</span><span style="color: #a6e3a1;">"Quitting\n"</span><span style="color: #a6e3a1;">)</span>; +<span class="linenr"> 76: </span> <span style="color: #f9e2af;">}</span> <span style="color: #cba6f7;">else</span> <span style="color: #f9e2af;">{</span> +<span class="linenr"> 77: </span> printf<span style="color: #a6e3a1;">(</span><span style="color: #a6e3a1;">"Invalid input\n"</span><span style="color: #a6e3a1;">)</span>; +<span class="linenr"> 78: </span> <span style="color: #f9e2af;">}</span> +<span class="linenr"> 79: </span> map<span style="color: #f9e2af;">[</span>pos<span style="color: #a6e3a1;">[</span><span style="color: #fab387;">0</span><span style="color: #a6e3a1;">]</span><span style="color: #f9e2af;">][</span>pos<span style="color: #a6e3a1;">[</span><span style="color: #fab387;">1</span><span style="color: #a6e3a1;">]</span><span style="color: #f9e2af;">]</span> = <span style="color: #a6e3a1;">'+'</span>; +<span class="linenr"> 80: </span> <span style="color: #cba6f7;">if</span> <span style="color: #f9e2af;">(</span>pos<span style="color: #a6e3a1;">[</span><span style="color: #fab387;">0</span><span style="color: #a6e3a1;">]</span> == bonus<span style="color: #a6e3a1;">[</span><span style="color: #fab387;">0</span><span style="color: #a6e3a1;">]</span> && pos<span style="color: #a6e3a1;">[</span><span style="color: #fab387;">1</span><span style="color: #a6e3a1;">]</span> == bonus<span style="color: #a6e3a1;">[</span><span style="color: #fab387;">1</span><span style="color: #a6e3a1;">]</span><span style="color: #f9e2af;">)</span> <span style="color: #f9e2af;">{</span> +<span class="linenr"> 81: </span> score++; +<span class="linenr"> 82: </span> <span style="color: #cba6f7;">do</span><span style="color: #a6e3a1;">{</span> +<span class="linenr"> 83: </span> bonus<span style="color: #f38ba8;">[</span><span style="color: #fab387;">0</span><span style="color: #f38ba8;">]</span>= arc4random_uniform<span style="color: #f38ba8;">(</span><span style="color: #fab387;">5</span><span style="color: #f38ba8;">)</span>; +<span class="linenr"> 84: </span> bonus<span style="color: #f38ba8;">[</span><span style="color: #fab387;">1</span><span style="color: #f38ba8;">]</span>= arc4random_uniform<span style="color: #f38ba8;">(</span><span style="color: #fab387;">5</span><span style="color: #f38ba8;">)</span>; +<span class="linenr"> 85: </span> <span style="color: #a6e3a1;">}</span><span style="color: #cba6f7;">while</span><span style="color: #a6e3a1;">(</span><span style="color: #f38ba8;">(</span>bonus<span style="color: #fab387;">[</span><span style="color: #fab387;">0</span><span style="color: #fab387;">]</span> == trap<span style="color: #fab387;">[</span><span style="color: #fab387;">0</span><span style="color: #fab387;">]</span> && bonus<span style="color: #fab387;">[</span><span style="color: #fab387;">1</span><span style="color: #fab387;">]</span> == trap<span style="color: #fab387;">[</span><span style="color: #fab387;">1</span><span style="color: #fab387;">]</span><span style="color: #f38ba8;">)</span> || <span style="color: #f38ba8;">(</span>bonus<span style="color: #fab387;">[</span><span style="color: #fab387;">0</span><span style="color: #fab387;">]</span> == death<span style="color: #fab387;">[</span><span style="color: #fab387;">0</span><span style="color: #fab387;">]</span> && bonus<span style="color: #fab387;">[</span><span style="color: #fab387;">1</span><span style="color: #fab387;">]</span> == death<span style="color: #fab387;">[</span><span style="color: #fab387;">1</span><span style="color: #fab387;">]</span><span style="color: #f38ba8;">)</span> || <span style="color: #f38ba8;">(</span>bonus<span style="color: #fab387;">[</span><span style="color: #fab387;">0</span><span style="color: #fab387;">]</span> == pos<span style="color: #fab387;">[</span><span style="color: #fab387;">0</span><span style="color: #fab387;">]</span> && bonus<span style="color: #fab387;">[</span><span style="color: #fab387;">1</span><span style="color: #fab387;">]</span> == pos<span style="color: #fab387;">[</span><span style="color: #fab387;">1</span><span style="color: #fab387;">]</span><span style="color: #f38ba8;">)</span><span style="color: #a6e3a1;">)</span>; +<span class="linenr"> 86: </span> <span style="color: #f9e2af;">}</span> +<span class="linenr"> 87: </span> <span style="color: #cba6f7;">if</span> <span style="color: #f9e2af;">(</span>pos<span style="color: #a6e3a1;">[</span><span style="color: #fab387;">0</span><span style="color: #a6e3a1;">]</span> == trap<span style="color: #a6e3a1;">[</span><span style="color: #fab387;">0</span><span style="color: #a6e3a1;">]</span> && pos<span style="color: #a6e3a1;">[</span><span style="color: #fab387;">1</span><span style="color: #a6e3a1;">]</span> == trap<span style="color: #a6e3a1;">[</span><span style="color: #fab387;">1</span><span style="color: #a6e3a1;">]</span><span style="color: #f9e2af;">)</span> <span style="color: #f9e2af;">{</span> +<span class="linenr"> 88: </span> score--; +<span class="linenr"> 89: </span> <span style="color: #cba6f7;">do</span><span style="color: #a6e3a1;">{</span> +<span class="linenr"> 90: </span> trap<span style="color: #f38ba8;">[</span><span style="color: #fab387;">0</span><span style="color: #f38ba8;">]</span>= arc4random_uniform<span style="color: #f38ba8;">(</span><span style="color: #fab387;">5</span><span style="color: #f38ba8;">)</span>; +<span class="linenr"> 91: </span> trap<span style="color: #f38ba8;">[</span><span style="color: #fab387;">1</span><span style="color: #f38ba8;">]</span>= arc4random_uniform<span style="color: #f38ba8;">(</span><span style="color: #fab387;">5</span><span style="color: #f38ba8;">)</span>; +<span class="linenr"> 92: </span> <span style="color: #a6e3a1;">}</span><span style="color: #cba6f7;">while</span><span style="color: #a6e3a1;">(</span><span style="color: #f38ba8;">(</span>trap<span style="color: #fab387;">[</span><span style="color: #fab387;">0</span><span style="color: #fab387;">]</span> == bonus<span style="color: #fab387;">[</span><span style="color: #fab387;">0</span><span style="color: #fab387;">]</span> && trap<span style="color: #fab387;">[</span><span style="color: #fab387;">1</span><span style="color: #fab387;">]</span> == bonus<span style="color: #fab387;">[</span><span style="color: #fab387;">1</span><span style="color: #fab387;">]</span><span style="color: #f38ba8;">)</span> || <span style="color: #f38ba8;">(</span>trap<span style="color: #fab387;">[</span><span style="color: #fab387;">0</span><span style="color: #fab387;">]</span> == death<span style="color: #fab387;">[</span><span style="color: #fab387;">0</span><span style="color: #fab387;">]</span> && trap<span style="color: #fab387;">[</span><span style="color: #fab387;">1</span><span style="color: #fab387;">]</span> == death<span style="color: #fab387;">[</span><span style="color: #fab387;">1</span><span style="color: #fab387;">]</span><span style="color: #f38ba8;">)</span> || <span style="color: #f38ba8;">(</span>trap<span style="color: #fab387;">[</span><span style="color: #fab387;">0</span><span style="color: #fab387;">]</span> == pos<span style="color: #fab387;">[</span><span style="color: #fab387;">0</span><span style="color: #fab387;">]</span> && trap<span style="color: #fab387;">[</span><span style="color: #fab387;">1</span><span style="color: #fab387;">]</span> == pos<span style="color: #fab387;">[</span><span style="color: #fab387;">1</span><span style="color: #fab387;">]</span><span style="color: #f38ba8;">)</span><span style="color: #a6e3a1;">)</span>; +<span class="linenr"> 93: </span> <span style="color: #f9e2af;">}</span> +<span class="linenr"> 94: </span> <span style="color: #cba6f7;">if</span> <span style="color: #f9e2af;">(</span>pos<span style="color: #a6e3a1;">[</span><span style="color: #fab387;">0</span><span style="color: #a6e3a1;">]</span> == death<span style="color: #a6e3a1;">[</span><span style="color: #fab387;">0</span><span style="color: #a6e3a1;">]</span> && pos<span style="color: #a6e3a1;">[</span><span style="color: #fab387;">1</span><span style="color: #a6e3a1;">]</span> == death<span style="color: #a6e3a1;">[</span><span style="color: #fab387;">1</span><span style="color: #a6e3a1;">]</span><span style="color: #f9e2af;">)</span> <span style="color: #f9e2af;">{</span> +<span class="linenr"> 95: </span> score = <span style="color: #fab387;">0</span>; +<span class="linenr"> 96: </span> <span style="color: #cba6f7;">do</span><span style="color: #a6e3a1;">{</span> +<span class="linenr"> 97: </span> death<span style="color: #f38ba8;">[</span><span style="color: #fab387;">0</span><span style="color: #f38ba8;">]</span>= arc4random_uniform<span style="color: #f38ba8;">(</span><span style="color: #fab387;">5</span><span style="color: #f38ba8;">)</span>; +<span class="linenr"> 98: </span> death<span style="color: #f38ba8;">[</span><span style="color: #fab387;">1</span><span style="color: #f38ba8;">]</span>= arc4random_uniform<span style="color: #f38ba8;">(</span><span style="color: #fab387;">5</span><span style="color: #f38ba8;">)</span>; +<span class="linenr"> 99: </span> <span style="color: #a6e3a1;">}</span><span style="color: #cba6f7;">while</span><span style="color: #a6e3a1;">(</span><span style="color: #f38ba8;">(</span>death<span style="color: #fab387;">[</span><span style="color: #fab387;">0</span><span style="color: #fab387;">]</span> == bonus<span style="color: #fab387;">[</span><span style="color: #fab387;">0</span><span style="color: #fab387;">]</span> && death<span style="color: #fab387;">[</span><span style="color: #fab387;">1</span><span style="color: #fab387;">]</span> == bonus<span style="color: #fab387;">[</span><span style="color: #fab387;">1</span><span style="color: #fab387;">]</span><span style="color: #f38ba8;">)</span> || <span style="color: #f38ba8;">(</span>death<span style="color: #fab387;">[</span><span style="color: #fab387;">0</span><span style="color: #fab387;">]</span> == trap<span style="color: #fab387;">[</span><span style="color: #fab387;">0</span><span style="color: #fab387;">]</span> && death<span style="color: #fab387;">[</span><span style="color: #fab387;">1</span><span style="color: #fab387;">]</span> == trap<span style="color: #fab387;">[</span><span style="color: #fab387;">1</span><span style="color: #fab387;">]</span><span style="color: #f38ba8;">)</span> || <span style="color: #f38ba8;">(</span>death<span style="color: #fab387;">[</span><span style="color: #fab387;">0</span><span style="color: #fab387;">]</span> == pos<span style="color: #fab387;">[</span><span style="color: #fab387;">0</span><span style="color: #fab387;">]</span> && death<span style="color: #fab387;">[</span><span style="color: #fab387;">1</span><span style="color: #fab387;">]</span> == pos<span style="color: #fab387;">[</span><span style="color: #fab387;">1</span><span style="color: #fab387;">]</span><span style="color: #f38ba8;">)</span><span style="color: #a6e3a1;">)</span>; +<span class="linenr">100: </span> <span style="color: #f9e2af;">}</span> +<span class="linenr">101: </span> <span style="color: #cba6f7;">if</span> <span style="color: #f9e2af;">(</span>score % <span style="color: #fab387;">3</span> == <span style="color: #fab387;">0</span> && score != <span style="color: #fab387;">0</span> && stop == <span style="color: #fab387;">0</span><span style="color: #f9e2af;">)</span> <span style="color: #f9e2af;">{</span> +<span class="linenr">102: </span> map<span style="color: #a6e3a1;">[</span>death<span style="color: #f38ba8;">[</span><span style="color: #fab387;">0</span><span style="color: #f38ba8;">]</span><span style="color: #a6e3a1;">][</span>death<span style="color: #f38ba8;">[</span><span style="color: #fab387;">1</span><span style="color: #f38ba8;">]</span><span style="color: #a6e3a1;">]</span> = <span style="color: #a6e3a1;">'-'</span>; +<span class="linenr">103: </span> <span style="color: #cba6f7;">do</span><span style="color: #a6e3a1;">{</span> +<span class="linenr">104: </span> death<span style="color: #f38ba8;">[</span><span style="color: #fab387;">0</span><span style="color: #f38ba8;">]</span>= arc4random_uniform<span style="color: #f38ba8;">(</span><span style="color: #fab387;">5</span><span style="color: #f38ba8;">)</span>; +<span class="linenr">105: </span> death<span style="color: #f38ba8;">[</span><span style="color: #fab387;">1</span><span style="color: #f38ba8;">]</span>= arc4random_uniform<span style="color: #f38ba8;">(</span><span style="color: #fab387;">5</span><span style="color: #f38ba8;">)</span>; +<span class="linenr">106: </span> <span style="color: #a6e3a1;">}</span><span style="color: #cba6f7;">while</span><span style="color: #a6e3a1;">(</span><span style="color: #f38ba8;">(</span>death<span style="color: #fab387;">[</span><span style="color: #fab387;">0</span><span style="color: #fab387;">]</span> == bonus<span style="color: #fab387;">[</span><span style="color: #fab387;">0</span><span style="color: #fab387;">]</span> && death<span style="color: #fab387;">[</span><span style="color: #fab387;">1</span><span style="color: #fab387;">]</span> == bonus<span style="color: #fab387;">[</span><span style="color: #fab387;">1</span><span style="color: #fab387;">]</span><span style="color: #f38ba8;">)</span> || <span style="color: #f38ba8;">(</span>death<span style="color: #fab387;">[</span><span style="color: #fab387;">0</span><span style="color: #fab387;">]</span> == trap<span style="color: #fab387;">[</span><span style="color: #fab387;">0</span><span style="color: #fab387;">]</span> && death<span style="color: #fab387;">[</span><span style="color: #fab387;">1</span><span style="color: #fab387;">]</span> == trap<span style="color: #fab387;">[</span><span style="color: #fab387;">1</span><span style="color: #fab387;">]</span><span style="color: #f38ba8;">)</span> || <span style="color: #f38ba8;">(</span>death<span style="color: #fab387;">[</span><span style="color: #fab387;">0</span><span style="color: #fab387;">]</span> == pos<span style="color: #fab387;">[</span><span style="color: #fab387;">0</span><span style="color: #fab387;">]</span> && death<span style="color: #fab387;">[</span><span style="color: #fab387;">1</span><span style="color: #fab387;">]</span> == pos<span style="color: #fab387;">[</span><span style="color: #fab387;">1</span><span style="color: #fab387;">]</span><span style="color: #f38ba8;">)</span><span style="color: #a6e3a1;">)</span>; +<span class="linenr">107: </span> stop = <span style="color: #fab387;">1</span>; +<span class="linenr">108: </span> <span style="color: #f9e2af;">}</span> +<span class="linenr">109: </span> <span style="color: #cba6f7;">else</span> <span style="color: #cba6f7;">if</span> <span style="color: #f9e2af;">(</span>score % <span style="color: #fab387;">3</span> != <span style="color: #fab387;">0</span><span style="color: #f9e2af;">)</span> <span style="color: #f9e2af;">{</span> +<span class="linenr">110: </span> stop = <span style="color: #fab387;">0</span>; +<span class="linenr">111: </span> <span style="color: #f9e2af;">}</span> +<span class="linenr">112: </span> <span style="color: #cba6f7;">if</span> <span style="color: #f9e2af;">(</span>moves % <span style="color: #fab387;">5</span> == <span style="color: #fab387;">0</span> && moves != <span style="color: #fab387;">0</span><span style="color: #f9e2af;">)</span> <span style="color: #f9e2af;">{</span> +<span class="linenr">113: </span> <span style="color: #cba6f7;">do</span><span style="color: #a6e3a1;">{</span> +<span class="linenr">114: </span> map<span style="color: #f38ba8;">[</span>trap<span style="color: #fab387;">[</span><span style="color: #fab387;">0</span><span style="color: #fab387;">]</span><span style="color: #f38ba8;">][</span>trap<span style="color: #fab387;">[</span><span style="color: #fab387;">1</span><span style="color: #fab387;">]</span><span style="color: #f38ba8;">]</span> = <span style="color: #a6e3a1;">'-'</span>; +<span class="linenr">115: </span> trap<span style="color: #f38ba8;">[</span><span style="color: #fab387;">0</span><span style="color: #f38ba8;">]</span>= arc4random_uniform<span style="color: #f38ba8;">(</span><span style="color: #fab387;">5</span><span style="color: #f38ba8;">)</span>; +<span class="linenr">116: </span> trap<span style="color: #f38ba8;">[</span><span style="color: #fab387;">1</span><span style="color: #f38ba8;">]</span>= arc4random_uniform<span style="color: #f38ba8;">(</span><span style="color: #fab387;">5</span><span style="color: #f38ba8;">)</span>; +<span class="linenr">117: </span> <span style="color: #a6e3a1;">}</span><span style="color: #cba6f7;">while</span><span style="color: #a6e3a1;">(</span><span style="color: #f38ba8;">(</span>trap<span style="color: #fab387;">[</span><span style="color: #fab387;">0</span><span style="color: #fab387;">]</span> == bonus<span style="color: #fab387;">[</span><span style="color: #fab387;">0</span><span style="color: #fab387;">]</span> && trap<span style="color: #fab387;">[</span><span style="color: #fab387;">1</span><span style="color: #fab387;">]</span> == bonus<span style="color: #fab387;">[</span><span style="color: #fab387;">1</span><span style="color: #fab387;">]</span><span style="color: #f38ba8;">)</span> || <span style="color: #f38ba8;">(</span>trap<span style="color: #fab387;">[</span><span style="color: #fab387;">0</span><span style="color: #fab387;">]</span> == death<span style="color: #fab387;">[</span><span style="color: #fab387;">0</span><span style="color: #fab387;">]</span> && trap<span style="color: #fab387;">[</span><span style="color: #fab387;">1</span><span style="color: #fab387;">]</span> == death<span style="color: #fab387;">[</span><span style="color: #fab387;">1</span><span style="color: #fab387;">]</span><span style="color: #f38ba8;">)</span> || <span style="color: #f38ba8;">(</span>trap<span style="color: #fab387;">[</span><span style="color: #fab387;">0</span><span style="color: #fab387;">]</span> == pos<span style="color: #fab387;">[</span><span style="color: #fab387;">0</span><span style="color: #fab387;">]</span> && trap<span style="color: #fab387;">[</span><span style="color: #fab387;">1</span><span style="color: #fab387;">]</span> == pos<span style="color: #fab387;">[</span><span style="color: #fab387;">1</span><span style="color: #fab387;">]</span><span style="color: #f38ba8;">)</span><span style="color: #a6e3a1;">)</span>; +<span class="linenr">118: </span> +<span class="linenr">119: </span> <span style="color: #f9e2af;">}</span> +<span class="linenr">120: </span> map<span style="color: #f9e2af;">[</span>bonus<span style="color: #a6e3a1;">[</span><span style="color: #fab387;">0</span><span style="color: #a6e3a1;">]</span><span style="color: #f9e2af;">][</span>bonus<span style="color: #a6e3a1;">[</span><span style="color: #fab387;">1</span><span style="color: #a6e3a1;">]</span><span style="color: #f9e2af;">]</span> = <span style="color: #a6e3a1;">'B'</span>; +<span class="linenr">121: </span> map<span style="color: #f9e2af;">[</span>trap<span style="color: #a6e3a1;">[</span><span style="color: #fab387;">0</span><span style="color: #a6e3a1;">]</span><span style="color: #f9e2af;">][</span>trap<span style="color: #a6e3a1;">[</span><span style="color: #fab387;">1</span><span style="color: #a6e3a1;">]</span><span style="color: #f9e2af;">]</span> = <span style="color: #a6e3a1;">'T'</span>; +<span class="linenr">122: </span> map<span style="color: #f9e2af;">[</span>death<span style="color: #a6e3a1;">[</span><span style="color: #fab387;">0</span><span style="color: #a6e3a1;">]</span><span style="color: #f9e2af;">][</span>death<span style="color: #a6e3a1;">[</span><span style="color: #fab387;">1</span><span style="color: #a6e3a1;">]</span><span style="color: #f9e2af;">]</span> = <span style="color: #a6e3a1;">'D'</span>; +<span class="linenr">123: </span> moves++; +<span class="linenr">124: </span> <span style="color: #fab387;">}</span><span style="color: #cba6f7;">while</span><span style="color: #fab387;">(</span>input != <span style="color: #a6e3a1;">'c'</span><span style="color: #fab387;">)</span>; +<span class="linenr">125: </span> <span style="color: #cba6f7;">return</span> <span style="color: #fab387;">0</span>; +<span class="linenr">126: </span><span style="color: #f38ba8;">}</span> +<span class="linenr">127: </span> +</pre> +</div> <p> Let’s go step by step and see what we can fix or improve, to start off, line 4 to 10 can be reduced to a single line (which will be beneficial later too) </p> -<blockquote> -<p> -char input,map[5][5] = {’-’}; -</p> -</blockquote> +<div class="org-src-container"> +<pre class="src src-c"><span class="linenr">4: </span><span style="color: #f9e2af;">char</span> <span style="color: #cdd6f4;">input</span>,<span style="color: #cdd6f4;">map</span><span style="color: #f38ba8;">[</span><span style="color: #fab387;">5</span><span style="color: #f38ba8;">][</span><span style="color: #fab387;">5</span><span style="color: #f38ba8;">]</span> = <span style="color: #f38ba8;">{</span><span style="color: #a6e3a1;">'-'</span><span style="color: #f38ba8;">}</span>; +</pre> +</div> <p> Much better…but can be even more better, why stop at 5 when we can give the choice to the user !! </p> -<blockquote> -<p> -int n=5,m=5; -char input,map[n][m]={’-’}; -</p> -</blockquote> +<div class="org-src-container"> +<pre class="src src-c"><span class="linenr">4: </span><span style="color: #f9e2af;">int</span> <span style="color: #cdd6f4;">n</span>=<span style="color: #fab387;">5</span>,<span style="color: #cdd6f4;">m</span>=<span style="color: #fab387;">5</span>; +<span class="linenr">5: </span><span style="color: #f9e2af;">char</span> <span style="color: #cdd6f4;">input</span>,<span style="color: #cdd6f4;">map</span><span style="color: #f38ba8;">[</span>n<span style="color: #f38ba8;">][</span>m<span style="color: #f38ba8;">]</span>=<span style="color: #f38ba8;">{</span><span style="color: #a6e3a1;">'-'</span><span style="color: #f38ba8;">}</span>; +</pre> +</div> <p> For now at least, n and m are hardcoded to 5, but this will change later. @@ -227,11 +189,10 @@ For now at least, n and m are hardcoded to 5, but this will change later. <p> Of course we have the usual inits on line 11, though since we are using variables instead of hardcoding 5, we will have to find the center by ourselves </p> -<blockquote> -<p> -int stop=0,i=0,moves=0,score=0,pos[2] = {n/2,m/2}; -</p> -</blockquote> +<div class="org-src-container"> +<pre class="src src-c"><span class="linenr">11: </span> <span style="color: #f9e2af;">int</span> <span style="color: #cdd6f4;">stop</span>=<span style="color: #fab387;">0</span>,<span style="color: #cdd6f4;">i</span>=<span style="color: #fab387;">0</span>,<span style="color: #cdd6f4;">moves</span>=<span style="color: #fab387;">0</span>,<span style="color: #cdd6f4;">score</span>=<span style="color: #fab387;">0</span>,<span style="color: #cdd6f4;">pos</span><span style="color: #f38ba8;">[</span><span style="color: #fab387;">2</span><span style="color: #f38ba8;">]</span> = <span style="color: #f38ba8;">{</span>n/<span style="color: #fab387;">2</span>,m/<span style="color: #fab387;">2</span><span style="color: #f38ba8;">}</span>; +</pre> +</div> <p> This is getting better, of course we then initialize the coordinates of bonus, trap, and death, and set the player as a <b>’+’</b> in the field. @@ -241,13 +202,12 @@ This is getting better, of course we then initialize the coordinates of bonus, t <p> Here comes the line 17-21, where it generates a random coordinate for the aforementioned pickups, and do that until there is no conflict between eachother and the player) here we will need to change it a tiny bit. </p> -<blockquote> -<p> -bonus[0] = arc4random_uniform(n); bonus[1] = arc4random_uniform(m); -trap[0] = arc4random_uniform(n); trap[1] = arc4random_uniform(m); -death[0] = arc4random_uniform(n); death[1] = arc4random_uniform(m); -</p> -</blockquote> +<div class="org-src-container"> +<pre class="src src-c"><span class="linenr">17: </span> <span style="color: #f9e2af;">bonus</span><span style="color: #f38ba8;">[</span><span style="color: #fab387;">0</span><span style="color: #f38ba8;">]</span> = arc4random_uniform<span style="color: #f38ba8;">(</span>n<span style="color: #f38ba8;">)</span>; <span style="color: #f9e2af;">bonus</span><span style="color: #f38ba8;">[</span><span style="color: #fab387;">1</span><span style="color: #f38ba8;">]</span> = arc4random_uniform<span style="color: #f38ba8;">(</span>m<span style="color: #f38ba8;">)</span>; +<span class="linenr">18: </span> <span style="color: #f9e2af;">trap</span><span style="color: #f38ba8;">[</span><span style="color: #fab387;">0</span><span style="color: #f38ba8;">]</span> = arc4random_uniform<span style="color: #f38ba8;">(</span>n<span style="color: #f38ba8;">)</span>; <span style="color: #f9e2af;">trap</span><span style="color: #f38ba8;">[</span><span style="color: #fab387;">1</span><span style="color: #f38ba8;">]</span> = arc4random_uniform<span style="color: #f38ba8;">(</span>m<span style="color: #f38ba8;">)</span>; +<span class="linenr">19: </span> <span style="color: #f9e2af;">death</span><span style="color: #f38ba8;">[</span><span style="color: #fab387;">0</span><span style="color: #f38ba8;">]</span> = arc4random_uniform<span style="color: #f38ba8;">(</span>n<span style="color: #f38ba8;">)</span>; <span style="color: #f9e2af;">death</span><span style="color: #f38ba8;">[</span><span style="color: #fab387;">1</span><span style="color: #f38ba8;">]</span> = arc4random_uniform<span style="color: #f38ba8;">(</span>m<span style="color: #f38ba8;">)</span>; +</pre> +</div> <p> Looking good so far!!, We then have line 21-23 which also shows the pickups as their respective symbols in the map. @@ -257,16 +217,16 @@ Looking good so far!!, We then have line 21-23 which also shows the pickups as t <p> The main interactive program starts here, which will learn at least one time and stop if the received input is a <b>’c’</b>, it starts with a nested for loop on line 26 up to 31 to show the content of the map, nothing fancy, just some matrix stuff. we need to change the 5 though! </p> -<blockquote> -<p> -for (int i = 0; i < n; i++) { - for (int j = 0; j < m; j++) { - printf(“%c ”, map[i][j]); - } - printf(“\n”); - } -</p> -</blockquote> +<div class="org-src-container"> +<pre class="src src-c"><span class="linenr">26: </span> <span style="color: #cba6f7;">for</span> <span style="color: #f38ba8;">(</span><span style="color: #f9e2af;">int</span> <span style="color: #cdd6f4;">i</span> = <span style="color: #fab387;">0</span>; i < n; i++<span style="color: #f38ba8;">)</span> <span style="color: #f38ba8;">{</span> +<span class="linenr">27: </span> <span style="color: #cba6f7;">for</span> <span style="color: #fab387;">(</span><span style="color: #f9e2af;">int</span> <span style="color: #cdd6f4;">j</span> = <span style="color: #fab387;">0</span>; j < m; j++<span style="color: #fab387;">)</span> <span style="color: #fab387;">{</span> +<span class="linenr">28: </span> printf<span style="color: #f9e2af;">(</span><span style="color: #a6e3a1;">"%c "</span>, map<span style="color: #a6e3a1;">[</span>i<span style="color: #a6e3a1;">][</span>j<span style="color: #a6e3a1;">]</span><span style="color: #f9e2af;">)</span>; +<span class="linenr">29: </span> <span style="color: #fab387;">}</span> +<span class="linenr">30: </span> printf<span style="color: #fab387;">(</span><span style="color: #a6e3a1;">"\n"</span><span style="color: #fab387;">)</span>; +<span class="linenr">31: </span> <span style="color: #f38ba8;">}</span> +<span class="linenr">32: </span> +</pre> +</div> <p> We show the score and the moves too, which at the start of the game are set to 0. and we prompt the user for a direction. Note here the space before the %c, this basically allows for the program to not choke on newlines and also even if the user writes multiple keys at the same time, they will still be done, like <b>ww</b> will make the player move twice up. </p> @@ -275,54 +235,51 @@ We show the score and the moves too, which at the start of the game are set to 0 After that we have some logic which should also be changed to account for the n and m changes yet again </p> -<blockquote> -<p> -if (input <code>= 'w') { - printf("Moving up\n"); - map[pos[0]][pos[1]] = '-'; - if (pos[0] =</code> 0) { - pos[0] = n-1; - } - else { - pos[0]–; - } -} else if (input <code>= 'a') { - printf("Moving left\n"); - map[pos[0]][pos[1]] = '-'; - if (pos[1] =</code> 0) { - pos[1] = m-1; - } - else { - pos[1]–; - } -} else if (input == ’s’) { -</p> - -<p> - printf("Moving down\n”); - map[pos[0]][pos[1]] = ’-’; - if (pos[0] <code>= n-1) { - pos[0] = 0; - } - else { - pos[0]++; - } - } else if (input =</code> ’d’) { - printf(“Moving right\n”); - map[pos[0]][pos[1]] = ’-’; - if (pos[1] <code>= m-1) { - pos[1] = 0; - } - else { - pos[1]++; - } - } else if (input =</code> ’c’) { - printf(“Quitting\n”); -} else { - printf(“Invalid input\n”); -} -</p> -</blockquote> +<div class="org-src-container"> +<pre class="src src-c"><span class="linenr">37: </span> <span style="color: #cba6f7;">if</span> <span style="color: #f38ba8;">(</span>input == <span style="color: #a6e3a1;">'w'</span><span style="color: #f38ba8;">)</span> <span style="color: #f38ba8;">{</span> +<span class="linenr">38: </span> printf<span style="color: #fab387;">(</span><span style="color: #a6e3a1;">"Moving up\n"</span><span style="color: #fab387;">)</span>; +<span class="linenr">39: </span> map<span style="color: #fab387;">[</span>pos<span style="color: #f9e2af;">[</span><span style="color: #fab387;">0</span><span style="color: #f9e2af;">]</span><span style="color: #fab387;">][</span>pos<span style="color: #f9e2af;">[</span><span style="color: #fab387;">1</span><span style="color: #f9e2af;">]</span><span style="color: #fab387;">]</span> = <span style="color: #a6e3a1;">'-'</span>; +<span class="linenr">40: </span> <span style="color: #cba6f7;">if</span> <span style="color: #fab387;">(</span>pos<span style="color: #f9e2af;">[</span><span style="color: #fab387;">0</span><span style="color: #f9e2af;">]</span> == <span style="color: #fab387;">0</span><span style="color: #fab387;">)</span> <span style="color: #fab387;">{</span> +<span class="linenr">41: </span> pos<span style="color: #f9e2af;">[</span><span style="color: #fab387;">0</span><span style="color: #f9e2af;">]</span> = n-<span style="color: #fab387;">1</span>; +<span class="linenr">42: </span> <span style="color: #fab387;">}</span> +<span class="linenr">43: </span> <span style="color: #cba6f7;">else</span> <span style="color: #fab387;">{</span> +<span class="linenr">44: </span> pos<span style="color: #f9e2af;">[</span><span style="color: #fab387;">0</span><span style="color: #f9e2af;">]</span>--; +<span class="linenr">45: </span> <span style="color: #fab387;">}</span> +<span class="linenr">46: </span> <span style="color: #f38ba8;">}</span> <span style="color: #cba6f7;">else</span> <span style="color: #cba6f7;">if</span> <span style="color: #f38ba8;">(</span>input == <span style="color: #a6e3a1;">'a'</span><span style="color: #f38ba8;">)</span> <span style="color: #f38ba8;">{</span> +<span class="linenr">47: </span> printf<span style="color: #fab387;">(</span><span style="color: #a6e3a1;">"Moving left\n"</span><span style="color: #fab387;">)</span>; +<span class="linenr">48: </span> map<span style="color: #fab387;">[</span>pos<span style="color: #f9e2af;">[</span><span style="color: #fab387;">0</span><span style="color: #f9e2af;">]</span><span style="color: #fab387;">][</span>pos<span style="color: #f9e2af;">[</span><span style="color: #fab387;">1</span><span style="color: #f9e2af;">]</span><span style="color: #fab387;">]</span> = <span style="color: #a6e3a1;">'-'</span>; +<span class="linenr">49: </span> <span style="color: #cba6f7;">if</span> <span style="color: #fab387;">(</span>pos<span style="color: #f9e2af;">[</span><span style="color: #fab387;">1</span><span style="color: #f9e2af;">]</span> == <span style="color: #fab387;">0</span><span style="color: #fab387;">)</span> <span style="color: #fab387;">{</span> +<span class="linenr">50: </span> pos<span style="color: #f9e2af;">[</span><span style="color: #fab387;">1</span><span style="color: #f9e2af;">]</span> = m-<span style="color: #fab387;">1</span>; +<span class="linenr">51: </span> <span style="color: #fab387;">}</span> +<span class="linenr">52: </span> <span style="color: #cba6f7;">else</span> <span style="color: #fab387;">{</span> +<span class="linenr">53: </span> pos<span style="color: #f9e2af;">[</span><span style="color: #fab387;">1</span><span style="color: #f9e2af;">]</span>--; +<span class="linenr">54: </span> <span style="color: #fab387;">}</span> +<span class="linenr">55: </span> <span style="color: #f38ba8;">}</span> <span style="color: #cba6f7;">else</span> <span style="color: #cba6f7;">if</span> <span style="color: #f38ba8;">(</span>input == <span style="color: #a6e3a1;">'s'</span><span style="color: #f38ba8;">)</span> <span style="color: #f38ba8;">{</span> +<span class="linenr">56: </span> +<span class="linenr">57: </span> printf<span style="color: #fab387;">(</span><span style="color: #a6e3a1;">"Moving down\n"</span><span style="color: #fab387;">)</span>; +<span class="linenr">58: </span> map<span style="color: #fab387;">[</span>pos<span style="color: #f9e2af;">[</span><span style="color: #fab387;">0</span><span style="color: #f9e2af;">]</span><span style="color: #fab387;">][</span>pos<span style="color: #f9e2af;">[</span><span style="color: #fab387;">1</span><span style="color: #f9e2af;">]</span><span style="color: #fab387;">]</span> = <span style="color: #a6e3a1;">'-'</span>; +<span class="linenr">59: </span> <span style="color: #cba6f7;">if</span> <span style="color: #fab387;">(</span>pos<span style="color: #f9e2af;">[</span><span style="color: #fab387;">0</span><span style="color: #f9e2af;">]</span> == n-<span style="color: #fab387;">1</span><span style="color: #fab387;">)</span> <span style="color: #fab387;">{</span> +<span class="linenr">60: </span> pos<span style="color: #f9e2af;">[</span><span style="color: #fab387;">0</span><span style="color: #f9e2af;">]</span> = <span style="color: #fab387;">0</span>; +<span class="linenr">61: </span> <span style="color: #fab387;">}</span> +<span class="linenr">62: </span> <span style="color: #cba6f7;">else</span> <span style="color: #fab387;">{</span> +<span class="linenr">63: </span> pos<span style="color: #f9e2af;">[</span><span style="color: #fab387;">0</span><span style="color: #f9e2af;">]</span>++; +<span class="linenr">64: </span> <span style="color: #fab387;">}</span> +<span class="linenr">65: </span> <span style="color: #f38ba8;">}</span> <span style="color: #cba6f7;">else</span> <span style="color: #cba6f7;">if</span> <span style="color: #f38ba8;">(</span>input == <span style="color: #a6e3a1;">'d'</span><span style="color: #f38ba8;">)</span> <span style="color: #f38ba8;">{</span> +<span class="linenr">66: </span> printf<span style="color: #fab387;">(</span><span style="color: #a6e3a1;">"Moving right\n"</span><span style="color: #fab387;">)</span>; +<span class="linenr">67: </span> map<span style="color: #fab387;">[</span>pos<span style="color: #f9e2af;">[</span><span style="color: #fab387;">0</span><span style="color: #f9e2af;">]</span><span style="color: #fab387;">][</span>pos<span style="color: #f9e2af;">[</span><span style="color: #fab387;">1</span><span style="color: #f9e2af;">]</span><span style="color: #fab387;">]</span> = <span style="color: #a6e3a1;">'-'</span>; +<span class="linenr">68: </span> <span style="color: #cba6f7;">if</span> <span style="color: #fab387;">(</span>pos<span style="color: #f9e2af;">[</span><span style="color: #fab387;">1</span><span style="color: #f9e2af;">]</span> == m-<span style="color: #fab387;">1</span><span style="color: #fab387;">)</span> <span style="color: #fab387;">{</span> +<span class="linenr">69: </span> pos<span style="color: #f9e2af;">[</span><span style="color: #fab387;">1</span><span style="color: #f9e2af;">]</span> = <span style="color: #fab387;">0</span>; +<span class="linenr">70: </span> <span style="color: #fab387;">}</span> +<span class="linenr">71: </span> <span style="color: #cba6f7;">else</span> <span style="color: #fab387;">{</span> +<span class="linenr">72: </span> pos<span style="color: #f9e2af;">[</span><span style="color: #fab387;">1</span><span style="color: #f9e2af;">]</span>++; +<span class="linenr">73: </span> <span style="color: #fab387;">}</span> +<span class="linenr">74: </span> <span style="color: #f38ba8;">}</span> <span style="color: #cba6f7;">else</span> <span style="color: #cba6f7;">if</span> <span style="color: #f38ba8;">(</span>input == <span style="color: #a6e3a1;">'c'</span><span style="color: #f38ba8;">)</span> <span style="color: #f38ba8;">{</span> +<span class="linenr">75: </span> printf<span style="color: #fab387;">(</span><span style="color: #a6e3a1;">"Quitting\n"</span><span style="color: #fab387;">)</span>; +<span class="linenr">76: </span> <span style="color: #f38ba8;">}</span> <span style="color: #cba6f7;">else</span> <span style="color: #f38ba8;">{</span> +<span class="linenr">77: </span> printf<span style="color: #fab387;">(</span><span style="color: #a6e3a1;">"Invalid input\n"</span><span style="color: #fab387;">)</span>; +<span class="linenr">78: </span> <span style="color: #f38ba8;">}</span> +</pre> +</div> <p> What this achieves is the “teleportation effect” whenever you are at the border of the screen! @@ -332,7 +289,7 @@ What this achieves is the “teleportation effect” whenever you are at </div> <div id="postamble" class="status"> <p class="author">Author: Crystal</p> -<p class="date">Created: 2024-02-14 Wed 23:58</p> +<p class="date">Created: 2024-02-15 Thu 00:02</p> </div> </body> </html> |