<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="gl">
	<id>http://web.iesrodeira.com/mediawiki/index.php?action=history&amp;feed=atom&amp;title=Fundamentos%3ASoluci%C3%B3ns%3AReversi%3Areversi.c</id>
	<title>Fundamentos:Solucións:Reversi:reversi.c - Historial de revisións</title>
	<link rel="self" type="application/atom+xml" href="http://web.iesrodeira.com/mediawiki/index.php?action=history&amp;feed=atom&amp;title=Fundamentos%3ASoluci%C3%B3ns%3AReversi%3Areversi.c"/>
	<link rel="alternate" type="text/html" href="http://web.iesrodeira.com/mediawiki/index.php?title=Fundamentos:Soluci%C3%B3ns:Reversi:reversi.c&amp;action=history"/>
	<updated>2026-09-13T14:21:17Z</updated>
	<subtitle>Historial de revisións desta páxina no wiki</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>http://web.iesrodeira.com/mediawiki/index.php?title=Fundamentos:Soluci%C3%B3ns:Reversi:reversi.c&amp;diff=1950&amp;oldid=prev</id>
		<title>Xavi: Nova páxina: &quot;Podes [http://web.iesrodeira.com/Descargas/Exercicios/Reversi/reversi.c Descargar] o ficheiro  &lt;source lang=&#039;C&#039;&gt; #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt;  #include &quot;reversi.h&quot; #incl...&quot;</title>
		<link rel="alternate" type="text/html" href="http://web.iesrodeira.com/mediawiki/index.php?title=Fundamentos:Soluci%C3%B3ns:Reversi:reversi.c&amp;diff=1950&amp;oldid=prev"/>
		<updated>2014-06-26T11:24:06Z</updated>

		<summary type="html">&lt;p&gt;Nova páxina: &amp;quot;Podes [http://web.iesrodeira.com/Descargas/Exercicios/Reversi/reversi.c Descargar] o ficheiro  &amp;lt;source lang=&amp;#039;C&amp;#039;&amp;gt; #include &amp;lt;stdio.h&amp;gt; #include &amp;lt;stdlib.h&amp;gt;  #include &amp;quot;reversi.h&amp;quot; #incl...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Páxina nova&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Podes [http://web.iesrodeira.com/Descargas/Exercicios/Reversi/reversi.c Descargar] o ficheiro&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;#039;C&amp;#039;&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;reversi.h&amp;quot;&lt;br /&gt;
#include &amp;quot;reversilib.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
// taboleiro&lt;br /&gt;
char __tableiro[8][8];&lt;br /&gt;
&lt;br /&gt;
void iniciaTaboleiro(void);&lt;br /&gt;
void visualizaTaboleiro(void);&lt;br /&gt;
void revira(int fila,int columna, int dir);&lt;br /&gt;
void xoga(int x);&lt;br /&gt;
&lt;br /&gt;
/* Principal&lt;br /&gt;
*/&lt;br /&gt;
int main(void)&lt;br /&gt;
{&lt;br /&gt;
  int xog;&lt;br /&gt;
  int fu,fd;&lt;br /&gt;
&lt;br /&gt;
  iniciaTaboleiro();&lt;br /&gt;
  visualizaTaboleiro();&lt;br /&gt;
  xog=XOG1;&lt;br /&gt;
  while (existeXogada())&lt;br /&gt;
  {&lt;br /&gt;
     xoga(xog);&lt;br /&gt;
     if (xog==XOG1) 	xog=XOG2;&lt;br /&gt;
     else		xog=XOG1;&lt;br /&gt;
     visualizaTaboleiro();&lt;br /&gt;
  }&lt;br /&gt;
  contaFichas(&amp;amp;fu,&amp;amp;fd);&lt;br /&gt;
  printf(&amp;quot;Xog 1 %d Xog 2 %d\n&amp;quot;,fu,fd);&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/*iniciaTaboleiro&lt;br /&gt;
  DESCRIPCION: Posición inicial do xogo&lt;br /&gt;
*/&lt;br /&gt;
void iniciaTaboleiro(void)&lt;br /&gt;
{&lt;br /&gt;
  int i,j;&lt;br /&gt;
&lt;br /&gt;
  i=0;&lt;br /&gt;
  while(i&amp;lt;8)&lt;br /&gt;
  {&lt;br /&gt;
    j=0;&lt;br /&gt;
    while(j&amp;lt;8)&lt;br /&gt;
    {&lt;br /&gt;
      __tableiro[i][j]=VACIO;&lt;br /&gt;
      j++;&lt;br /&gt;
    }&lt;br /&gt;
    i++;&lt;br /&gt;
  }&lt;br /&gt;
  __tableiro[3][3]=XOG1;&lt;br /&gt;
  __tableiro[3][4]=XOG2;&lt;br /&gt;
  __tableiro[4][3]=XOG2;&lt;br /&gt;
  __tableiro[4][4]=XOG1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* revira&lt;br /&gt;
   RECIBE: i,j - coordenadas de inicio&lt;br /&gt;
           dir - dirección.&lt;br /&gt;
   DESCRIPCIÓN: Da a volta as fichas hacia a dirección indicada&lt;br /&gt;
*/&lt;br /&gt;
void revira(int i,int j, int dir)&lt;br /&gt;
{&lt;br /&gt;
  int outro=XOG1;&lt;br /&gt;
  int x,y;&lt;br /&gt;
&lt;br /&gt;
  if (__tableiro[i][j]==XOG1) outro=XOG2;&lt;br /&gt;
  switch(dir)&lt;br /&gt;
  {&lt;br /&gt;
    case DER: y=i; x=j+1;&lt;br /&gt;
              while(__tableiro[y][x]!=__tableiro[i][j]) &lt;br /&gt;
              {&lt;br /&gt;
                __tableiro[y][x]=__tableiro[i][j];&lt;br /&gt;
                x++;&lt;br /&gt;
              }&lt;br /&gt;
              break;&lt;br /&gt;
    case ESQ: y=i; x=j-1;&lt;br /&gt;
              while(__tableiro[y][x]!=__tableiro[i][j]) &lt;br /&gt;
              {&lt;br /&gt;
                __tableiro[y][x]=__tableiro[i][j];&lt;br /&gt;
                x--;&lt;br /&gt;
              }&lt;br /&gt;
              break;&lt;br /&gt;
    case ARR: y=i-1; x=j;&lt;br /&gt;
              while(__tableiro[y][x]!=__tableiro[i][j]) &lt;br /&gt;
              {&lt;br /&gt;
                __tableiro[y][x]=__tableiro[i][j];&lt;br /&gt;
                y--;&lt;br /&gt;
              }&lt;br /&gt;
              break;&lt;br /&gt;
    case ABA: y=i+1; x=j;&lt;br /&gt;
              while(__tableiro[y][x]!=__tableiro[i][j]) &lt;br /&gt;
              {&lt;br /&gt;
                __tableiro[y][x]=__tableiro[i][j];&lt;br /&gt;
		y++;&lt;br /&gt;
              }&lt;br /&gt;
              break;&lt;br /&gt;
    case ARRDER: y=i-1; x=j+1;&lt;br /&gt;
                 while(__tableiro[y][x]!=__tableiro[i][j]) &lt;br /&gt;
                 {&lt;br /&gt;
                   __tableiro[y][x]=__tableiro[i][j];&lt;br /&gt;
                   x++;&lt;br /&gt;
                   y--;&lt;br /&gt;
                 }&lt;br /&gt;
                 break;&lt;br /&gt;
    case ARRESQ: y=i-1; x=j-1;&lt;br /&gt;
                 while(__tableiro[y][x]!=__tableiro[i][j]) &lt;br /&gt;
                 {&lt;br /&gt;
                   __tableiro[y][x]=__tableiro[i][j];&lt;br /&gt;
                   x--;&lt;br /&gt;
                   y--;&lt;br /&gt;
                 }&lt;br /&gt;
                 break;&lt;br /&gt;
    case ABADER: y=i+1; x=j+1;&lt;br /&gt;
                 while(__tableiro[y][x]!=__tableiro[i][j]) &lt;br /&gt;
                 {&lt;br /&gt;
                   __tableiro[y][x]=__tableiro[i][j];&lt;br /&gt;
                   x++;&lt;br /&gt;
                   y++;  &lt;br /&gt;
                 }&lt;br /&gt;
                 break;&lt;br /&gt;
    case ABAESQ: y=i+1; x=j-1;&lt;br /&gt;
                 while(__tableiro[y][x]!=__tableiro[i][j]) &lt;br /&gt;
                 {&lt;br /&gt;
                   __tableiro[y][x]=__tableiro[i][j];&lt;br /&gt;
                   x--;&lt;br /&gt;
                   y++;&lt;br /&gt;
                 }&lt;br /&gt;
                 break;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* visualizaTaboleiro&lt;br /&gt;
   DESCRIPCION: Pinta o taboleiro na pantalla&lt;br /&gt;
*/&lt;br /&gt;
void visualizaTaboleiro(void)&lt;br /&gt;
{&lt;br /&gt;
   int i,j;&lt;br /&gt;
   char *ficha=&amp;quot;·X0&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
   system(&amp;quot;clear&amp;quot;);&lt;br /&gt;
   i=0;&lt;br /&gt;
   while(i&amp;lt;8)&lt;br /&gt;
   {&lt;br /&gt;
     j=0;&lt;br /&gt;
     while(j&amp;lt;8)&lt;br /&gt;
     {&lt;br /&gt;
       printf(&amp;quot;%c &amp;quot;,ficha[ __tableiro[i][j]  ]);&lt;br /&gt;
       j++;&lt;br /&gt;
     }&lt;br /&gt;
     printf(&amp;quot;\n&amp;quot;);&lt;br /&gt;
     i++;&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/* xoga&lt;br /&gt;
   RECIBE: O xogador (x) que lle toca xogar&lt;br /&gt;
   DESCRIPCION: Pide a xogada, verificando que é correcta e&lt;br /&gt;
                efectúa a xogada completa (dando a volta ás fichas&lt;br /&gt;
                que o precisen)&lt;br /&gt;
&lt;br /&gt;
   Si podeXogar(x)&lt;br /&gt;
     Facer &lt;br /&gt;
       Pedir fila e columna&lt;br /&gt;
     Mentras non poda poñer a ficha en fila,columna&lt;br /&gt;
     Poñer a ficha&lt;br /&gt;
     Dar a volta ás fichas que o necesiten&lt;br /&gt;
   FinSi&lt;br /&gt;
*/&lt;br /&gt;
void xoga(int x)&lt;br /&gt;
{&lt;br /&gt;
   int fila,columna;&lt;br /&gt;
&lt;br /&gt;
   if (podeXogar(x))&lt;br /&gt;
   {&lt;br /&gt;
      do {&lt;br /&gt;
         printf(&amp;quot;fila?:&amp;quot;); scanf(&amp;quot;%d&amp;quot;,&amp;amp;fila);&lt;br /&gt;
         printf(&amp;quot;columna?:&amp;quot;); scanf(&amp;quot;%d&amp;quot;,&amp;amp;columna);&lt;br /&gt;
      }&lt;br /&gt;
      while(!posicionXogada(fila,columna,x));&lt;br /&gt;
      __tableiro[fila][columna]=x;&lt;br /&gt;
      darVolta(fila,columna);&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Xavi</name></author>
	</entry>
</feed>