
LuKaum
Membros-
Total de itens
42 -
Registro em
-
Última visita
Tudo que LuKaum postou
-
affs cara.....eu dei uma dica lá em cima....se o cara quer usar ow não o problema é dele.... (liberdade para resolver problemas é o q a programacao nos dá.... é sempre bom deixarmos os programas mas bem feitos...) mas é porque quando eu fiz a calculadora pela minah primeira vez eu concatenei......fiko bem melhor....e num precisa de conhecimentos complexos pra isso não..... agora....se você acha system("pause") uma droga aii é com você...ele não vai alterar o programa mesmo.... a funcao de pausar vai ser a mesmo....!!heheehhe e otra...tda vez q eu programo só em C eu adiciono as bibliotecas cstdlib e cstdio por causa das funcoes delas....talvez nakele programa não era necessario a cstdlib mas uso muito em outros.... agora.....é muito melhor por um system("pause > nul") do q fikar perguntando q operacao deve ser feita..... mas vlw aew...
-
opaaa... aki.....respondendo aii....eu fiz o codigo em C só pra mostrar pro cara lá mas prefiro programar em C++.... entaum para poder esvaziar o nivel de buffer.....(axo q é assim q fala !)... eu uso sempre endl...... segundo q o %c não suportava naquele local do programa....ele não lia os caracteres 'e' e 'r'.....já quando usei o %s passou a ler..... o motivo de q não goste de switchs é q eles não saum bons ao mistura-los com formas de programas um pouco mais complexas..... ---não vejo muita utilidade nele não.....ele pode ser substituido facilmente por um if!!---- o system("pause") é mania.....!!uhauaauhua.....estes saum bons mesmo mas troque o sytem("pause") por getch() ou cin.getch() no meu programa pra você fragar....vai dar akela famosa frase.....'getch' undeclared (first use this function).....auhuhaauuah...e eu não vou incluir uma biblioteca só pra isso...... mas aki...eu programo em C/C++....não em outra lingua não....as vezes um Java ou um Delph....uaauauhua mas vlw pelas dicas aew.... abrazz
-
affs....switch com case.....uhauhaauau....fala bobagem não fih!!! switch é uma b***...ninguém usa isso não.... e tipow...usando switch você vai faze um programa do tipow....o que você quer fazer....? a - adicao, b - subtracao, c - multiplicacao... ai depois você coloka o primeiro e segundo termos.....isso é muito feio... tem q faze uma calculadora q você proprio digite o q você quer......tipow....: #include <cstdio> #include <cstdlib> #include <cmath> int main() { int option; float termo1, termo2, resultado; char operador; while (true) { system("color f0"); printf ("\t\t\t\tCALCULADORA\n\n\n"); printf ("Digite a operacao para que seja calculado o resultado\n"); printf ("Utilize 'e' e 'r' para exponenciar, racionalizar qualquer numero\n"); printf ("De espacos entre o numero, operador, numero. exemplo: 5 + 5 ou 9 r 2.\n\n"); scanf ("%f", & termo1); scanf ("%s", & operador); scanf ("%f", & termo2); if (operador == '+') { resultado = termo1 + termo2; printf (" = %f", resultado); } else if (operador == '-') { resultado = termo1 - termo2; printf (" = %f", resultado); } else if (operador == '*') { resultado = termo1 * termo2; printf (" = %f", resultado); } else if (operador == '/') { while (termo2 == 0) { printf ("não se pode dividir por zero!\n"); printf ("digite o divisor novamente: "); scanf ("%f", & termo2); } resultado = termo1 / termo2; printf (" = %f", resultado); } else if (operador == 'e') { resultado = pow (termo1, termo2); printf (" = %f", resultado); } else if (operador == 'r') { resultado = 1 / termo2; resultado = pow (termo1, resultado); printf (" = %f", resultado); } else { printf ("não existe este operador!\n"); } system("pause"); system("cls"); } return 0; } eu fiz esse aki rapidao......dá uma olhada pra você fragar....
-
olha...se você programar em c++ utilize a iostream... se for programar em C utiliza a cstdio e cstdlib....não junta as duas coisas não....e outro o if(sexo=F) não pode ser assim...deve ser assim: if(sexo == 'F')....usa-se o operador de comparacao (==) e não o de atribuicao (=). tb não se usa vetor de char para gravar nomes....usa se uma string. chame #include <string> e depois faca string nome; getline(cin, nome); só isso você atribui o nome e o sobrenome numa variavel só...não em duas. depois teste só pra você fragar: #include <iostream> #include <string> using namespace std; int main() { string nome; cout<<"digite seu nome:"<<endl; getline(cin, nome); cout<<endl<<"ola, "<<nome<<'!'<<endl; system("pause"); return 0; } digite seu nome completo aew e olhe o que vai imprimir na tela... =) espero ter ajudado aew...
-
opaa...eu fiz aki o seu exercicio.... eu implementei a possibilidade de você decidir quantos termos da sequencia calcular pois a sequencia segue uam razao logica entaum dá pra fazer...! olha...eu usei for, if, else, operador, sub-rotina, ponteiro, referencia e tals....o bom q você dá ateh uma estudada com o codigo...e tipow... você pode mostrar pro professor ow entaum tenta faze aew porque eu num sei o quanto você sabe entaum eu fiz como eu sei..... tah aew o codigo... #include <cstdio> #include <cstdlib> #include <cmath> void sequencia(int termos, float *total); int main() { int termos; float S; printf("digite o numero de termos da sequencia que queira calcular: "); scanf("%d", &termos); printf("\n\n"); sequencia(termos, &S); printf("\n\na soma de todos os termos da sequencia e: %f \n\n", S); system("pause"); return 0; } void sequencia(int termos, float *total) { float fracao, denominador; int numerador; const int base = 2; int i, divisao; *total = 0; for (i = 1; i <= termos; i++) { numerador = i; denominador = pow(base, i); divisao = i % 2; if (divisao != 0) { printf(" - %d/%f", numerador, denominador); fracao = - numerador/denominador; } else { printf(" + %d/%f", numerador, denominador); fracao = numerador/denominador; } *total += fracao; } }
-
olha...você nunk vai conseguir programar usando if pra tdo vey...!! é bom você dá uma pesquisada sobre for e tals.... tipow..não sei se isso era dever seu mas ele não é do tipow dificil q precisa de pensar muito pra faze não.... eu fiz aki e dá uma olhada só pra você fragar aew... #include <iostream> using namespace std; int main() { const int num_inf = 4; int number[num_inf]; int i, j; float par; for (i = 0; i < num_inf; i++) { cout<<"digite o numero "<<i + 1<<": "; cin>>number[i]; } cout<<endl; for (j = 0; j < num_inf; j++) { if (number[j] < 0) { cout<<"o numero "<<number[j]<<" e negativo"; } else { cout<<"o numero "<<number[j]<<" e positivo"; } par = number[j] % 2; if (par == 0) { cout<<" e par."<<endl; } else { cout<<" e impar."<<endl; } } system("pause"); return 0; } depois compila ele e dá uma fragada só pra ver como ficou... flws aew
-
olha veyy...eu fiz um aki muito mais simples aeew... é só usando for mesmo e tals.... depois ve se era isso q você keria mesmo.... #include<stdio.h> #include<stdlib.h> main () { float v[10]; float n, soma; int i, j; printf ("\nQuantos valores deseja calcular? "); scanf ("%f",& n); for (i = 0; i < n; i++) { printf ("\n\nEntre com o %d valor: ",i); scanf ("%f",& v[i]); } for (j = 0; j < (n - 1); j++) { soma = v[j] + v[j+1]; printf ("\n\nA soma de %f com %f e %f ",v[j],v[j+1],soma); } printf ("\n"); system("pause"); return 0; } flws aew
-
olha cara....num é pra fala não mas tipow....eu compilei o seu codigo aki e percebi q você num tah sabendo programa direito não veii... fez uns ifs sem logica .... uns else tdo loko..... criou mais switchs sem necessidade.... o programa nunca ia compila mesmo não!!! dá umas olhadas em tutoriais para aprender a programa ... ve como faz um if/else e tals....você pos operadores nos if sem dar logica ao programa.....tipow (resp != 'a') q quando o resp não for igual a 'a' o programa vai faze.....faze o que???!?? num tem nada mandando ele faze....e tb não adicionou chaves aos ifs...outro problema tb.... ow.... tah o seu codigo revisto e corrigido....dá uma olhada pra você onde errou!! #include <stdio.h> #include <stdlib.h> int num1,num2,result; char a,b,c,d,e,f,g,h,resp; int main() { printf("a.adicao\nb.subtracao\nc.mutiplicacao\nd.divisao\ne.exponencial quadratica\nf.exponencial cubica\ng.resto\nh.sair\n"); scanf("%c",&resp); printf("digite o primeiro numero\n"); scanf("%d",&num1); if (resp != 'e' && resp != 'f') { printf("digite o segundo numero\n"); scanf("%d",&num2); } switch (resp){ case 'a': { result=num1+num2; printf("%d + %d = %d\n",num1,num2,result); system("PAUSE"); break; } case 'b': { result=num1-num2; printf("%d - %d = %d\n",num1,num2,result); system("PAUSE"); break; } case 'c': { result=num1*num2; printf("%d x %d = %d\n",num1,num2,result); system("PAUSE"); break; } case 'g': { result = num1 % num2; printf("%d %% %d = %d\n", num1 ,num2 ,result); system("PAUSE"); break; } case 'f': { result=num1*num1*num1; printf("%d ao cubo = %d\n",num1,result); system("PAUSE"); break; } case 'e': { result=num1*num1; printf("%d ao quadrado = %d\n",num1,result); system("PAUSE"); break; } } return 0; }
-
cara...eu dei uma olhada no seu codigo...tah ate bom vey... mas não é muito bom uma calculadora assiim não.... tipow....não existe nenhuma calculadora que pede pra você escolher q tipo de operacao você quer fazer.... outra coisa.... não aconselho a usar switchs não.... não faz nada q não de pra faze usando ifs..... eu vou postar um codigo akew...dá uma fragada no programa como deve ser....compila ele se puder...! #include <cstdio> #include <cstdlib> #include <cmath> int main() { int option; float termo1, termo2, resultado; char operador; while (true) { system("color f0"); printf ("\t\t\t\tCALCULADORA\n\n\n"); printf ("Digite a operacao para que seja calculado o resultado\n"); printf ("Utilize 'e' e 'r' para exponenciar, racionalizar qualquer numero\n"); printf ("De espacos entre o numero, operador, numero. exemplo: 5 + 5 ou 9 r 2.\n\n"); scanf ("%f", & termo1); scanf ("%s", & operador); scanf ("%f", & termo2); if (operador == '+') { resultado = termo1 + termo2; printf (" = %f", resultado); } else if (operador == '-') { resultado = termo1 - termo2; printf (" = %f", resultado); } else if (operador == '*') { resultado = termo1 * termo2; printf (" = %f", resultado); } else if (operador == '/') { while (termo2 == 0) { printf ("não se pode dividir por zero!\n"); printf ("digite o divisor novamente: "); scanf ("%f", & termo2); } resultado = termo1 / termo2; printf (" = %f", resultado); } else if (operador == 'e') { resultado = pow (termo1, termo2); printf (" = %f", resultado); } else if (operador == 'r') { resultado = 1 / termo2; resultado = pow (termo1, resultado); printf (" = %f", resultado); } else { printf ("não existe este operador!\n"); } system("pause"); system("cls"); } return 0; } qualquer coisa é só perguntar....
-
toh com serios problemas num jogo da cobrinha q eu fiz akew.... a logica dele é simples...ele adiciona um ponto a frent da atual cabeça e depois o atribui para uma variavel cauda(tail) e segue todos os pontos proximos por if.... o foda é que quando ela axa mais de um caminho possivel dá bug...entaum eu usei algo parecido com um bool para poder tirar a probabilidade de ir nos dois caminhos... o problema é q se a cobra ir para o ponto errado (ela sempre faz isso....aff danada!!!)babaus... entaum eu usei uma função ow coisa parecida para determinar um nivel de prioridade para q ela faça sempre a escolha certa..... mas quando passa uma parte do corpo da cobra ao lado do resto do corpo dela e clika para esquerda ou direita (se ela tiver subindo ou descendo) ou para cima ou baixo (se ela tiver para direita ou esquerda) gera um conflito com a prioridade gerando um loop-in infinito dentro do laço for.....dai eu adicionei um contador para impedir o loop-in infinito e concertou em duas posiçoes só q nas outras duas acontecem erros muito feios.....quem puder dá uma olhada e compilar o codigo pra fragar direito o problema.... #include <iostream> #include <conio.h> #include <windows.h> using namespace std; void MAP(); void CONTROL(); void FOOD(); void PRIORITY(); int option, i, j, tail_x, tail_y, food_x, food_y, priority, contador; const int com = 20, lar = 50; int block [com][lar]; int snake_x = 10, snake_y = 25, head_x = -1, head_y = 0, size = 3, off = 0, points = 0; int speed = 2, pr_u = 1, pr_d = 2, pr_l = 3, pr_r = 4; char key2, key = 'w', key_up = 'w', key_down = 's', key_left = 'a', key_right = 'd'; bool end = false, upgrade = false, start_food = false, r = false, l = false, u = true, d = false, end_turn = false; int main() { do { system("color 1f"); cout<<"\n\n\t\t\t SNAKE --- NEW VERSION\n\n"; cout<<"\t\t This Game is a product by Lukaum\n\n\n\n"; if (key == 'x') { cout<<"0_ Continue\n"; } cout<<"1_ Play\n"; cout<<"2_ Instructions\n"; cout<<"3_ Option\n"; cout<<"4_ Exit\n"; cin>>option; if (option == 1 || (option == 0 && key == 'x')) { system("cls"); if (option == 0 && key == 'x') { key = key_up; } else { snake_x = 10, snake_y = 25, head_x = -1, head_y = 0, size = 3, off = 0, points = 0; key = key_up; start_food = false; for (i = 0; i < com; i++) { for (j = 0; j < lar; j++) { block [i][j] = ' '; } } for (i = 0; i < com; i++) { block [i][0] = char(186); block [i][lar - 1] = char(186); } for (j = 0; j < lar; j++) { block [0][j] = char(205); block [com - 1][j] = char(205); } block [0][0] = char(201); block [com - 1][0] = char(200); block [0][lar - 1] = char(187); block [com - 1][lar - 1] = char(188); block [snake_x][snake_y] = char(254); block [snake_x + 1][snake_y] = char(254); block [snake_x + 2][snake_y] = char(254); } do { MAP(); FOOD(); CONTROL(); snake_x += head_x; snake_y += head_y; if (block [snake_x][snake_y] == char(186) || block [snake_x][snake_y] == char(205) || block [snake_x][snake_y] == char(254)) { end = true; } else { if (block [snake_x][snake_y] == '*') { size++; upgrade = true; start_food = false; points += (5 * speed); } block [snake_x][snake_y] = char(254); PRIORITY(); tail_x = snake_x; tail_y = snake_y; contador = 4 * size; if (upgrade != true) { for (i = 0; i < size; i++) { if (block [tail_x + 1][tail_y] == char(254) && off != 2 && end_turn != true && pr_u == priority) { tail_x += 1; off = 1; end_turn = true; } if (block [tail_x - 1][tail_y] == char(254) && off != 1 && end_turn != true && pr_d == priority) { tail_x -= 1; off = 2; end_turn = true; } if (block [tail_x][tail_y - 1] == char(254) && off != 4 && end_turn != true && pr_r == priority) { tail_y -= 1; off = 3; end_turn = true; } if (block [tail_x][tail_y + 1] == char(254) && off != 3 && end_turn != true && pr_l == priority) { tail_y += 1; off = 4; end_turn = true; } if (end_turn != true) { if (priority > 3) { priority = 1; } else { priority++; } i--; if (contador == 0) { i = size; } } contador--; end_turn = false; } off = 0; block [tail_x][tail_y] = ' '; } cout<<"Points: "<<points; upgrade = false; Sleep(200 / speed); system("cls"); } }while (key != 'x' && end != true); if (end == true) { system("cls"); cout<<"\n\n\n\n\t\t\t\tYOU LOSE!!!!\n\n\n\n\n"; cout<<"\n\n\n\n\t\t\t\tyou did "<<points; cout<<" points \n\n\n"; cout<<"press ENTER to continue..."; system("pause > nul"); system("cls"); } if (key != 'x') { snake_x = 10, snake_y = 25, head_x = -1, head_y = 0, size = 3, off = 0, points = 0; end = false, upgrade = false, start_food = false, r = false, l = false, u = true, d = false; } } if (option == 2) { system("cls"); cout<<"\n\n\n\nUse the buttons: 'w', 's', 'd', 'a', for up, down, right and left, respective.\n\n"; cout<<"Click in 'x' for pause the game.\n\n"; cout<<"Change the keys and the snake's speed in the menu, options.\n\n\n\n"; cout<<"press ENTER to continue..."; system("pause > nul"); system("cls"); } if (option == 3) { do { system("cls"); cout<<"\n\n\n\nUse the keys '+' or '-' for change the snake's speed\n\n"; cout<<"Use 'e' for edit the control. (just use characters)\n\n"; cout<<"Press 'x' for exit of this options.\n\n"; cout<<"Speed of Snake: "<<speed; if (kbhit()) { key2 = getch(); if (key2 == '+' && speed != 5) { speed++; } if (key2 == '-' && speed != 1) { speed--; } if (key2 == 'e') { cout<<"\nType the up key: "; cin>>key_up; cout<<"\nType the down key: "; cin>>key_down; cout<<"\nType the left key: "; cin>>key_left; cout<<"\nType the right key: "; cin>>key_right; } } }while (key2 != 'x'); system("cls"); key2 = 'o'; } }while (option != 4); return 0; } void MAP() { for (i = 0; i < com; i++) { printf("\t "); for (j = 0; j < lar; j++) { printf("%c", block [i][j]); } printf("\n"); } } void CONTROL() { if (kbhit()) { key = getch(); if (key == key_up && d != true) { head_x = -1; head_y = 0; u = true; d = false; l = false; r = false; } if (key == key_down && u != true) { head_x = 1; head_y = 0; u = false; d = true; l = false; r = false; } if (key == key_left && r != true) { head_x = 0; head_y = -1; u = false; d = false; l = true; r = false; } if (key == key_right && l != true) { head_x = 0; head_y = 1; u = false; d = false; l = false; r = true; } } } void FOOD() { int x; bool y = true; srand(time(NULL)); food_x = rand() % (com - 1); food_y = rand() % (lar - 1); while (y == true) { for (x = 0; x < 255; x++) { if (block [food_x][food_y] == char(x)) { if (x == 254 || x == 186 || x == 187 || x == 188 || x == 200 || x == 201 || x == 205) { food_x = rand() % (com - 1); food_y = rand() % (lar - 1); } else { y = false; } } } } if (start_food != true) { block [food_x][food_y] = '*'; start_food = true; } } void PRIORITY() { if (u == true) { priority = 1; } if (d == true) { priority = 2; } if (l == true) { priority = 3; } if (r == true) { priority = 4; } } quem conseguir arrumar posta aeww!!
-
falto falar tb q é necessario um for assim(i = 0; i < 2000(ow a const int usada); i++) aii você pega cada voto...depois você usa um if...em cada if vai ter um contador... depois coloke os contadores sobre o numero total e você axa.... não se eskeca do if ((entrada != 11 && entrada != 22 && entrada != 33) || entrada == 0) pois esse usa só um contador... flws
-
aki...eu tenho um codigo em que calcula fatorial, só q tah em c++,...dá só uma olhada #include <iostream> #include <cmath> using namespace std; int main() { long double N, fatorial, fracao, inteiro; long double E = 0; long double parcial = 1.; char opcao; do { system("cls"); cout<<"calculador de fatorial.\n"<<endl; cout<<"digite o valor de N para a formula:"<<endl; cin>>N; fracao = modf (N, & inteiro); while (N < 0 || fracao != 0) { cout<<"opcao incorreta!"<<endl<<"digite novamente:"<<endl; cin>>N; fracao = modf (N, & inteiro); } for (float j = 1; j <= N; j++) { for (float i = 1; i <= j; i++) { parcial *= i; } E += 1./parcial; parcial = 1.; } cout<<"resultado da formula e:"<<E+1<<endl; cout<<"deseja realizar uma nova operacao?(s/n)"<<endl; cin>>opcao; E = 0; }while (opcao == 's'); system("pause"); return 0; } tah aew
-
opaaa..... cara....se o bloco q você tah falando é usar sub-rotina...tb chamado de função....eu acho q eu fiz um esquema q dá pra você fragar aew... #include <cstdio> #include <cstdlib> float EXPOENTE(float a, float b); float PAR(float a); int main() { char option; float resultado, numero1, numero2; char resultado2; do { printf("Digite 'e' para elevar um numero a um determinado expoente\n"); printf("Digite 'p' para saber se um numero é par ou impar\n"); printf("Digite 's' para sair\n"); scanf("%c", & option); if (option == 'e') { printf("digite o numero a ser elevado\n"); scanf("%f", & numero1); printf("digite o expoente\n"); scanf("%f", & numero2); resultado = EXPOENTE(numero1, numero2); printf("%f", resultado); } if (option == 'p') { printf("digite um numero\n"); scanf("%f", & numero1); resultado2 = PAR(numero1); printf("%c", resultado); } system("cls"); }while (option != 's'); system("pause"); return 0; } float EXPOENTE(float a, float b) { float resultado_ele; //escreva seu codigo de elevar a potencia //atribua o resultado a variavel acima return resultado_ele; } float PAR(float a) { char resultado_par; //escreva seu codigo de par ou impar //atribua o resultado a variavel acima //no caso: é par....não é par... return resultado_par; } daii você faz o seu....porque se você quer aprender alguma coisa em programação nunca é bom copiar e tals....dá uma olhado no codigo q eu fiz e tira o q você axo de melhor...ah! valida ele tb! obs: eu tb não faço faculdade....aprendi na marra!uahuaauhauh
-
olha..... eu já criei uma calculadora (quem nunca criou!ahuuhuhasuhusa) e vey...calculadora q fica pedindo primeiro a conta q quer....segundo o primeiro termos e depois o segundo termo é muito feia.... eu fiz a mina em c++ e usei concatenação pra fazer o seguinte: 5 + 5...aii o usuario clika enter e sai o resultado....10.(ele pode ate fazer '5 e 3' q eleva o 5 a terceira potencia....) se eu não me engano...em C pode fazr concatenaçao tb. em C++ ficaria +- assim: int termo1; int termo2; char operador; cout<<"digite a operação"<<endl; cin>>termo1>>operador>>termo2; ........ aii você continua seu codigo do jeito que quiser.... em C axo que ficaria assim..: float termo1, termo2, resultado; char operador; printf("digite sua operacao\n"); scanf("%f", & termo1); scanf("%c", & operador); scanf("%f", & termo2); daii você continua o codigo.... qualquer coisa é só fla q eu posto o codigo inteiro...
-
cara.....eu num sei qual é o objetivo de você ter feito isso não.....mas se for pra você faze um jogo da forca, eu num te aconselho a usar o que você usou.... num é necessario adicionar tanta bilioteca pra faze um jogo da forca....ainda mais q você já incluiu uma iostream! agora se o seu objetivo em faze esse codigo foi só pra usar umas funçoes diferentes e tals....procura ajuda no que realmente quer...! quaquer coisa pergunta aew....se eu souber...eu respondo....flws
-
opaa...sou novo aki no forum e toh com uma duvida tb em programacao de nivel basico... criei um game de snake no console em c++. tipow...eu usei uma logica diferente porque foi a unica saida q eu encontrei pra criar um snake com o que eu sei.... eu vi um codigo em um outro forum que deu um tanto de arquivo e biblioteca..... já o meu só deu um arquivo mesmo xD!! a logica dele é simples...ele adiciona um ponto a frent da atual cabeça e depois o atribui para uma variavel cauda(tail) e segue todos os pontos proximos por if.... o foda é que quando ela axa mais de um caminho possivel dá bug...entaum eu usei algo parecido com um bool para poder tirar a probabilidade de ir nos dois caminhos... o problema é q se a cobra ir para o ponto errado (ela sempre faz isso....oxe danada!!!)babaus... entaum eu usei uma função ow coisa parecida para determinar um nivel de prioridade para q ela faça sempre a escolha certa..... só depoois eu percebi que quando ela tah muito grande...e passa do lado de seu corpo duas ow tres vezes gera um conflito não identificado onde deduzo ser por causa da prioridade. este conflito faz com que o jogo congele e tals.....fora essa situação...q só acontece quando você já tah lá para 400 pontos no nivel 2 de velocidade...(ow 800 pontos no nivel 5) q dá esses pals kabulosos.. #include <iostream> #include <conio.h> #include <windows.h> using namespace std; void MAP(); void CONTROL(); void FOOD(); void PRIORITY(); int option, i, j, tail_x, tail_y, food_x, food_y, priority; const int com = 20, lar = 50; int block [com][lar]; int snake_x = 10, snake_y = 25, head_x = -1, head_y = 0, size = 3, off = 0, points = 0; int speed = 2, pr_u = 1, pr_d = 2, pr_l = 3, pr_r = 4; char key2, key = 'w', key_up = 'w', key_down = 's', key_left = 'a', key_right = 'd'; bool end = false, upgrade = false, start_food = false, r = false, l = false, u = true, d = false, end_turn = false; int main() { do { system("color 1f"); cout<<"\n\n\t\t\t SNAKE --- NEW VERSION\n\n"; cout<<"\t\t This Game is a product by Lukaum\n\n\n\n"; if (key == 'x') { cout<<"0_ Continue\n"; } cout<<"1_ Play\n"; cout<<"2_ Instructions\n"; cout<<"3_ Option\n"; cout<<"4_ Exit\n"; cin>>option; if (option == 1 || (option == 0 && key == 'x')) { system("cls"); if (option == 0 && key == 'x') { key = key_up; } else { snake_x = 10, snake_y = 25, head_x = -1, head_y = 0, size = 3, off = 0, points = 0; key = key_up; start_food = false; for (i = 0; i < com; i++) { for (j = 0; j < lar; j++) { block [i][j] = ' '; } } for (i = 0; i < com; i++) { block [i][0] = char(186); block [i][lar - 1] = char(186); } for (j = 0; j < lar; j++) { block [0][j] = char(205); block [com - 1][j] = char(205); } block [0][0] = char(201); block [com - 1][0] = char(200); block [0][lar - 1] = char(187); block [com - 1][lar - 1] = char(188); block [snake_x][snake_y] = char(254); block [snake_x + 1][snake_y] = char(254); block [snake_x + 2][snake_y] = char(254); } do { MAP(); FOOD(); CONTROL(); snake_x += head_x; snake_y += head_y; if (block [snake_x][snake_y] == char(186) || block [snake_x][snake_y] == char(205) || block [snake_x][snake_y] == char(254)) { end = true; } else { if (block [snake_x][snake_y] == '*') { size++; upgrade = true; start_food = false; points += (5 * speed); } block [snake_x][snake_y] = char(254); PRIORITY(); tail_x = snake_x; tail_y = snake_y; if (upgrade != true) { for (i = 0; i < size; i++) { if (block [tail_x + 1][tail_y] == char(254) && off != 2 && end_turn != true && pr_u == priority) { tail_x += 1; off = 1; end_turn = true; } if (block [tail_x - 1][tail_y] == char(254) && off != 1 && end_turn != true && pr_d == priority) { tail_x -= 1; off = 2; end_turn = true; } if (block [tail_x][tail_y - 1] == char(254) && off != 4 && end_turn != true && pr_r == priority) { tail_y -= 1; off = 3; end_turn = true; } if (block [tail_x][tail_y + 1] == char(254) && off != 3 && end_turn != true && pr_l == priority) { tail_y += 1; off = 4; end_turn = true; } if (end_turn != true) { if (priority > 3) { priority = 1; } else { priority++; } i--; } end_turn = false; } off = 0; block [tail_x][tail_y] = ' '; } cout<<"Points: "<<points; upgrade = false; Sleep(200 / speed); system("cls"); } }while (key != 'x' && end != true); if (end == true) { system("cls"); cout<<"\n\n\n\n\t\t\t\tYOU LOSE!!!!\n\n\n\n\n"; cout<<"\n\n\n\n\t\t\t\tyou did "<<points; cout<<" points \n\n\n"; cout<<"press ENTER to continue..."; system("pause > nul"); system("cls"); } if (key != 'x') { snake_x = 10, snake_y = 25, head_x = -1, head_y = 0, size = 3, off = 0, points = 0; end = false, upgrade = false, start_food = false, r = false, l = false, u = true, d = false; } } if (option == 2) { system("cls"); cout<<"\n\n\n\nUse the buttons: 'w', 's', 'd', 'a', for up, down, right and left, respective.\n\n"; cout<<"Click in 'x' for pause the game.\n\n"; cout<<"Change the keys and the snake's speed in the menu, options.\n\n\n\n"; cout<<"press ENTER to continue..."; system("pause > nul"); system("cls"); } if (option == 3) { do { system("cls"); cout<<"\n\n\n\nUse the keys '+' or '-' for change the snake's speed\n\n"; cout<<"Use 'e' for edit the control. (just use characters)\n\n"; cout<<"Press 'x' for exit of this options.\n\n"; cout<<"Speed of Snake: "<<speed; if (kbhit()) { key2 = getch(); if (key2 == '+' && speed != 5) { speed++; } if (key2 == '-' && speed != 1) { speed--; } if (key2 == 'e') { cout<<"\nType the up key: "; cin>>key_up; cout<<"\nType the down key: "; cin>>key_down; cout<<"\nType the left key: "; cin>>key_left; cout<<"\nType the right key: "; cin>>key_right; } } }while (key2 != 'x'); system("cls"); key2 = 'o'; } }while (option != 4); return 0; } void MAP() { for (i = 0; i < com; i++) { printf("\t "); for (j = 0; j < lar; j++) { printf("%c", block [i][j]); } printf("\n"); } } void CONTROL() { if (kbhit()) { key = getch(); if (key == key_up && d != true) { head_x = -1; head_y = 0; u = true; d = false; l = false; r = false; } if (key == key_down && u != true) { head_x = 1; head_y = 0; u = false; d = true; l = false; r = false; } if (key == key_left && r != true) { head_x = 0; head_y = -1; u = false; d = false; l = true; r = false; } if (key == key_right && l != true) { head_x = 0; head_y = 1; u = false; d = false; l = false; r = true; } } } void FOOD() { srand(time(NULL)); food_x = rand() % (com - 1); food_y = rand() % (lar - 1); while (block [food_x][food_y] == char(186) || block [food_x][food_y] == char(205) || block [food_x][food_y] == char(254)) { food_x = rand() % (com - 1); food_y = rand() % (lar - 1); } if (start_food != true) { block [food_x][food_y] = '*'; start_food = true; } } void PRIORITY() { if (u == true) { priority = 1; } if (d == true) { priority = 2; } if (l == true) { priority = 3; } if (r == true) { priority = 4; } } quem puder me ajudar vlw aew