TOP 5 /Os jogos mais esperados para 2019/

O ano de 2019 promete grandes lançamentos para o mundo dos games!!!!
Elaboramos uma lista com os 5 jogos mais esperados para todas as plataformas.
Na E3 de 2018 foram várias á apresentações e trailers dos games que vem por aí!

# TOP 5

5. Anthem



Anthem é essencialmente a resposta da EA ao Destiny: um jogo de tiro cooperativo com o objetivo de imergir completamente os jogadores em um gigantesco universo de ficção científica. Você joga como um Freelancer participando de tiroteios em terceira pessoa, estilo Mass Effect.


4. SKULL AND BONES




Á Ubisoft também está chegando com uma visão muito mais realista das batalhas piratas em alto mar. Skull and Bones é basicamente Assassin’s Creed Black Flag sem os Assassinos.

Como está sendo desenvolvido por grande parte do mesmo time por trás do Black Flag o game promete uma campanha solo em que você disputa o controle sobre as águas do século 18 no Oceano Índico.

3. Doom Eternal


Doom Eternal Ainda não foi confirmado para o ano 2019 mas é bem provável que essa seja a data. Doom Eternal trará os horrores do Inferno para a própria Terra, e Doomguy não está feliz com isso. As cenas de gameplay estão programadas para serem reveladas na Quakecon deste ano a tempo de um lançamento de 2019, então prepare seus dedos para outra batalha épica com contra demônios e inimigos diabólicos do submundo.

2. Jedi: Fallen Onder


Jedi: Fallen Order está em desenvolvimento pela Respawn. É ambientado imediatamente após Star Wars: Episódio III – A Vingança dos Sith, e lida com as consequências da Ordem 66, que forçou os Clone Troopers a voltar suas armas para os Jedi.

1. Residente Evil 2


Tem sido um tempo desde que os fãs de Resident Evil foram para Raccoon City e eles estão ansiosos para voltar – mesmo com todos esses zumbis. Em 25 de janeiro de 2019, os velhos amigos Leon Kennedy e Claire Redfield retornam à cidade que os tornou famosos em Resident Evil 2, um remake da atual geração de um dos melhores jogos de Resident Evil de todos os tempos.

(Tutorial) MUGEN - Aula 2

Determinando a ordem dos personagens


Os personagens que colocamos no jogo aparecerão em ordem aleatória para que você lute contra eles no arcade, de modo que, alguns podem até não aparecer para lutar. Se você prefere a ordem aleatória, deixa o arquivo select.def do jeito que está. Mas se quiser definir a ordem em que os adversários aparecerão, abra o arquivo select.def, vá até as linhas em que adicionamos os personagens e faça as seguintes mudanças:

(Abaixo é só um exemplo para explicação).

batman, stages/brazil.def , order = 1
kyokusanagi, stages/orgy.def, order = 2
ryu, stages/MK4-Sala_vermelha.def, oder = 3

Vamos explicar as mudanças. Na primeira linha de personagens, temos batman, stages/brazil.def, order = 1. O aplicativo entende o código da seguinte maneira:

- batman(nome da pasta do personagem escolhido e também do arquivo *.def da pasta)
-stages/brazil.def (diretório e nome do cenário escolhido para tal personagem)
-order = 1 (ordem na qual o personagem aparecerá para lutar, no caso seria em primeiro)

Note que o máximo de ordens no mugen é dez (10), a partir de 11 adiante o mugen não irá detectar, você pode repetir algumas ordens, como por exemplo, usar a order = 1 mais de uma vez, assim dependendo como for os dois chars de ordem um (1) serão aleatórios entre si.


Aumentando a tela do M.U.G.E.N


Vou citar duas formas de aumentar a tela do mugen, a primeira é apertando ALT + ENTER enquanto ele estiver aberto, desse modo a tela ficará full screen.

Contudo para mudar isso definitivamente, você deve abrir a pasta do mugen, ir na pasta data e abrir o arquivo Mugen.cfg com o bloco de notas, então procure pela seguinte parte:

