Ir ao conteúdo
  • Cadastre-se

C++ modificaçao codigo fonte do advmenuplus


Posts recomendados

sou novo na programação em c e c++ estou querendo fazer uma alteraça em uma lista do codigo de fonte de um front end

e uma lista que fica na diagonal segue!!!!

 

 int cell_x = list_x;
    int cell_y = list_y;
    int cell_dx = (list_dx - (coln - 1) * space_x) / coln;//////////////////////////alterar para (col / 2)
    int cell_dy = name_dy;
    int space_diagonal_x = abs(diagonal * (rown - 1));
    if(diagonal < 0) cell_x = cell_x + space_diagonal_x;
    
    for(int r=0;r<rown;++r) {
        for(int c=0;c<coln;++c) {
            unsigned i = r * coln + c;
            int_map.x = cell_x + diagonal * r + (cell_dx + space_x) * c;
            int_map.y = cell_y;
            int_map.dx = cell_dx - space_diagonal_x;
            int_map.dy = name_dy;
        }
        cell_y += cell_dy + space_y ;
    }
}

/////////////...so pra entender a lista original abaixo........................

 

/

    /

        / 

             /

                  /

                       /              

////////////////////////////eu quero que ela fique assim

/

  /

     /

        /

          /

        /

      /

    /

  /

/

///////////////me foi dado alguma dicas mas nao consegui aplicar ao codigo

divide o numero de colunas por 2!

quando o "r" estiver na metade, você volta o espaçamento!

igual no cell_y += cell_dy + space_y;

(só q vai ser com o cell_x)

 

(Espaço diagonal cell_y)

(espaço horizontal cell_x)

(cell_x += 1 vai dar um espaço a cada volta)

 

desde ja agradeço que puer me ajudar!!!

 

 

 

 

 

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@JULIOLIMAPILOTO      nesse código que você postou, não é impresso nenhuma linha, apenas pega o valor de algumas variáveis, então se você for imprimir uma dessas variáveis você pode usar um comando que posicione o cursor no local onde você quer imprimir, e na linguagem c esse comando precisa ser criado , pois ele não existe normalmente, e esse comando criado seria uma função assim :

#include <windows.h>
void gotoxy(int x, int y){
    COORD c;
    c.X = x;
    c.Y = y;
    SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),c);
}

então você verifica se chegou na metade e enquanto for menor ou igual vai aumentando a coluna onde imprimir e se for maior que essa metade então vai diminuindo a coluna onde imprimir, só até zero, então seria algo assim :

int coluna=0;
int linha=onde vai começar a imprimir;
metade = rown/2;
if(rown<=metade)
    if(coluna<60)
        coluna++;
else
    if(coluna>-1)
        coluna--;
gotoxy(coluna,linha);
printf("%d",variavel);

 

  • Confuso 1
Link para o comentário
Compartilhar em outros sites

52 minutos atrás, devair1010 disse:

@JULIOLIMAPILOTO      nesse código que você postou, não é impresso nenhuma linha, apenas pega o valor de algumas variáveis, então se você for imprimir uma dessas variáveis você pode usar um comando que posicione o cursor no local onde você quer imprimir, e na linguagem c esse comando precisa ser criado , pois ele não existe normalmente, e esse comando criado seria uma função assim :


#include <windows.h>
void gotoxy(int x, int y){
    COORD c;
    c.X = x;
    c.Y = y;
    SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),c);
}

então você verifica se chegou na metade e enquanto for menor ou igual vai aumentando a coluna onde imprimir e se for maior que essa metade então vai diminuindo a coluna onde imprimir, só até zero, então seria algo assim :


int coluna=0;
int linha=onde vai começar a imprimir;
metade = rown/2;
if(rown<=metade)
    if(coluna<60)
        coluna++;
else
    if(coluna>-1)
        coluna--;
gotoxy(coluna,linha);
printf("%d",variavel);

 

na verdade tem sim eu so nao poste

 

segue

 

 

 

adicionado 1 minuto depois

menu.rar

original.jpg

novo.jpg

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@JULIOLIMAPILOTO    esse código que você enviou não está compilando por que está faltando alguns  códigos referentes a esses includes :

#include "portable.h"

#include "game.h"
#include "text.h"
#include "play.h"
#include "menu.h"

#include "advance.h"

se você tiver esses códigos então poste eles também .

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Em 30/03/2018 às 16:17, devair1010 disse:

@JULIOLIMAPILOTO    esse código que você enviou não está compilando por que está faltando alguns  códigos referentes a esses includes :


#include "portable.h"

#include "game.h"
#include "text.h"
#include "play.h"
#include "menu.h"

#include "advance.h"

se você tiver esses códigos então poste eles também .

 

adicionado 1 minuto depois

http://arcadeforever.forumfree.it/?t=63086097

aqui tem o codigo e as ferramentas!

 

 

a funçao sitada seria em menu.cc

 

 

void calculo_listado_5(struct cell_t* int_map, int coln, int rown, int list_x, int list_y, int list_dx, int list_dy, int name_dy, int space_x, int space_y, int diagonal)
{
    int cell_x = list_x;
    int cell_y = list_y;
    int cell_dx = (list_dx - (coln - 1) * space_x) / coln;
    int cell_dy = name_dy;
    int space_diagonal_x = abs(diagonal * (rown - 1));
    if(diagonal < 0) cell_x = cell_x + space_diagonal_x;
    
    for(int r=0;r<rown;++r) {
        for(int c=0;c<coln;++c) {
            unsigned i = r * coln + c;
            int_map.x = cell_x + diagonal * r + (cell_dx + space_x) * c;
            int_map.y = cell_y;
            int_map.dx = cell_dx - space_diagonal_x;
            int_map.dy = name_dy;
        }
        cell_y += cell_dy + space_y ;
    }
}

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

jaja estou upando pronto p compilar

 

adicionado 17 minutos depois

jaja estou upando pronto p compilar

https://drive.google.com/open?id=1ZnFQvZt0iubKvFqAsw0O2UgAmHm0BztD

 

extraia na partiçao c:

 

vai ate o C:\mingwplus\advmenuplus

compila -win.bat primeiro de um clean.bat

 

 

 

 

aqui o front end ja configurado para c:

 

https://drive.google.com/open?id=1N4R6O5OufICh1hjYTFnqK9sFjTFflFkD

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

Em 31/03/2018 às 16:47, JULIOLIMAPILOTO disse:

de uma olhada p ver se você entende 

 

 

Isso é um loop, cada volta no loop é um item da lista de seleção. Quando a primeira volta termina é dado um espaçamento para que na próxima volta seja criado o segundo item com um espaço, assim até chegar na ultima linha. 

Aqui é adicionado um espaço de cima para baixo

"cell_y += cell_dy + space_y ;"



agora você terá que adicionar um espaço da esquerda para direita com "cell_x"

r = a volta
rown = a quantidade de colunas

Código:

for(int r=0;r<rown;++r) { for(int c=0;c<coln;++c) { unsigned i = r * coln + c; int_map.x = cell_x + diagonal * r + (cell_dx + space_x) * c; int_map.y = cell_y; int_map.dx = cell_dx - space_diagonal_x; int_map.dy = name_dy; } cell_y += cell_dy + space_y ; } }

 

 

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • 1 ano depois...

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...