Social Icons

PlayOnLinux ( Seus Games estão migrando também)

Entendendo o Wine e o PlayOnLinux

O Wine, como o próprio nome diz (Wine é um acrônimo recursivo para Wine Is Not Emulator, ou Wine não é emulador), não é um emulador de Windows para Linux, o conceito de emulação requer que você sejam feitas transcrições de instruções de um determinado ambiente para outro, no qual se seja rodar certa aplicação, como ocorre nos emuladores de Vídeo Games, aonde se usa um emulador para interpretar e transcrever os códigos dos jogos escritos para arquiteturas PowerPC, MIPS, e outras, em computadores com processadores x86.
wine



Como estamos lidando com o mesmo ambiente x86, seja no Linux, seja no Windows, não é necessária nenhuma emulação. O que o Wine faz é basicamente recriar uma estrutura de diretórios do Windows, interpretar os executáveis e apontar para eles onde se encontram as bibliotecas (dlls) necessárias para rodar determinadas funções, tudo isso através de um conjunto de APIs que criam está “camada de compatibilidade”. Desta forma nenhum comando é emulado, e as aplicações não sofrem com perdas de desempenho, comuns nos emuladores (onde muitas vezes temos que usar um hardware muito superior ao original para conseguir emular de forma decente um jogo ou aplicativo).
O PlayOnLinux complementa o Wine, de forma que ele age com scripts já prontos para instalação de determinado programa a partir do Wine, deixando o usuário longe da complexidade e configuração do Wine. Os scripts são nada mais que procedimentos que devem ser seguidos e requisitos que devem ser pré cumpridos para a correta instalação e funcionamento do software, o PlayOnLinux interpreta estes scripts e resolve tudo de forma amigável para o usuário. Estes scripts são desenvolvidos e testados pela comunidade que mantém o programa, e são atualizados regularmente, aumentando gradativamente a lista de programas compatíveis.
Apesar de o nome sugerir o PlayOnLinux não é compatível somente com jogos, diversos softwares de produtividade também podem ser instalados a partir do PlayOnLinux.

Instalando o PlayOnLinux

Apesar de algumas distribuições já trazerem o PlayOnLinux nos seus repositórios, é recomendado visitar o site oficial do projeto PlayOnLinux e fazer o download da ultima versão disponível (algumas distribuições, como o Ubuntu, não tem a ultima versão do programa nos seus repositórios). Lá há informações para a instalação do PlayOnLinux nas distribuições mais conhecidas.

Instalando os programas

Após ter o PlayOnLinux instalado, o próximo passo é a instalação dos programas desejados. A interface do PlayOnLinux é bastante simples e intuitiva, basta clicar no botão Instalar, que uma janela com a lista dos programas compatíveis é aberta, basta então escolher o programa e clicar em Aplicar. O PlayOnLinux se encarregará de baixar e instalar a versão correta do Wine e todas as dependências necessárias para o programa escolhido, além do próprio programa, se este for gratuito, restando ao usuário apenas os “Next, Next, Next, Finish” do Windows. Se o programa não for gratuito, ou for distribuído na forma de CDs/DVDs, o PlayOnLinux requisitará que você coloque o CD/DVD na unidade, ou indique aonde se encontra o executável instalador do programa, para prosseguir a instalação.
Janela principal do PlayOnLinux
Janela principal do PlayOnLinux
Os programas são separados em oito categorias (Acessórios, Educação, Jogos, Gráficos,…) e há ainda mais quatro categorias extras: Maior Taxa, Mais baixados, Correções e Testando. A tradução para Português não deixou muito clara qual seria a lógica para Maior Taxa, mas é bem possível que sejam os programas que receberam os melhores votos pela comunidade. Nas categorias Mais baixados você encontra os programas mais instalados pelos usuários, em Correções você encontra principalmente as atualizações e patches mais recentes para os jogos. Em testando encontram-se programas pelos quais os scripts de instalação ainda estão na fase de testes, seu funcionamento não é garantido.
Após a instalação completa o programa passa a aparecer na janela principal do PlayOnLinux, indicando que este está instalado.