;Enter the width and height of the resolution you want to set here.
;The optimal resolution is 320x240, but if your video card has problems
;You may want to try 640x480.
Width = 320
Height = 240
;This is the color depth at which to run MUGEN. You should set it to
;16 bit color unless your video card has problems with it.
;16-fastest, 24,32-slower, 8-slowest/worst
Depth = 16
;Set this parameter to 0 to disable screen stretching, and set it to 1 if
;you want to scale it up to fit the current resolution.
Stretch = 0
;Set this parameter to use a resolution-doubling filter. You will
;need a fast machine to use these filters. You will need to increase
;the screen resolution to at least 640x480 for these modes.
;0 - off
;1 - diagonal edge detection
;2 - bilinear filtering
;3 - horizontal scanlines
DoubleRes = 0
;DirectX mode
;Choose from Hardware, Software, Windowed, Overlay, Safe and None
;Hardware and Software run in full-screen. Windowed and Overlay
;run in a window. The windowed modes require you to set Depth to
;whatever color depth you are using for you desktop. The best results
;are when you run in 16-bit color. There is no advantage to running
;in 32-bit color. If Hardware, Software and Windowed fail, try Safe.
;None uses GDI to draw, so it's very slow. Use None only if
;you cannot get anything else to work.
;Overlay is not supported by all video cards, but can be faster than
;Windowed if it works.
DXmode = Windowed
;Set to 1 to enable vertical retrace synchronization. Do not enable
;if BlitMode = PageFlip.
VRetrace = 0
;Drawing mode
;Choose from Normal and PageFlip
BlitMode = PageFlip
E mudando as seguintes partes:
[Video Win]
;Enter the width and height of the resolution you want to set here.
;The optimal resolution is 320x240, but if your video card has problems
;You may want to try 640x480.
Width = 640 resolução foi aumentada.
Height = 480 –resolução foi aumentada.
;Set this parameter to 0 to disable screen stretching, and set it to 1 if
;you want to scale it up to fit the current resolution.
Stretch = 1 -mudando de 0 para 1.

;DirectX mode
;Choose from Hardware, Software, Windowed, Overlay, Safe and None
;Hardware and Software run in full-screen. Windowed and Overlay
;run in a window. The windowed modes require you to set Depth to
;whatever color depth you are using for you desktop. The best results
;are when you run in 16-bit color. There is no advantage to running
;in 32-bit color. If Hardware, Software and Windowed fail, try Safe.
;None uses GDI to draw, so it's very slow. Use None only if
;you cannot get anything else to work.
;Overlay is not supported by all video cards, but can be faster than
;Windowed if it works.
DXmode = full-screen - Mudando de windowed para full screen.


Modificando a tela de seleção de personagens


Inicialmente, a tela de personagens conta com apenas dez slots, ou seja, você só pode colocar dez personagens no seu jogo. Caso você queira inserir mais personagens, vá até a pasta mugen , abra a pasta data e abra o arquivo system.def usando o bloco de notas. Com o arquivo aberto, procure pelas linhas:

;Character select definition
[Select Info]
fadein.time = 10
fadeout.time = 10
rows = 2
columns = 5
wrapping = 0 ;1 to let cursor wrap around
pos = 90,170 ;Position to draw to
showemptyboxes = 0 ;1 to show empty boxes
moveoveremptyboxes = 0 ;1 to allow cursor to move over empty boxes
cell.size = 27,27 ;x,y size of each cell (in pixels)
cell.spacing = 2 ;Space between each cell.

Vamos modificar as seguintes linhas:

rows = 2 ;esta linha, significa o número de linhas na tela de seleção.
columns = 5 ;esta outra, o número de colunas na tela de seleção.
cell.size = 27,27 ; esta aqui, modifica o tamanho do portrait do personagem na tela de seleção.
cell.spacing = 2 ; e esta, o espaço entre os portraits dos personagens na tela de seleção.

Para inserir mais personagens, aumente o número de linhas e de colunas. Para colocar mais cinco personagens, por exemplo, modifique a linha rows = 2 para rows = 3. Assim, sua tela de seleção de eprsonagensficará com três linhas e cinco colunas, totalizando quinze personagens. Você pode modificar a tela e colocar quantos personagens quiser; tome cuidado apenas para não exagerar na dose e colocar duzentos lutadores.

Você também pode definir a posição em que o grupo de personagens aparecerá na tela de seleção. Para isso abra o arquivo system.def usando o bloco de notas e procura pelas linhas:

;Character select definition
[Select Info]
pos = 90,170 .


Modificando a trilha sonora


Até agora, você aprendeu o básico sobre mugen, inserindo seus lutadores e personagens (chars) prediletos e colocando novos cenários (stages). Mas ainda não aprendeu a incluir um elemento muito importante no jogo, as músicas. É agora que você tem que decidir qual será a trilha sonora de seu jogo de luta. Os arquivos de músicas devem ser do formado MP3; escolha todas as músicas que você deseja usar e as separe num diretório para não complciar o processo.

