ahaaaa
depois de muito apanhar..e refazer o codigo inteiro.eu consegui fazer o melhor e mais viciante jogo do mundo1!!!
Heal's Jogo da velha!!
pirou hein??
comecei a partir desse tuto aqui:
[youtube]zcev82OMW1E[/youtube]
bom....meio dificil de seguir....mas no final deu tudo certo!!
segue o link do jogo:
Link
espero q nao viciem no jogo..pq ai vou ter q atualizar...kkkk
bom...começando o tutorial...
baixe o microsoft visual studio c++ express 2008:
http://baixaki.ig.com.br/download/Vi...ss-Edition.htm
eh free.....
bom..
depois e instalado vai aparecer a tela:
clice em File>>New>>Project
faça como na figura:
depois clique em Next
marque a opção Empty Project e clique em Finish!
depois vá em Project>>Add New Item
coloque o nome de main.cpp e selecione c++ File!!
dê ADD!.
depois vá em Project>>Propriets (ou Jogo_velha Propriets ou ainda alt+f7)
vá na aba configuration propriets >> Linker>> System
na opção SubSystem coloque Console(/SUBSYSTEM:CONSOLE)...como na figura:
Pronto! seu projeto está pronto para se começado!!
vamos botar pra rodar essa joça:
na main.cpp (estará em branca)...vamos começar a digitar nosso código!
Incluindo as bibliotecas:
Código:
#include <iostream>
chamando a função principal:
declarando todas as variáveis que vamos usar:
Código:
char quad1('1');
char quad2('2');
char quad3('3');
char quad4('4');
char quad5('5');
char quad6('6');
char quad7('7');
char quad8('8');
char quad9('9');
char mascara;
char movimento;
char novamente;
int turno('1');
bool fim(false);
bool venceu(false);
bool movi_valido;
setando o turno para o primeiro jogador e colocando o nome do jogo:
Código:
turno = 1;
std::cout << "Esse eh o Heals Jogo da Velha! Bom Jogo:" << std::endl;
vamos agora fazer o loop prinicpal do jogo...q é somente assim a lógica:
se o fim for diferente de true...ele continua rodando!!
e vamos tb desenhar nosso tabuleiro:
Código:
do {
std::cout << quad1 << "|" << quad2 << "|" << quad3 << std::endl;
std::cout << "-+-+-" << std::endl;
std::cout << quad4 << "|" << quad5 << "|" << quad6 << std::endl;
std::cout << "-+-+-" << std::endl;
std::cout << quad7 << "|" << quad8 << "|" << quad9 << std::endl;
vamos definir quem eh X ou quem eh O!!
Código:
if(turno == 1) {
mascara = 'X';
} else {
mascara = 'O';
}
std::cout << "Jogador N " << turno << ":" << std::endl;
agora vamos ver qual o numero q o cara escolheu...tipo..se o jogador 1 escolheu 1..aparece o X...se o 2 escolheu o 7...aparece o O:
Código:
do {
std::cin >> movimento;
movi_valido = true;
if(movimento == '1' && quad1 == '1') {
quad1 = mascara;
} else if(movimento == '2' && quad2 == '2') {
quad2 = mascara;
} else if(movimento == '3' && quad3 == '3') {
quad3 = mascara;
} else if(movimento == '4' && quad4 == '4') {
quad4 = mascara;
} else if(movimento == '5' && quad5 == '5') {
quad5 = mascara;
} else if(movimento == '6' && quad6 == '6') {
quad6 = mascara;
} else if(movimento == '7' && quad7 == '7') {
quad7 = mascara;
} else if(movimento == '8' && quad8 == '8') {
quad8 = mascara;
} else if(movimento == '9' && quad9 == '9') {
quad9 = mascara;
} else {
std::cout << "Movimento invalido. Tente Novamente." << std::endl;
movi_valido = false;
}
} while (!movi_valido);
agora vamos ver...como ganhar...caso ele fez alguma sequencia certa:
Código:
//as possibilidades de winner!!
if(quad1 != '1') {
if(quad2 == quad1 && quad3 == quad1) {
fim = true;
venceu = true;
}
if(quad4 == quad1 && quad7 == quad1) {
fim = true;
venceu = true;
}
}
if(quad5 != '5') {
if(quad1 == quad5 && quad9 == quad5) {
fim = true;
venceu = true;
}
if(quad2 == quad5 && quad8 == quad5) {
fim = true;
venceu = true;
}
if(quad4 == quad5 && quad6 == quad5) {
fim = true;
venceu = true;
}
if(quad3 == quad5 && quad7 == quad5) {
fim = true;
venceu = true;
}
}
if(quad9 != '9') {
if(quad3 == quad9 && quad6 == quad9) {
fim = true;
venceu = true;
}
if(quad7 == quad9 && quad8 == quad9) {
fim = true;
venceu = true;
}
}
agora vamos ver se vai dar velha!
Código:
//vendo se deu velha!!
if(quad1 != '1' && quad2 != '2' && quad3 != '3' &&
quad4 != '4' && quad5 != '5' && quad6 != '6' &&
quad7 != '7' && quad8 != '8' && quad9 != '9' && !fim) {
fim = true;
venceu = false;
}
agora vamos aos finalmente!!
se fim = true quer dizer q acabou!!
ai devemos ver se ganhou ou deu game over, devemos tb dar a msg de vencedor, e a opção de jogar de novo..
e também nessa opção vamos cetar em qual jogador está cada jogada:
Código:
if(fim) {
std::cout << quad1 << "|" << quad2 << "|" << quad3 << std::endl;
std::cout << "-+-+-" << std::endl;
std::cout << quad4 << "|" << quad5 << "|" << quad6 << std::endl;
std::cout << "-+-+-" << std::endl;
std::cout << quad7 << "|" << quad8 << "|" << quad9 << std::endl;
if(venceu) {
std::cout << "Jogador " << turno << " Ganhou!!!" << std::endl;
}
std::cout << "Fim de Jogo!" << std::endl;
std::cout << "Jogar de novo??(s/n)" << std::endl;
std::cin >> novamente;
if(novamente == 's') {
fim = false;
quad1 = '1';
quad2 = '2';
quad3 = '3';
quad4 = '4';
quad5 = '5';
quad6 = '6';
quad7 = '7';
quad8 = '8';
quad9 = '9';
turno = 1;
}
} else {
if(turno == 1) {
std::cout << turno << std::endl;
turno = 2;
} else {
std::cout << turno << std::endl;
turno = 1;
}
}
} while(!fim);
}
bom...
acabou...ficou bem comprimido o tuto pra vcs aprenderem (eu já sei...hahaha)
fonte total do main.cpp:
Código:
#include <iostream>
void main() {
char quad1('1');
char quad2('2');
char quad3('3');
char quad4('4');
char quad5('5');
char quad6('6');
char quad7('7');
char quad8('8');
char quad9('9');
char mascara;
char movimento;
char novamente;
int turno('1');
bool fim(false);
bool venceu(false);
bool movi_valido;
turno = 1;
std::cout << "Esse eh o Heals Jogo da Velha! Bom Jogo:" << std::endl;
//Loop principal do jogo
do {
std::cout << quad1 << "|" << quad2 << "|" << quad3 << std::endl;
std::cout << "-+-+-" << std::endl;
std::cout << quad4 << "|" << quad5 << "|" << quad6 << std::endl;
std::cout << "-+-+-" << std::endl;
std::cout << quad7 << "|" << quad8 << "|" << quad9 << std::endl;
if(turno == 1) {
mascara = 'X';
} else {
mascara = 'O';
}
std::cout << "Jogador N " << turno << ":" << std::endl;
//marcações do game!!
do {
std::cin >> movimento;
movi_valido = true;
if(movimento == '1' && quad1 == '1') {
quad1 = mascara;
} else if(movimento == '2' && quad2 == '2') {
quad2 = mascara;
} else if(movimento == '3' && quad3 == '3') {
quad3 = mascara;
} else if(movimento == '4' && quad4 == '4') {
quad4 = mascara;
} else if(movimento == '5' && quad5 == '5') {
quad5 = mascara;
} else if(movimento == '6' && quad6 == '6') {
quad6 = mascara;
} else if(movimento == '7' && quad7 == '7') {
quad7 = mascara;
} else if(movimento == '8' && quad8 == '8') {
quad8 = mascara;
} else if(movimento == '9' && quad9 == '9') {
quad9 = mascara;
} else {
std::cout << "Movimento invalido. Tente Novamente." << std::endl;
movi_valido = false;
}
} while (!movi_valido);
//as possibilidades de winner!!
if(quad1 != '1') {
if(quad2 == quad1 && quad3 == quad1) {
fim = true;
venceu = true;
}
if(quad4 == quad1 && quad7 == quad1) {
fim = true;
venceu = true;
}
}
if(quad5 != '5') {
if(quad1 == quad5 && quad9 == quad5) {
fim = true;
venceu = true;
}
if(quad2 == quad5 && quad8 == quad5) {
fim = true;
venceu = true;
}
if(quad4 == quad5 && quad6 == quad5) {
fim = true;
venceu = true;
}
if(quad3 == quad5 && quad7 == quad5) {
fim = true;
venceu = true;
}
}
if(quad9 != '9') {
if(quad3 == quad9 && quad6 == quad9) {
fim = true;
venceu = true;
}
if(quad7 == quad9 && quad8 == quad9) {
fim = true;
venceu = true;
}
}
//vendo se deu velha!!
if(quad1 != '1' && quad2 != '2' && quad3 != '3' &&
quad4 != '4' && quad5 != '5' && quad6 != '6' &&
quad7 != '7' && quad8 != '8' && quad9 != '9' && !fim) {
fim = true;
venceu = false;
}
if(fim) {
std::cout << quad1 << "|" << quad2 << "|" << quad3 << std::endl;
std::cout << "-+-+-" << std::endl;
std::cout << quad4 << "|" << quad5 << "|" << quad6 << std::endl;
std::cout << "-+-+-" << std::endl;
std::cout << quad7 << "|" << quad8 << "|" << quad9 << std::endl;
if(venceu) {
std::cout << "Jogador " << turno << " Ganhou!!!" << std::endl;
}
std::cout << "Fim de Jogo!" << std::endl;
std::cout << "Jogar de novo??(s/n)" << std::endl;
std::cin >> novamente;
if(novamente == 's') {
fim = false;
quad1 = '1';
quad2 = '2';
quad3 = '3';
quad4 = '4';
quad5 = '5';
quad6 = '6';
quad7 = '7';
quad8 = '8';
quad9 = '9';
turno = 1;
}
} else {
if(turno == 1) {
std::cout << turno << std::endl;
turno = 2;
} else {
std::cout << turno << std::endl;
turno = 1;
}
}
} while(!fim);
}
para compilar aperte crtl+f5...ele nao terá nenhum erro (se seguiu o tuto inteiro) e irá abrir uma janela em DOS:
bom....com isso ele deverá rodar assim:
eh em DOS..mais pra frente vou tentar passar pra imagem..nao sei como ainda!!!
hahah
mas ai..bom aproveito!!
espero q gostem!!
o tuto foi totalemnte feito por mim...porém eu basiei inteiramente na vídeo aula....eu fiz todo o fonte baseado lá!!!