
			   +- Mais ou Menos
			    Hudson Lacerda
		      Verso 0.0.4 -- 10.03.2007

   +-  um  jogo aritmtico criado por Hudson  Lacerda em 19/02/2007 e
   publicado  de acordo  com os  termos da  Licena Pblica  Geral GNU
   (GNU-GPL) verso  2 ou  posterior ( sua  escolha) --  ver arquivos
   ``License'' e  ``Licenca''.  Instrues de  compilao e instalao
   encontram-se no final deste arquivo.

   Joga-se num tabuleiro (matriz numrica) como o seguinte:

 +------------------V--------------+
 |                                 |
 |  4   5   3   4   4   9   9   2  |
 |  8   2   2   7   3   6   6   8  |
 |  4   4   5   8   1   6   5   5  |
 >  6   5   4   3   5+  2   7   4  <
 |  6   9   7   7   6   4   6   4  |
 |  5   8   1   7   2   4   3   6  |
 |  7   6   2   7   9   4   9   5  |
 |  8   3   5   8   2   2   2   5  |
 |                                 | 
 +------------------A--------------+
*Rodada:  1   Pontos:   0/320 ( 0%)

(Exemplo obtido com o comando "+- -a -t8 -c -.")

   O objetivo do  jogo  obter o mximo  possvel de pontos realizando
   adio  ou  subtrao  do  valor  da  casa  atual  (apontada  pelos
   marcadores nas bordas do tabuleiro, e caracterizada por um operador
   + ou  -   direita do  nmero) sobre o  valor da  casa para  onde o
   jogador  se movimentar,  buscando  manter o  resultado da  operao
   sempre dentro dos limites de 0 a 10 (ou outro valor mximo definido
   pelo usurio).
 
   Aps   cada  rodada   bem-sucedida,  incrementa-se   o   nmero  de
   pontos. Quando o resultado da operao  excede o limite entre 0 e o
   valor  mximo  (default=10),  o   valor  absoluto  do  excedente  
   subtrado dos pontos obtidos e o jogo termina.

   As opes de comando  possibilitam diversas variantes do jogo. Para
   conhecer as opes  execute "+- -h" (Na verso  para DOS, o arquivo
   executvel   chamado "mm.exe", portanto nesse caso  o comando deve
   ser "mm -h").  Alguns exemplos:

   +-

	Defaults. Tabuleiro 3x3.  Pode-se  mover entre todas as casas,
	incluindo   movimentos  diagonais.    A   casa  abandonada   
	preenchida com  um novo valor  aleatrio.  O tipo  de operao
	(de adio ou subtrao)  sorteado a cada rodada.

   +- -t5 -o -c -a

	Tabuleiro 5x5.   Desafia a memria, ocultando  cerca de metade
	dos valores da matriz e limpando a tela a cada rodada (a opo
	-c  desnecessria se o progrrama for compilado com 3ncurses).
	Em  compensao,  as  operaes   de  adio  e  de  subtrao
	alternam-se regularmente.

   +- -t4 -a +d -.r

	Tabuleiro 4x4.  Operaes so alternadas. Movimento diagonal 
	desabilitado. As casas  abandonadas no recebem novos valores,
	sendo representadas  por pontos, mas podem  ser revisitadas. A
	associao do  tamanho par (4x4) com a  proibio do movimento
	diagonal restringe as operaes possveis: metade das casas s
	podem realizar adies, enquanto  que as outras casas s podem
	realizar subtraes -- o  efeito torna-se evidente ao final do
	jogo.

   +- -t10 -a -c -. -p

	Tabuleiro 10x10.  Operaes alternadas.  A tela  limpa a cada
	rodada. Casas abandonadas so  marcadas com pontos e no podem
	ser  revisitadas.  A  pontuao   incrementada  de  1 a  cada
	operao bem-sucedida (ao invs de  somar o valor da casa para
	onde se moveu).

   +- -t17 -m50 -a -. -s1

	Tabuleiro 17x17.  Casas  com valores de 1 a  49 (resultado das
	operaes  deve  ficar entre  0  e  50 inclusive).   Operaes
	alternadas.   Casas j  visitadas so  marcadas com  pontos (e
	bloqueadas).    Gerador   de   nmeros   pseudo-aleatrios   
	inicializado com a semente 1  (o que possibilita jogar o mesmo
	jogo vrias vezes).

   +- -t10 -m25 -.7r -p +d -c -o

	Tabuleiro 10x10. Resultado das  operaes deve ficar entre 0 e
	25  inclusive. Cerca  de  70%  das casas  iniciam  vazias e  
	permitido (re)visitar  casas vazias. Pontuao   por operao
	bem-sucedida    (1    ponto    cada).    Movimento    diagonal
	desabilitado. Limpa  a tela a  cada jogada. Oculta  metade das
	casas (com '?').

   +- -t5 -m100 -A +d

	Tabuleiro 5x5. Operaes devem limitar-se a resultados entre 0
	e  100  inclusive.   Tipo  de  operao  (adio/subtrao)  
	alternado   a   cada    duas   rodadas.   Movimento   diagonal
	desabilitado.

   +- -t4 -P

	Tabuleiro 4x4. Jogo continua aps operao fora do mbito, mas
	metade dos pontos so tomados.

   Para mover-se na matriz, utilize as teclas de direo:

      .    .    .
       \   |   /
        w  e  r
     <- s  d  f ->       ('d' e 'c' movem para baixo)
        x  c  v
       /   |   \
          '    `

   Se  o programa  for compilado  com -DUSE_CURSES  (3ncurses),  ou se
   NUMLOCK  estiver  ativado, o  teclado  numrico  tambm poder  ser
   utilizado para realizar movimentos.

   Para efetuar um movimento:
        1) pressione uma tecla da direo;
   e ento (se compilado sem 3ncurses):
        2) pressione <ENTER>.
   (Pressionar <ENTER>  desnecessrio num ambiente DOS.)

   A  verso  0.0.1  foi  feita  para  rodar em  terminais  VT  ou  em
   emuladores de  terminal, usando os recursos  bsicos UNIX.  Verses
   futuras podero ser completamente reescritas usando-se a biblioteca
   ncurses, para  evitar o inconveniente de ter  de pressionar <ENTER>
   ao movimentar-se, assim como para obter melhor apresentao visual.