Rodando os programas

Rodas os programas é tão ou mais simples que instalá-los, muitos já criam atalhos na área de trabalho do usuário (como acontece no Windows), para os que não criam atalhos, basta abrir o PlayOnLinux, selecionar o programa na janela principal e dar dois cliques com o mouse, ou então clicar no botão Executar. Tão simples que nem precisaria de uma explicação.

Testes

Instalei alguns jogos e programas com o PlayOnLinux rodando no Ubuntu Linux 10.10 para testar seu funcionamento. Foi possível instalar e rodar quase todos os programas testados. O único que não funcionou corretamente foi o iTunes, que começava a carregar repetidamente o processo “AppleMobileDevice” entupindo a memória RAM em poucos minutos, e por vezes parava de funcionar inesperadamente.
O Microsoft Office 2007, que está no topo da lista dos mais baixados funcionou perfeitamente, boa parte deste artigo inclusive foi escrita a partir dele. O Google SketchUp também funcionou corretamente, apresentando apenas alguns erros na renderização dos cursores do mouse, que por vezes ficava contornado por um quadrado branco.
Microsoft Office Word 2007 no LinuxMicrosoft Office Word 2007 no Linux
Todos os jogos que foram testados funcionaram corretamente, entre eles: Age of Empires III, e a sua expansão The WarChiefs; Far Cry 2; FIFA 11; Full Tilt Poker e o Prince of Persia – The Forgotten Sands. Mas como o site do projeto já avisa, nem todos os efeitos gráficos estão disponíveis em todos os jogos, às vezes foi necessário desabilitar alguns efeitos que apresentavam erros na renderização. Entretanto, a jogabilidade é perfeita.
Age Of Empires III - The WarChiefs, rodando em janela, no LinuxAge Of Empires III - The WarChiefs, rodando em janela, no Linux



Considerações finais:

A lista de programas listados com compatibilidade é razoavelmente grande, temos softwares como o Microsoft Office, e até jogos bem atuais, como o Far Cry 2 e FIFA 11, porém existem programas que só estão disponíveis em versões mais antigas, como o AutoCAD que só está disponível das versões de 2000 até 2008. É compreensível que as versões mais novas dos programas sejam mais difíceis de serem trazidas para o Linux, visto que a complexidade dos programas aumenta, necessitando de muito mais esforços para seu funcionamento correto fora do sistema para o qual foi desenvolvido.
Como foi possível notar, nem tudo são flores no PlayOnLinux. Nos testes realizados apenas o iTunes não rodou satisfatoriamente, mas isso abre brecha para que mais algum outro programa listado como compatível possa não rodar de forma aceitável. Este mesmo iTunes só está disponível na versão 7, sendo que a ultima versão disponível pela Apple é o iTunes 10.
Problema com o iTunes, serviço que abre diversas vezes.
Problema com o iTunes, serviço que abre diversas vezes.

Mesmo o FIFA 11, que rodou perfeitamente, precisou de uma modificação para funcionar, o PlayOnLinux informa que ele não funciona com o executável original, sendo necessário procurar na internet por uma versão “crackeada” do executável, destas que não exigem que o CD/DVD que esteja presente na unidade para rodar o jogo. Isso não deve desagradar a todos, visto que muitos preferem os executáveis “crackeados” para preservar o CD/DVD original e não precisar colocar o CD/DVD da unidade toda vez que deseja rodar o jogo.
O PlayOnLinux traz uma facilidade muito grande ao Linux, pois evita de o usuário ter que correr atrás de scripts e configurações para instalar um programa ou jogo do Windows no Linux através do Wine. Seu desenvolvimento é aberto e constante, trazendo sempre atualizações na lista de softwares compatíveis. A tendência é que com o passar do tempo melhorias venham e o software se torne cada vez melhor, removendo algumas das deficiências encontradas hoje.
Uma lista completa dos softwares e jogos suportados pelo PlayOnLinux está disponibilizada no site oficial do projeto, e pode ser vista aqui.