Para modificar a posição dos personagens, modifique o número da linha pos = 90,170. Para colocar os personagens mais para direita, diminua o primeiro número; se você preferir colocar mais para a esqueda, aumente o número. Para colocar mais para cima, aumente o segundo número. Caso queira colocar mais para baixo, diminua o segundo número. Faça suas alterações, salve o arquivo e teste o seu jogo para ver se está tudo como você quer. Se precisar, abra o arquivo novamente faça novas modificações.


A trila sonora da apresentação


Depois de escolher a música para a tela de titulo, copie o arquivo (é só clicar com o botão direito do mouse sobre El e depois clicar em copiar) e jogue-o dentro da pasta sound, que fica dentro da pasta do mugen. Procure renomear a música escolhida como open.mp3.

Vá até a pasta Data e abra o arquivo system.def usando o bloco de notas. Com o arquivo aberto, procure pela linha [Music]. Abaixo você encontrará:

;Music to play at title screen.
title.bgm =

Para inserir a música na tela de título, modifique a linha title.bgm = para title.bgm = sound/open.mp3. Assim, você vai ouvir a música open.mp3 que está no diretório Sound[ na pasta Mugen. Salve o arquivo e faça o teste para ver se tudo está funcionando corretamente.

A trilha sonora da tela de seleção de personagens


Nomeie o arquivo mp3 da tela de seleção de personagem como select.mp3. Vá até a pasta Data e abra o arquivo system.def usando o bloco de notas. Com o arquivo aberto, procure pela linha [Music]. Abaixo dessa linha você encontrará:

;Music to play at char select screen.
Select.bgm =

Para inserir a música na tela de seleção de personagem, modifique a linha select.bgm = para select.bgm = sound/select.mp3. Assim, você vai ouvir a música select.mp3 que está no diretório Sound[ na pasta Mugen. Salve o arquivo e faça o teste para ver se tudo está funcionando corretamente.

A trilha sonora da tela VS


Nomeie o arquivo mp3 da tela de VS como vs.mp3. Vá até a pasta Data e abra o arquivo system.def usando o bloco de notas. Com o arquivo aberto, procure pela linha [Music]. Abaixo dessa linha você encontrará:

;Music to play at char versus screen.
vs.bgm =

Para inserir a música na tela de VS, modifique a linha select.bgm = para select.bgm = sound/vs.mp3. Assim, você vai ouvir a música vs.mp3 que está no diretório Sound[ na pasta Mugen. Salve o arquivo e faça o teste para ver se tudo está funcionando corretamente.


A trilha sonora dos cenários


Primeiramente, separe uma música para cada cenário. Coloque todas elas na pasta Sound. Agora, vá até a pasta stages, abra a pasta do cenário em que você quer inserir a trila sonora e, em seguida, abra o arquivo com extensão *.def usando o bloco de notas.

Procure pela linha [Music]. Abaixo, você encontrará as linhas:

[Music]
bgmusic =
bgvolume = 0

Na linha bgmusic = 0, insira o caminho do arquivo de música que você quer ouvir quando o cenário for selecionado. A linha deve ficar assim:

[Music]
bgmusic = sound/cenario01.mp3 -note, coloque o nome que está na musica .mp3.
bgvolume = 0

Repita esse procedimento para todos os cenários, colocando uma música diferente em cada um.


Definindo o menu inicial


Você pode modificar também o menu inicial. Além de mudar o nome dos modos, é possível escolher o local no qual o menu irá ficar. Abra o arquivo system.def usando o bloco de notas e procure pelas linhas:

;Title screen definition
[Title Info]
fadein.time = 10
fadeout.time = 10
menu.pos = 159,158
menu.item.font = 3,0,0
menu.item.active.font = 3,5,0
menu.item.spacing = 0, 13
; Names for each of the items in the menu. Names must be in quotes.
; Use "" to disable an item. If all are disabled, goes straight to demo mode
; (hold Esc to quit demos). *2001.11.14 NEW*
menu.itemname.arcade = "ARCADE" -----> Modos do jogo.
menu.itemname.versus = "VS MODE"
menu.itemname.teamarcade = "TEAM ARCADE"
menu.itemname.teamversus = "TEAM VS"
menu.itemname.teamcoop = "TEAM CO-OP"
menu.itemname.survival = "SURVIVAL"
menu.itemname.survivalcoop = "SURVIVAL CO-OP"
menu.itemname.training = "TRAINING"
menu.itemname.watch = "WATCH"
menu.itemname.options = "OPTIONS"
menu.itemname.exit = "EXIT"
; These parameters define the window in which the items are visible
; in.
menu.window.margins.y = 12, 8
menu.window.visibleitems = 5
menu.boxcursor.visible = 1 ;Set to 0 to disable default cursor display
menu.boxcursor.coords = -58,-10,57,2
; These are the sounds for cursor movement
cursor.move.snd = 100,0
cursor.done.snd = 100,1
cancel.snd = 100,2.

Para mudar os nomes dos modos, escreva entre as aspas deste modo:

menu.itemname.arcade = "Modo Arcade"
menu.itemname.versus = "Modo Versus"

Para mudar a posição do menu, modifique a linha menu.pos = 159,158. Você pode colocá-lo mais para direita, diminuindo o primeiro número, ou mais para esquerda, aumentando este número. Para colocá-lo mais para cima, aumente o segundo número, caso queira colocar mais para baixo, diminua esse número. Faça as alterações, salve o arquivo e teste o seu jogo para ver se está tudo como você quer. Se precisar, abra o arquivo novamente e faça novas modificações.

Deixando os personagens mais fortes


Você pode aumentar a força dos seus personagens. Na pasta Chars, que fica dentro da pasta Mugen, abra o arquivo *.Cns do personagem escolhido usando o bloco de notas.

Procure pela linha [Data], e, na linha attack, digite um valor maior.


Pastas e diretórios


As pastas e diretórios criados durante a instalação do programa não devem ser movidos. Caso isso aconteça, o programa com certeza não irá funcionar. Veja para que serve cada pasta criada e lembre-se de criar um backup de todos os arquivo que for modificar.

Pasta CHARS – descompacte os lutadores nesta pasta.
Pasta DATA – arquivo de configuração do Mugen.
Pasta DOCS – documentos do Mugen.
Pasta FONT – todas as fontes usadas no Mugen.
Pasta SOUND – todos os arquivos de som utilizados no Mugen.
Pasta STAGES – descompacte os seus cenários aqui.
Pasta GRAPHICS – esta pasta é muito importante, nela estão as figuras e animações usada sno Mugen.


Arquivos de lutadores, cenários e teclas de atalho


Arquivos de lutadores.


Arquivo.DEF – define por completo o personagem. Este arquivo pode ser editado no bloco de notas e guarda informações como nome, força, versão e outras coisas mais.

Arquivo.SFF – este arquivo guarda todas as imagens que formam seu personagem.

Arquivo.CNS – um dos arquivos mais difíceis de editar; nele estão contidas as variáveis do seu jogador.

Arquivo.CMD – comandos do personagem; neste arquivo você programa um comando para uma animação/figura.

Arquivo.ACT – este arquivo contém a paleta de cores, determinando quantas cores diferentes o seu personagem terá quando for selecionado com botões diferentes.

Arquivo.SND – todos os efeitos de som e música de um personagem.

Arquivo.AR – arquivo determinante dos pontos de colisão do personagem. Este arquivo determina os locais em que o seu personagem pode ser atingido.

Arquivos dos cenários


Na pasta stages você descompacta todos os cenários, os quais, geralmente, possuem dois arquivos:

Arquivo.DEF – arquivo com toda a programação e cordenadas do cenário.

Arquivo.SFF – arquivo com imagens e animações do cenário compactadas.

Teclas de Atalho

Não perca muito tempo com algo que você pode fazer apertando apenas uma tecla:

TECLA. EFEITO

F1 Jogador 2 com Zero de energia
CTRL + F1 Jogador 1 com Zero de energia
F2 Barra de energia no mínimo
CTRL + F2 Diminuir energia (jogador 1)
SHIFT + F2 Diminuir energia (jogador 2)
F3 Barra de especial no máximo
F4 Reiniciar combate
F5 Zerar o tempo
F12 Capturar foto
CTRL + C Visualizar as caixas de colisão
CTRL + D Visualizar debug
CTRL + L Ocultar barras de energia e especial
CTRL + S Aumentar velocidade
CTRL + V Ativar o V-Sync
Barra de espaço Recarregar energia e especial
Esc Sair

[Data]
Life = 2000
Attack = 1000
Defense = 100.

Na linha life-2000, você pode definer qual é o valor da barra de energia e, na linha defense=100, você pode determinar o valor da defesa.


<< Aula 1

(Tutorial) MUGEN

Como criar um jogo no MUGEN

# Aula 1


A engine M.U.G.E.N é fácil e intuitiva para criar seu jogo de luta no estilo Street Fighter ou Marvel vs. Capcom. Nesta primeira aula você vai aprender como colocar personagens e cenários.

O primeiro passo é baixar a Versão mais rescente do MUGEN. Click no link abaixo:

MUGEN 1.1


Quando terminar de fazer o download, descompacte o arquivo Zip para ter acesso ao programa. Você verá uma pasta como a da imagem abaixo.



Procure por mugen.exe como mostra a figura acima e dê dois cliques para executar. Ao fazer isso, você verá a tela principal do programa como mostrado na imagem abaixo.





Fazer um personagem é difícil, mas você pode fazer o download grátis de milhares de personagens feitos por criadores espalhados pelo mundo ( Links de personagens e cenarios estão no fim do tutorial).Para colocar novos personagens, você precisa procurar e baixar na internet os personagens de mugen e colocar esses arquivos na pasta “Chars” como mostrado na imagem do começo dessa aula, círculo 2.

Para adicionar novos cenários você precisa colocar os arquivos do cenário na pasta “Stages” (imagem no começo da aula, círculo 3).


Após colocar corretamente os chars e stages em suas respectivas pastas, vá até a pasta do mugen, abra a pasta data e clique sobre o arquivo select.def com o botão direito do mouse, selecione “abrir com” e, em seguida, Bloco de notas, e clique OK.

Logo no início do texto que se abriu, procure pela linha [Characters], abaixo de [Characters], há uma série de explicações em inglês, que talvez lhe interesse se você entende o idioma, de qualquer forma procure pela linha: Insert yout character below.

Abaixo desta linha, aperte a tecla ENTER duas vezes para dar espaços e escreva os nomes dos personagens localizado na pasta Chars de seu mugen, escreva-os da seguinte forma:

[nome do personagem], stages/[nome do stage].def

Por exemplo:

batman, stages/brazil.def
kyokusanagi, stages/orgy.def
ryu, stages/MK4-Sala_vermelha.def


Procure e execute novamente o arquivo mugen.exe, os personagens e cenários que você adicionou já  estarão disponível no seu jogo.






Para fechar o programa basta pressionar o botão ESC do seu teclado ou escolher a opção “Exit” na tela principal do M.U.G.E.N.

Onde baixar personagens e cenários para MUGEN


Existem vários sites tanto em português como em outros idiomas onde você pode baixar personagens e cenários para criar seu jogo. Tenha em mente que qualquer pessoa pode criar personagens e cenários para mugen, então a quantidade de material disponível para download é incalculável. Aqui vão alguns sites interessantes para você começar:

mugencharacters.org – Personagens de anime como naruto etc. Possui vídeos dos personagens.

mugenmundo.ucoz.com – Personagens e cenários de Dragonball

mugenation.com/index.php/cat=chars – Personagens variados

forum.paodemugen.com.br/ – Fórum de Mugen

Sites de Recurso


Chars: http://www.animemugen.ucoz.net/forum/64

Stages: http://animemugen.ucoz.net/forum/65

Screenpacks: http://www.animemugen.ucoz.net/forum/67


Aula 2 >>

Criando jogos em c

Resultado de imagem para jogos em c++
Exemplo de códigos de jogos simples em C

Antes de começar baixe o programa Dev-C++ ou Code::Blocks

Dev-C++ -  é um Ambiente de Desenvolvimento Integrado (IDE - Integrated Development Environment) para programação na linguagem C/C++ 
(DOWNLOAD)

Code::BlocksIDE de código-aberto para a linguagem C++ com recursos preciosos para programadores iniciantes
(DOWNLOAD)


Abrir o Dev-C++ ou Code::Blocks e Criar um novo arquivo (Ctrl+N)
Digitar o código

main()
{
}

E salvar como 'snake.cpp'

Compilar e executar (F9)

Vamos começar a desenhar na tela
Digite

printf("%c",1);

dentro da função main.
Se você executar dará erro pois a função printf está declarada na biblioteca stdio.h
Vamos incluir

#include<stdio.h>

no início do arquivo.
E salvar e compilar e executar.
Ainda não deu pra ver nada porque o programa executou e fechou muito rápido.
Vamos por uma pausa.
Digite:

getch();
depois do printf
E digite
#include<conio.h>

depois da declaração da biblioteca stdio
O Código até aqui fica:

#include<stdio.h>
#include<conio.h>
main()
{ printf("%c",1);
 getch();
}

Pode salvar, compilar e executar (F9)
Esse é o começo da codificação do jogo
Passo 5
Vamos desenhar no meio da tela
Pra isso inclua a biblioteca windows.h
E antes do printf digite

COORD p={10,10};
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),p);

Essa linha coloca o cursor na décima coluna da décima linha
Eu ralei um pouco pra chegar até essa linha... antigamente eu usava a função gotoxy mas ela não é disponível para todos windows
Vamos criar a função mgotoxy

void mgotoxy(int x,int y)
{ COORD p={x,y}; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),p);
}