COMPILAO

	     ***** GNU/Linux (e sistemas similares) *****

   Num sistema GNU/Linux com o compilador GCC:

	gcc maisoumenos.c -o +- -Wall

   Isto gera um arquivo executvel chamado "+-" no diretrio corrente,
   que pode  ser ento movido  para outro lugar.

   Para compilar usando a biblioteca 3ncurses:

	gcc maisoumenos.c -o +- -Wall -DUSE_CURSES -lncurses

   Neste  caso, as cores  dos caracteres  sero desabilitadas,  mas em
   compensao os  movimentos no  jogo sero feitos  diretamente pelas
   teclas de  direo, sem necessidade de apertar  <ENTER> em seguida.
   O  arquivo  "Makefile"  realiza  a  compilao  com  estas  opes,
   bastando executar

	make

   Para instalar o programa  +- no diretrio /usr/games, execute:

	su -c "make install"


	      ***** M$-DOS (e sistemas similares) *****

   Num sistema DOS (tal como FreeDOS) com o compilador GCC:

	gcc maisoumenos.c -o mm.exe -Wall -DDOS

   O  executvel ser chamado  "mm.exe" (FreeDOS  no aceita  nomes de
   arquivos com  o caractere '+',  como "+-").  Pode-se  ento mov-lo
   para o diretrio de sua preferncia.

   A   distribuio  inclui   ainda  os   arquivos   "cwsdpmi.exe",  e
   "cwsdpmi.doc"  includos   na  distribuio  (suporte   para  DOS).
   Trata-se de programa tambm coberto pela licena GNU-GPL, de:

	http://www.ee.surrey.ac.uk/Personal/R.Bowden/C/dos-gcc/csdpmi4b.zip

   Mais informaes (e cdigo-fonte) em:

	http://www.delorie.com/djgpp/
	http://www.delorie.com/djgpp/dl/ofc/dlfiles.cgi/current/v2misc/

CONTATO

   Sugestes e comentrios podem ser enviados para:

	Hudson Flvio Meneses Lacerda
	hfml @ brfree.com.br

http://br.geocities.com/hfmlacerda

