Vous êtes sur la page 1sur 5

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61

program Campo_Minado; {requisitando a biblioteca CRT} uses crt; {iniciao das variveis} var {criao de duas matrizes, uma com os nmeros e outra com as letras} matriz1, matriz2: array[1..25] of string[1]; {Criao de uma matriz para armazenar as opes distintas, que foram escolhidas por parte dp usurio} opcoes_escolhidas: array[1..25] of char; {variveis necessrias para converter string em nmero} erro, numero: integer; {criao das demais variveis necessrias ao jogo} ind, valores, pula_linha, opcoes, minas, tam_frase, cores, posicao: byte; op, game_over,nova_escolha:char; converte, fim_de_jogo: string; {Criao de um procedimento} procedure mostra; begin {limpa a tela} clrscr; {Atribuindo um valor para pulo de linha} pula_linha:=5; {modificando a cor de fundo do texto} Textbackground(1); {escrevendo no prompt de comando} writeln('O numero 5 e tratado como mina.'); {retornando a cor de fundo original} Textbackground(0); {pulando um linha} writeln; {da varivel ind1 at 25, incrementando um em um a cada lao, faa} for ind:=1 to 25 do begin {se o valor inicial de ind for 1, faa} if(ind=1) then begin {modifique a cor do texto} textcolor(7); {escreva no prompt de comando uma barra} write('|'); end; {convertendo o dado da matriz1 na posio ind em um nmero} val(matriz1[ind], numero, erro); {caso seja algum dos nmero, modifique a cor do texto} case numero of 1:textcolor(15); 2:textcolor(2); 3:textcolor(1); 4:textcolor(14); 5:textcolor(4); {do contrrio, modifique para esta cor o texto} else textcolor(6); end; {EXIBA O CONTEDO DA MATRIZ} write(matriz1[ind],' '); {se o valor contido de pula_linha for igual a ind, faa} if(pula_linha=ind) then begin

62 {modifique a cor do texto} 63 textcolor(7); 64 {escreva uma barra no prompt e pule a linha} 65 writeln('|'); 66 {faa um somatrio com o valor da varivel pula_linha 67 atual +5} 68 pula_linha:=pula_linha+5; 69 {escreva uma barra no prompt} 70 write('|'); 71 end; 72 end; 73 end; 74 75 {INICIO DO PROGRAMA} 76 begin 77 {determinando o valor "lixo" da matriz opcoes_escolhidas} 78 for ind:=1 to 25 do 79 opcoes_escolhidas[ind]:=' '; 80 {preenchendo matriz1} 81 matriz1[1]:='A';matriz1[2]:='B';matriz1[3]:='C';matriz1[4]:='D';matriz1[5]:=' 82 matriz1[6]:='F'; matriz1[7]:='G';matriz1[8]:='H';matriz1[9]:='I';matriz1[10]: 83 matriz1[11]:='K';matriz1[12]:='L';matriz1[13]:='M';matriz1[14]:='N';matriz1[1 84 matriz1[16]:='P';matriz1[17]:='Q';matriz1[18]:='R';matriz1[19]:='S';matriz1[2 85 matriz1[21]:='U';matriz1[22]:='V';matriz1[23]:='Y';matriz1[24]:='Z';matriz1[2 86 {sabendo se houve uma escolha diferente ou no} 87 nova_escolha:='S'; 88 {Atribuindo valor a game_over} 89 game_over:='N'; 90 {atribui o valor inicial a cores} 91 cores:=1; 92 {Gerando sistema randmico} 93 randomize; 94 {esperando 1 segundo antes de iniciar o programa} 95 delay(1000); 96 {limpando a tela} 97 clrscr; 98 {Calculando quantidade de minas randomicamente} 99 minas:=random(6)+1; 100 101 {preenchendo matriz2; do ind 1 at 25, incremetando 102 o ind em um a cada loop, faa} 103 for ind:=1 to 25 do 104 begin 105 {convertendo o nmero randomicamente gerado em uma string} 106 str(random(4)+1,converte); 107 {atribuindo o nmero convertido a matriz2 no ind atual} 108 matriz2[ind]:= converte; 109 end; 110 {anexando minas} 111 for ind:=1 to minas do 112 begin 113 {gerando um nmero randmico} 114 posicao:=random(25); 115 {atribuindo a matriz2 uma mina com base no valor de posio} 116 matriz2[posicao]:= '5'; 117 end; 118 119 {SISTEMA DE ESCOLHA} 120 repeat 121 {chama o procedimento de nome mostra} 122 mostra;