E vamos chamar a função antes do printf
O Código até aqui fica:

#include<windows.h>
#include<stdio.h>
#include<conio.h>
void mgotoxy(int x,int y)
{ COORD p={x,y};
 SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),p);
}
main()
{ mgotoxy(7,7);
 printf("%c",1);
 getch();
}

Vamos desenhar as paredes do jogo
Vamos declarar uma variavel int x e usar um 'for' para desenhar cada uma das quatro paredes:

int x;
for(x=0;x<18;x++)
{ mgotoxy(0,x);
 printf("%c",219);
}
for(x=0;x<26;x++)
{ mgotoxy(x,0);
 printf("%c",219);
}
for(x=0;x<18;x++)
{ mgotoxy(26,x);
 printf("%c",219);
}
for(x=0;x<27;x++)
{ mgotoxy(x,18);
 printf("%c",219);
}

Vamos começar a movimentar

for(x=2;x<26;x++)
{ mgotoxy(x-1,8);
 printf(" ");
 mgotoxy(x,8);
 printf("%c",219);
 Sleep(500);
}

Já temos um ponto se movendo na tela
Vamos dar direção a esse ponto, de acordo com o teclado
Vamos declarar uma variavel int 'd'
Se d==0 entao o ponto se move para a esquerda
Se d==1 entao o ponto se move para a cima
Se d==2 entao o ponto se move para a direita
Se d==3 entao o ponto se move para a baixo
vamos inicializar d com 2