SCF - Official Edition PASCAL MOD!

Esse código esta compilado para Dev-Pascal, se usar Pascalzim dai tem q mudar algumas coisas...
CORRIGIDO O BUG DAS NOTAS QUE PODIA DAR NOTA NEGATIVA AO FILME E TAMBÉM MAIOR DO QUE 10.
VERSÃO BETA 3 AGORA ....

Quem estiver testando e achar algum BUG acesse a página de Bugs e me avise.

23/03/2011 - Implementado "loader" para algumas funçoẽs...



Download Here
-------------------


///Código Criado Por B03iR4 
//boeira.exe@live.com
//geekDevTeam.blogspot.com
//--------------------------------------
program cadastro_com_texto;
uses crt;
type
     cadastro = record
         nome_orig, nome_br, genero:string[200];
         nota:integer;
         preco:real;
end;
arquivo_texto = file of cadastro;
var dados_filme : cadastro;
    opcao: char;
    banco_dados: arquivo_texto;
    user, pass, certeza:String[200];
    i:integer;
    loader: string[200];
    contador :integer;






procedure gera_arquivo_banco;
begin

 textbackground(white);
        textcolor(black);
     clrscr;
     writeln('-----------------------------------------------------------------------------');
       writeln(' B 0 3 i R 4  -  S o f t w a r e s | Sistema de Cadastro de Filmes v1.2 BETA');
       writeln('-----------------------------------------------------------------------------');
     writeln('-----------------------------------------------');
     writeln('                  ATENCAO!!!');
     writeln('-----------------------------------------------');
     writeln;
     writeln('Criando um Novo Banco de Dados Voce Exclui o atual.');
     writeln;
     writeln('-----------------------------------------------');
     writeln('Voce esta certo disso? [S/N]  ');
     read(certeza);
     if (certeza = 'sim') or (certeza = 'Sim') or (certeza = 'S') or (certeza = 's') or (certeza = 'SIM')then
     begin
                         loader := '||||||||||||||||||||||||||||||||||||';
                         write('Gerando : ');
                         for contador := 1 to length(loader) do
                              begin
                                 write(loader[contador]);
                                 delay(100);
            
             end;
            end;
       delay(3000);
     readln;
     writeln;
     assign(banco_dados, 'C:\dados_filme.txt');
     rewrite(banco_dados);
     delay (3000);
     writeln('Novo Banco de Dados Gerado com Sucesso!');
     writeln;
     writeln('Pressione uma tecla para voltar ao Menu principal!');
     readln;
     close(banco_dados);
      end;


procedure novo_filme;
begin
 textbackground(white);
        textcolor(black);
        clrscr;
             writeln('-----------------------------------------------------------------------------');
       writeln(' B 0 3 i R 4  -  S o f t w a r e s | Sistema de Cadastro de Filmes v1.3 BETA');
       writeln('-----------------------------------------------------------------------------');
        write('Digite o Nome do Filme Original.: ');
        readln(dados_filme.nome_orig);
        write('Digite o Nome do Filme No Brasil.: ');
        readln(dados_filme.nome_br);
        write('Digite o Genero do Filme.: ');
        readln(dados_filme.genero);
        write('Digite a nota do Filme (1 a 10).: ');
        readln(dados_filme.nota);
        while ((dados_filme.nota < 1) or (dados_filme.nota > 10)) do
              begin
                    writeln('- Nota Inválida -');
write(' Escreva Uma Nota Válida (1 a 10) .: ');
readln(dados_filme.nota);
 end;

        writeln('------------------------------------------------------------------------');
        //gravando os dados no arquivo
        assign(banco_dados, 'C:\dados_filme.txt');
        reset(banco_dados);
        write(banco_dados,dados_filme);
        writeln('Dados Gravados no Banco de Dados com Sucesso!');
        writeln('Pressione qualquer Tecla para Voltar ao Menu Principal');
        readln;
        close(banco_dados);
