Programação Sodoku
Por: SakuraFF • 10/11/2015 • Trabalho acadêmico • 3.562 Palavras (15 Páginas) • 143 Visualizações
program sudoku
integer lin, col, opcao1, opcao2, op
integer quant_def, hora, condicao4, quartacond
integer mat(9,9)
logical pricond,segcond,tercond,condicao1,condicao2,condicao3
op = 0
print*, ' BEM VINDO AO SUDOKU!'
do lin=1,9,1
do col=1,9,1
mat(lin,col)=0
end do
end do
do lin=1,9,1
print*,mat(lin,1), mat(lin,2), mat(lin,3),mat(lin,4),mat(lin,5),
& mat(lin,6), mat(lin,7), mat(lin,8), mat(lin,9)
end do
call menu1
print*,'Escolha sua op‡Æo:'
read*, opcao1
do while (opcao1 .lt. 1 .or. opcao1 .gt. 3)
print*,'Op‡Æo inv lida! '
call menu1
print*,'Escolha sua op‡Æo:'
read*, opcao1
end do
do while(opcao1 .lt. 3)
if (opcao1 .eq. 1) then
print*,'SerÆo permitidos somente at‚ 10 n£meros',
& ' a serem gerados!'
print*,'Digite a quantidade de n£meros que deseja definir:'
read*, quant_def
do while (quant_def .gt. 10)
print*,'O m ximo permitido sÆo 10 n£meros!'
print*,'Digite a quantidade de n£meros que deseja definir:'
read*, quant_def
end do
do while (op .lt. quant_def)
hora = time()
lin = rand() * 10
hora = time()
col = rand() * 10
hora = time()
valor = rand() * 10
do while (lin .eq. 0)
lin = lin + 1
end do
do while (col .eq. 0)
col = col + 1
end do
do while (valor .eq. 0)
valor = valor + 1
end do
if (quant_def .eq. 7) then
mat(4,2) = 5
else if (quant_def .eq. 8) then
mat(5,3) = 2
mat(2,4) = 7
else if (quant_def .eq. 9) then
mat(9,9) = 1
mat(5,3) = 2
else if (quant_def .eq. 10) then
mat(5,3) = 2
mat(9,9) = 1
end if
mat(lin,col) = valor
op = op + 1
end do
do lin=1,9,1
print*,mat(lin,1),mat(lin,2),mat(lin,3),mat(lin,4),
& mat(lin,5), mat(lin,6), mat(lin,7), mat(lin,8), mat(lin,9)
end do
end if
if (opcao1 .eq. 2) then
print*,'Digite a quantidade de n£meros que deseja definir:'
read*, quant_def
do while (op .lt. quant_def)
print*,'Digite a linha,',' a coluna',
& ' e o valor: (Ex.:linha, coluna, valor)'
read*,lin, col, valor
mat(lin,col) = valor
op = op + 1
end do
do lin=1,9,1
print*,mat(lin,1),mat(lin,2),mat(lin,3),mat(lin,4),
& mat(lin,5), mat(lin,6), mat(lin,7), mat(lin,8), mat(lin,9)
end do
end if
if (opcao1 .eq. 3) then
stop
end if
print*, 'VAMOS COME€AR A JOGAR!'
call menu2
print*,'Escolha sua op‡Æo:'
read*, opcao2
do while (opcao2 .lt. 1 .or. opcao2 .gt. 4)
print*,'Op‡Æo inv lida!'
call menu2
print*,'Escolha sua op‡Æo:'
read*, opcao2
end do
do while(opcao2 .lt. 4)
if (opcao2 .eq. 1) then
print*,'Digite a linha,',' a coluna',
& ' e o valor: (Ex.:linha, coluna, valor)'
read*,lin, col, valor
do while (lin .lt. 1 .or. lin .gt. 9)
print*,'LINHA INEXISTENTE!'
print*,'Digite a linha,',' a coluna',
& ' e o valor: (Ex.:linha, coluna, valor)'
read*,lin, col, valor
end do
do while (col .lt. 1 .or. col .gt. 9)
print*,'COLUNA INEXISTENTE!'
print*,'Digite a linha,',' a coluna',
& ' e o valor: (Ex.:linha, coluna, valor)'
read*,lin, col, valor
end do
do while (valor .lt. 1 .or. valor .gt. 9)
print*,'VALOR NÇO PERMITIDO!'
print*,'Digite a linha,',' a coluna',
& ' e o valor: (Ex.:linha, coluna, valor)'
read*,lin, col, valor
end do
mat(lin,col)=valor
do lin=1,9,1
print*,mat(lin,1),mat(lin,2),mat(lin,3),mat(lin,4),
& mat(lin,5), mat(lin,6), mat(lin,7), mat(lin,8), mat(lin,9)
end do
call menu2
print*,'Escolha sua op‡Æo:'
...