Vamos criar as variaveis int cx e cy que vão armazenar a coordenada do ponto

Vamos criar uma variavel char tecla

E vamos substituir aquele for por dois while. Na condição do segundo while vamos usar a função kbhit()

#include<windows.h>
#include<stdio.h>
#include<conio.h>
void mgotoxy(int x,int y)
{ COORD p={x,y};
 SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),p);
}
main()
{   int x,d=2,cx=0,cy=7;
    char tecla='a';
    for(x=0;x<18;x++)
    {   mgotoxy(0,x);
        printf("%c",219);
    }
    for(x=0;x<26;x++)
    {   mgotoxy(x,0);
        printf("%c",219);
    }
    for(x=0;x<18;x++)
    {   mgotoxy(26,x);
        printf("%c",219);
    }
    for(x=0;x<27;x++)
    {   mgotoxy(x,18);
        printf("%c",219);
    }
    while(tecla!='s')
    {   while(tecla!='s'&&!(tecla=kbhit()))
        {   if(d==0)cx--;
            if(d==1)cy--;
            if(d==2)cx++;
            if(d==3)cy++;
            mgotoxy(cx,cy);
            printf("%c",219);
            Sleep(500);
            if(cy==0||cy==18||cx==0||cx==26)tecla='s';
        }
        if(tecla!='s')tecla=getch();
        if(tecla=='K')d=0;
        if(tecla=='H')d=1;
        if(tecla=='M')d=2;
        if(tecla=='P')d=3;
        if(cy==0||cy==18||cx==0||cx==26)tecla='s';
    }
    getch();
}