123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183

{caso o valor da varivel game_over seja igual a N, faa} if game_over='N' then begin {pule uma linha} writeln; {escreva no prompt de comando} write('Escolha uma letra: '); {espera que alguma tecla seja prescionada} op:=readkey; {tornando o mesmo em maisculo} op:=upcase(op); {do ind2 de 1 at 25, incrementando o mesmo de um em um, faa} for ind:=1 to 25 do begin {se na matriz opcoes_escolhidas no ind2 tiver o mesmo valor de op; ento configure nova_escolha como N} if(opcoes_escolhidas[ind]=op) then nova_escolha:='N'; end; {se nova_escolha diferente de N, faa} if(nova_escolha<>'N') then {opcoes igual a ele mesmo +1} opcoes:=opcoes+1; {atribua o novo valor escolhido na matriz opcoes_escolhidas onde o local seja vazio} for ind:=1 to 25 do if(opcoes_escolhidas[ind]=' ') then opcoes_escolhidas[ind]:=op {do contrrio} else {atribua o novo valor a varivel} nova_escolha:='S'; {do ind 1 at 25, incrementando o mesmo de um em um, faa} for ind:=1 to 25 do begin {se o valor da varivel op for igual ao valor da matriz1 na posio ind, faa} if(matriz1[ind]=op) then begin {substitua o valor da matriz1 pelo valor da matriz2, na posio ind} matriz1[ind]:=matriz2[ind]; {caso esse valor seja 5, faa} if(matriz1[ind]='5') then {atribua um novo valor a game over} game_over:='S' {do contrrio, se opcoes+minas for igual a 25 faa} else if(25=(opcoes+minas)) then {atribua um novo valor a varivel game_over} game_over:='F'; end; end; end; {so finalize o lao se a varivel game_over possuir um dos valores} until((game_over='S') or (game_over='F')); {chama o procedimento mostra} mostra; {pula linhas} writeln; writeln; {se o valor de game_over for 'S', faa}

184 if (game_over='S') then 185 {atribua uma frase na varivel Fim_de_jogo} 186 fim_de_jogo:='GAME OVER' 187 {do contrrio} 188 else 189 {atribua outro tipo de frase na varivel Fim_de_jogo} 190 fim_de_jogo:='PARABENS, VOCE ACABA DE ZERA O JOGO!!!'; 191 {pegue o tamanho da frase e atribua o resultado a varivel 192 tam_frase} 193 tam_frase:=length(fim_de_jogo); 194 {do ind 1 at o valor de tam_frase, incrementando ind em 1 195 a cada loop, faa} 196 for ind:=1 to tam_frase do 197 begin 198 {atribua uma cor no texto com base no valor de cores} 199 textcolor(cores); 200 {se cores igual a 15, faa} 201 if(cores=15) then 202 {atribua zero a varivel cores} 203 cores:=0; 204 {incremente cores em 1} 205 cores:=cores+1; 206 {escreva na tela o caractere com base na posio ind} 207 write(fim_de_jogo[ind]); 208 {espere 200 milissegundos} 209 delay(200); 210 end; 211 {final do programa espera 1,5 segundos} 212 delay(1500); 213 end.

VoltarSairAvanar
o o o

Servios Publicaes Downloads Exerccios ASP GTK-PHP Java


Prompt Dos interface Grfica

o o

JavaScript Lgica e Algoritmo

o o o o o

Pascal PHP Dicas Links Navegadores Segurana Curriculum Contato

Ok

Vous aimerez peut-être aussi