end;

procedure mostrar_dados;
begin
        textbackground(white);
        textcolor(black);                                 clrscr;
      assign(banco_dados, 'C:\dados_filme.txt');
      reset(banco_dados);
      read(banco_dados, dados_filme);
             writeln('-----------------------------------------------------------------------------');
       writeln(' B 0 3 i R 4  -  S o f t w a r e s | Sistema de Cadastro de Filmes v1.3 BETA');
       writeln('-----------------------------------------------------------------------------');
      writeln('Bando de Dados informa que: ');
      writeln('Nome do Filme   .: ..... ',dados_filme.nome_orig);
      writeln('Nome no Brasil  .: ..... ',dados_filme.nome_br);
      writeln('Genero do Filme .: ..... ',dados_filme.genero);
      writeln('Nota do Usuario .: ..... ',dados_filme.nota);
      writeln('Pressione qualquer Tecla para Voltar ao Menu Principal');
      readln;
      close(banco_dados);
end;
 procedure menu;
begin
 textbackground(white);
        textcolor(black);
    repeat
    begin
      clrscr;
       writeln('-----------------------------------------------------------------------------');
       writeln(' B 0 3 i R 4  -  S o f t w a r e s | Sistema de Cadastro de Filmes v1.3 BETA');
       writeln('-----------------------------------------------------------------------------');
        gotoxy(10,03);writeln('Seja Bem Vindo ',user,' :');
        writeln;
        gotoxy(10,05);delay (100);writeln('1 - Gerar Novo Banco de Dados(Apagar)');
        gotoxy(10,06);delay (100);writeln('2 - Cadastrar um novo Filme');
        gotoxy(10,07);delay (100);writeln('3 - Mostrar Filme Cadastrado');
        gotoxy(10,08);delay (100);writeln('4 - Sair');
        gotoxy(10,08);delay (100);writeln('4 - Sair');
  gotoxy(10,11);            write('Escolha uma Opcao.: ');
        readln(opcao);
           if opcao = '1' then   gera_arquivo_banco
           else if opcao = '2' then  novo_filme
           else if opcao = '3' then  mostrar_dados

    end;
    until opcao = '4';
       end;
           procedure login_menu;
           begin
           textbackground(white);
           textcolor(black);
       clrscr;
       writeln('-----------------------------------------------------------------------------');
       writeln(' B 0 3 i R 4  -  S o f t w a r e s | Sistema de Cadastro de Filmes v1.3 BETA');
       writeln('-----------------------------------------------------------------------------');

       writeln('O Sistema esta sendo Inicializado Aguarde...');
        writeln('------------------------------------------');
        delay (2800);writeln(' - Conectando ao Banco de Dados;');
        delay (900);writeln(' - Conferindo Credenciais;');
        delay (1300);writeln(' - Ligando Sistemas de Inicializacao;');
        delay (4000);writeln(' - Inicializando HD;');
        delay (3000);writeln(' - Abrindo Menu de Selecao...');
        writeln('------------------------------------------');
        writeln('Sistema Carregado Com Sucesso!');
        delay(2000);
        menu;

           end;