Utilização da função kbhit()
Vamos apagar o rastro da cobra.
Vamos transformar cx e cy em arrays, assim agente pinta o primeiro elemento e apaga o ultimo
Vamos criar uma variavel int t que armazena o tamanho da cobra, pra podermos apagar o fim da cobra qdo ela andar

#include<windows.h>
#include<stdio.h>
#include<conio.h>
void mgotoxy(int x,int y)
{ COORD p={x,y};
 SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),p);
}
main()
{   int x,d=2,cx[300]={1,2},cy[300]={7,7},t=1;
    char tecla='a';
    for(x=0;x<18;x++)
    {   mgotoxy(0,x);
        printf("%c",219);
    }
    for(x=0;x<26;x++)
    {   mgotoxy(x,0);
        printf("%c",219);
    }
    for(x=0;x<18;x++)
    {   mgotoxy(26,x);
        printf("%c",219);
    }
    for(x=0;x<27;x++)
    {   mgotoxy(x,18);
        printf("%c",219);
    }
    while(tecla!='s')
    {   while(tecla!='s'&&!(tecla=kbhit()))
        {   for(x=t;x>0;x--)
            {   cx[x]=cx[x-1];
                cy[x]=cy[x-1];
            }
            if(d==0)cx[0]--;
            if(d==1)cy[0]--;
            if(d==2)cx[0]++;
            if(d==3)cy[0]++;
            mgotoxy(cx[t],cy[t]);
            printf(" ");
            mgotoxy(cx[0],cy[0]);
            printf("%c",219);
            Sleep(500);
            if(cy[0]==0||cy[0]==18||cx[0]==0||cx[0]==26)tecla='s';
        }
        if(tecla!='s')tecla=getch();
        if(tecla=='K')d=0;
        if(tecla=='H')d=1;
        if(tecla=='M')d=2;
        if(tecla=='P')d=3;
        if(cy[0]==0||cy[0]==18||cx[0]==0||cx[0]==26)tecla='s';
    }
    getch();
}