BEGIN
       repeat
       clrscr;
        textbackground(white);
        textcolor(black);
       writeln('-----------------------------------------------------------------------------');
       writeln(' B 0 3 i R 4  -  S o f t w a r e s | Sistema de Cadastro de Filmes v1.3 BETA');
       writeln('-----------------------------------------------------------------------------');
       writeln(' Para Cadastrar Mais usuarios Contate o Desenvolvedor - boeira.exe@live.com');
       writeln('-----------------------------------------------------------------------------');
       writeln;
       WRITELN;
       WRITELN;
       gotoxy(10,06);write('_____________________');
       gotoxy(10,09);write('---------------------');
       gotoxy(10,19);write('---------------------------------------------------------');
       gotoxy(10,20);write('  BOEIRA-SOFT CORP® - All Rights Reserved | Prouct Free');
       gotoxy(10,21);write('---------------------------------------------------------');
       gotoxy(10,07);write('|Login:');
       gotoxy(10,08);write('|Senha: ');
       GOTOXY(18,07);readln(user);
       GOTOXY(18,08);readln(pass);


       writeln;
       if (user ='admin')     and(pass ='123')
       or (user ='Marcelo')   and(pass ='boeira2k10')
       or (user ='localhost') and(pass ='123')
       or (user ='usuario')    and(pass ='senhadousuario')
       or (user ='666TheNumberofTheBeast') and (pass ='666thenumberofthebeast')
       then
  
       login_menu

        else
        loader := '|||||||||||||||||||||||||||||||||||';
         write('Conferindo : ');
       for contador := 1 to length(loader) do
           begin
             write(loader[contador]);
             delay(250);
           end;
      
      
        writeln('Senha e/ou Login Incorreto(s) | Tente Denovo...') ;

        delay(2000);

       until opcao = '4';

   clrscr;
   writeln('-----------------------------------------------------------------------------');
       writeln(' B 0 3 i R 4  -  S o f t w a r e s | Sistema de Cadastro de Filmes v1.3 BETA');
       writeln('-----------------------------------------------------------------------------');
       writeln('O Sistema esta sendo Finalizado Aguarde...');
    writeln('------------------------------------------');
    delay (1700);writeln(' - Gravando Mudancas;');
    delay (1200);writeln(' - Desconectando do Servidor;');
    delay (800); writeln(' - Desfazendo Alteracoes de Hardware;');
    delay (1400);writeln(' - Reinicializando HDs;');
    delay (3000);writeln(' - Desempregando Programadores...');
    writeln('------------------------------------------');

    delay (1800);Writeln('Sistema Finalizado com Sucesso!');
    readln();



end.

SCF - Bugs Oficiais v1.3Beta2

----------------------------------------------------------------------------------
BUGS DECLARADOS DA VERSÃO 1.3 BETA 2

1) NÃO GRAVA MAIS DE 1 FILME (EM ANDAMENTO)
2) NÃO LÊ MAIS DE 1 FILME          (EM ANDAMENTO)


3) NÃO EXISTE POSSIBILIDADE DE CRIAR OUTROS USUÁRIOS PELO PROGRAMA ( SÓ PELA SOURCE ) - Práticamente Impossível em PASCAL(acho eu)

4) DA ERRO E SAI DO PROGRAMA SE VOCÊ DIGITA ALGO ERRADO NA HORA DE PREENCHER AS CARACTERÍSTICAS DE FILMES...

--------------------------------
BUGS CORRIGIDOS DA VERSÃO BETA 1
1) NOTAS DO FILME PODIAM SER NEGATIVAS E/OU MAIORES QUE 10


Eu achei esses...
bom se vocês acharem mais, por favor procurem, testem tudo que der imaginem...
depois me avisem pelos comentários ou por e-mail... boeira.exe@live.com

SCF - Sistema de Cadastro De Filmes v1.3Beta2

Programinha Bem Simples que estou criando.. Ainda em Versão Beta 3  ...
posteriormente colocarei o source dele ai pra galera que gosta...


Basicamente ele tem 4 Opções no Menu;

1 - Gerar Banco de Dados
2 - Criar Cadastro de Filme
3 - Ler Cadastro de Filme
4 - Sair

 e antes ainda tela de login.

 User:admin
Senha:123


Obs : Se user Win7 ou Vista tem q executar como admin para criar banco de dados!

2.2) Resolvendo alguns Exercícios Parte1

Vamos resolver aguns exercício achados na internet, para aprender melhor, na prática mesmoO...


1. Faça um algorítimo que imprima na tela a soma de números inteiros 35 e 47:


algoritimo "Problema_Exemplo"
var 
n1,n2:inteiro
inicio 
n1 := 35
n2 := 47  //atribuindo os valores para as variáveis  
 escreva(n1,n2) /mandando escrever as variáveis

fimalgoritimo 


Análise:

Usou-se ":="  lido Recebe, por exemplo n1:=35 fica N1 recebe 35, é atribuido um valor a variavel inteira N1.

Depois de atribuidos os valores são mostrados na tela como o pedido.

O Mesmo Poderia ter sido feito sem variaveis mas como queria deixar essa parte mais clara logo ja coloquei assim, poderia ser assim também.




algoritimo "Problema_Exemplo"
var 
inicio 
 escreva("35 e 47") /mandando escrever as variáveis

fimalgoritimo 




E se esse mesmo algorítimo pedisse para que você escrevesse um valor e depois ele fosse mostrado? Aí sim era de uso obrigatório variaveis:

algoritimo "Problema_Exemplo"
var 
n1,n2:inteiro
inicio 
leia(n1,n2) //lendo as variaveis em vez de definir você mesmo.                                 
escreva(n1,n2) /mandando escrever as variáveis

fimalgoritimo 
________________________________________________________

________________________________________________________

2. Faça um Algoritimo que execute e imprima a soma de 2 números:

Obs: Vamos usar como base o exercício anterior para ler as variaveis n1 e n2.


algoritimo "Problema_Exemplo"
var 
n1,n2,soma:inteiro
inicio 
leia(n1,n2) //                                                                                                                  

soma := n1+n2   //cálculo da soma de 2 variaveis digitadas.                                                                                  
escreva("A Soma é: ",soma)

fimalgoritimo 

Agora faça soma,multiplicação,divisão, e subtração de 2 números quaisquer digitados pelo usuário:



algoritimo "Problema_Exemplo"
var 
n1,n2,soma,subtracao,multiplicacao:inteiro
divisao : real
inicio 
leia(n1,n2)                                                                                                         
soma := n1+n2   //cálculo da soma de 2 variaveis digitadas.                                 

subtracao := n1-n2   //cálculo da subtração de 2 variaveis digitadas.   
multiplicacao := n1*n2   //cálculo da multiplicação de 2 variaveis digitadas.  
divisao := n1/n2   //cálculo da divisão de 2 variaveis digitadas.                                                                                                                                                                                                                                                                
escreval("A Soma é: ",soma)
escreval("A Subtração é: ",subtracao)
escreval("A Multiplicação é: ",multiplicacao)
escreval("A Divisão é: ",divisao)  


fimalgoritimo 


 Análise: Ao final desse código repare na parte de declaração de variáveis, destaquei que divisão está como REAL, por quê?


Resposta simples e matemática: Qualquer número dividido por qualquer número pode e geralmente alertórios gerarão um número decimal, ou seja REAL.

Se você digitasse 4 / 2 iria dar 2 , mas e se fosse 6 / 4 ?  o Número seria 1,5 que é Real, teste colocar divisao como inteiro e o programa VisuALG ja vai te dar um erro, depois tente colocar algum número decimal, vai trancar e sair do programa, pois ainda não está 1/1000 de ser um programa completo e sim apenas um protótipo para desenvolvimento de raciocício lógico de programação.

1.6) Operadores Matemáticos para Programação






Exemplos:

x := 7
y := 5
x Recebe 7
y Recebe 5

Comparações:

X=7         Sim
X>7         Não
X>=7      Sim (ele cabe dentro do = e não do maior mas como é >=)
X<>5      Sim
X<>Y      Sim
X<Y         Não
X>Y         Sim

 Considere a=3, b=7, total=200.0, média=8.1 e ano=2000
  • a > b -- resultado falso
  • total = 100.0 -- resultado falso
  • média >= 7.0 -- resultado verdadeiro
  • ano <> 2001 -- resultado verdadeiro
Exemplos:

Para as Contas Matemáticas :

As Contas devem ser passadas para uma forma compreensível para o processador, uma forma mais linear...