Agora vamos gerar e desenhar a maçã
Vamos declarar duas variaveis int mx e my
Vamos incluir a biblioteca iostream e a time.h
e para gerar a maçã em um ponto aleatório:

#include<time.h>
#include<iostream>
    srand(time(NULL));
    mx=(rand()%25)+1;
    my=(rand()%17)+1;

Para desenhar a maçã digite:

mgotoxy(mx,my);
printf("%c",1);

depois do printf da ponta
Quando a cobra passa sobre a maçã ela deve aumentar de tamanho e outra maçã deve ser gerada
Entre as linhas que apagam o fim da cobra e as linhas que desenham a ponta, Digite:

if(mx==cx[0]&&my==cy[0])
{ t++;
 mx=(rand()%25)+1;
 my=(rand()%17)+1;
}

Fim do jogo:
Se a ponta da cobra estiver sobre ela mesma o jogo acaba.

for(x=1;x<t;x++)
{   if(cx[0]==cx[x]&&cy[0]==cy[x])tecla='s';
}

Código Fonte


#include<windows.h>
#include<stdio.h>
#include<conio.h>
#include<time.h>
//#include<stdlib.h>
#include<iostream>
void mgotoxy(int x,int y)
{ COORD p={x,y};
 SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),p);
}
main()
{   int x,d=2,cx[300]={1,2},cy[300]={7,7},t=1,mx,my;
    char tecla='a';
    //system("MODE con cols=27 lines=20");
    for(x=0;x<18;x++)
    {   mgotoxy(0,x);
        printf("%c",219);
    }
    for(x=0;x<26;x++)
    {   mgotoxy(x,0);
        printf("%c",219);
    }
    for(x=0;x<18;x++)
    {   mgotoxy(26,x);
        printf("%c",219);
    }
    for(x=0;x<27;x++)
    {   mgotoxy(x,18);
        printf("%c",219);
    }
    srand(time(NULL));
    mx=(rand()%25)+1;
    my=(rand()%17)+1;
    while(tecla!='s')
    {   while(tecla!='s'&&!(tecla=kbhit()))
        {   for(x=t;x>0;x--)
            {   cx[x]=cx[x-1];
                cy[x]=cy[x-1];
            }
            if(d==0)cx[0]--;
            if(d==1)cy[0]--;
            if(d==2)cx[0]++;
            if(d==3)cy[0]++;
            mgotoxy(cx[t],cy[t]);
            printf(" ");
            if(mx==cx[0]&&my==cy[0])
            {   t++;
                mx=(rand()%25)+1;
                my=(rand()%17)+1;
            }
            mgotoxy(cx[0],cy[0]);
            printf("%c",219);
            mgotoxy(mx,my);
            printf("%c",1);
            Sleep(500);
            for(x=1;x<t;x++)
            {   if(cx[0]==cx[x]&&cy[0]==cy[x])tecla='s';
            }
            if(cy[0]==0||cy[0]==18||cx[0]==0||cx[0]==26)tecla='s';
        }
        if(tecla!='s')tecla=getch();
        if(tecla=='K')d=0;
        if(tecla=='H')d=1;
        if(tecla=='M')d=2;
        if(tecla=='P')d=3;
        if(cy[0]==0||cy[0]==18||cx[0]==0||cx[0]==26)tecla='s';
    }
    getch();
}

cobra.exe - Executável básico resultante desse tutorial

Código completo do Jogo da Velha em C


#include <stdio.h>
#define DIM 3
int vez;

int menu(void);
void clear(void);
void zeraTabuleiro(int tabuleiro[][DIM]);
void exibeTabuleiro(int tabuleiro[][DIM]);
void jogar(int tabuleiro[][DIM]);
int checaLocal(int tabuleiro[][DIM], int linha, int coluna);
int checaLinha(int tabuleiro[][DIM]);
int checaColuna(int tabuleiro[][DIM]);
int checaDiagonal(int tabuleiro[][DIM]);
int checaEmpate(int tabuleiro[][DIM]);
int checaTermino(int tabuleiro[][DIM], int vez);
void jogada(int tabuleiro[][DIM]);

int main(void)
{
    int tabuleiro[DIM][DIM],
        continuar;

    do
    {
        vez=1;
        continuar = menu();
        if(continuar == 1)
            jogar(tabuleiro);

    }while(continuar);

    return 0;
}

int menu(void)
{
    int opcao;

        printf("\t\tJogo da Velha 1.0 - Site C Progressivo\n");
        printf("\n1.Jogar\n");
        printf("0.Sair\n");
        printf("\nOpcao: ");

        scanf("%d", &opcao);

        switch(opcao)
        {
           case 1:
           case 0:
                break;
           default:
                clear();
                printf("Opcao invalida. Tente de novo!\n");
        }

    return opcao;
}

void clear(void)
{
    int count=0;

    while(count != 100)
    {
        putchar('\n');
        count++;
    }
}

void zeraTabuleiro(int tabuleiro[][DIM])
{
    int linha, coluna;
    for(linha = 0 ; linha < DIM ; linha++)
        for(coluna = 0 ; coluna < DIM ; coluna++)
            tabuleiro[linha][coluna] = 0;
}

void exibeTabuleiro(int tabuleiro[][DIM])
{
    int linha, coluna;
    putchar('\n');

    for(linha = 0 ; linha < DIM ; linha++)
    {
        for(coluna = 0 ; coluna < DIM ; coluna++)
        {
            if(tabuleiro[linha][coluna] == 0)
                printf("    ");
            else
                if(tabuleiro[linha][coluna] == 1)
                    printf("  X ");
                else
                    printf("  O ");

            if(coluna != (DIM-1))
                printf("|");
        }
        putchar('\n');
    }
    putchar('\n');
}

void jogar(int tabuleiro[][DIM])
{
    int continua;
    zeraTabuleiro(tabuleiro);

    do
    {
        clear();
        exibeTabuleiro(tabuleiro);
        jogada(tabuleiro);

    }while(checaTermino(tabuleiro, vez) != 1);
}


int checaLocal(int tabuleiro[][DIM], int linha, int coluna)
{
    if(linha < 0 || linha > (DIM-1) || coluna < 0 || coluna > (DIM-1) || tabuleiro[linha][coluna] != 0)
        return 0;
    else
        return 1;
}

int checaLinha(int tabuleiro[][DIM])
{
    int linha, coluna,
        soma;

    for(linha = 0 ; linha < DIM ; linha++)
    {
        soma=0;

        for(coluna = 0 ; coluna < DIM ; coluna++)
            soma += tabuleiro[linha][coluna];

        if(soma==DIM || soma == (-1)*DIM)
            return 1;
    }

    return 0;
}

int checaColuna(int tabuleiro[][DIM])
{
    int linha, coluna,
        soma;


    for(coluna = 0 ; coluna < DIM ; coluna++)
    {
        soma=0;

        for(linha = 0 ; linha < DIM ; linha++)
            soma += tabuleiro[linha][coluna];

        if(soma==DIM || soma == (-1)*DIM)
            return 1;
    }

    return 0;
}

int checaDiagonal(int tabuleiro[][DIM])
{
    int linha,
        diagonal_principal=0,
        diagonal_secundaria=0;

    for(linha = 0 ; linha < DIM ; linha++)
    {
        diagonal_principal += tabuleiro[linha][linha];
        diagonal_secundaria += tabuleiro[linha][DIM-linha-1];
    }

    if(diagonal_principal==DIM || diagonal_principal==(-1)*DIM ||
       diagonal_secundaria==DIM || diagonal_secundaria==(-1)*DIM)
       return 1;



Jogo da Velha em C


Os códigos de exemplo foram retirados da internet