convertire simbolo c++ in GML

Hai una curiosità o un problema con Game Maker? Domanda e ti sarà risposto!
Rispondi
Avatar utente
jumoonp
GMI VIP
Messaggi: 3292
Iscritto il: 13/01/2008, 20:59
Contatta:

convertire simbolo c++ in GML

Messaggio da jumoonp »

Salve ragazzi,
devo convertire questa sintassi fatta in c++ in GML

Codice: Seleziona tutto

rem=AA%2;
unexpetted symbol mi da questo errore
Spoiler
Gabriele Dell'Otto e Lee bermejo

Immagine

Avatar utente
jumoonp
GMI VIP
Messaggi: 3292
Iscritto il: 13/01/2008, 20:59
Contatta:

Re: convertire simbolo c++ in GML

Messaggio da jumoonp »

Xeryan ha scritto:Non dovrebbe uscirti nessun errore

testato con:

Codice: Seleziona tutto

AA=5
rem=AA%2;
Ma in pratica cosa significa quella percentuale, posso scriverla in modo diverso?
Spoiler
Gabriele Dell'Otto e Lee bermejo

Immagine

Avatar utente
CaptainOlon
Membro attivo
Messaggi: 441
Iscritto il: 30/07/2011, 14:56
Specialità: Programmazione
Uso: GM:Studio 1.4 Pro
Località: Salerno
Contatta:

Re: convertire simbolo c++ in GML

Messaggio da CaptainOlon »

Il simbolo di percentuale è il modulo, ovvero il resto della divisione tra i due operandi.
Esempio: 5%2 = 1 (2 col resto di 1)

Puoi scrivere anche mod.
Immagine
Immagine

Avatar utente
jumoonp
GMI VIP
Messaggi: 3292
Iscritto il: 13/01/2008, 20:59
Contatta:

Re: convertire simbolo c++ in GML

Messaggio da jumoonp »

CaptainOlon ha scritto:Il simbolo di percentuale è il modulo, ovvero il resto della divisione tra i due operandi.
Esempio: 5%2 = 1 (2 col resto di 1)

Puoi scrivere anche mod.

e come lo scrivo?

rem=aa mod 2== 0

è certamente sbagliato cosi
Spoiler
Gabriele Dell'Otto e Lee bermejo

Immagine

Avatar utente
doom13
Moderatore
Messaggi: 2093
Iscritto il: 31/08/2012, 15:40
Specialità: Programmazione
Uso: GM:Studio 2
Contatta:

Re: convertire simbolo c++ in GML

Messaggio da doom13 »

rem = AA mod 2;
Immagine
Spoiler
Maze [sospeso]
Isom (titolo provvisorio) (Windows & Android) [sospeso]
Keep Calm & Jump (Android) [In corso]
The Graywall (Windows) [Completo]
DTB (Windows & Android) [Completo]
The Last Spell (Windows) [Completo]
Dukenstein: Return to the house (Windows) [Completo]
DMSystem (Windows) [Completo]
"Things get hard sometimes guys... But remember, dicks get hard too, but they don't stay hard forever. Don't give up!"

Avatar utente
jumoonp
GMI VIP
Messaggi: 3292
Iscritto il: 13/01/2008, 20:59
Contatta:

Re: convertire simbolo c++ in GML

Messaggio da jumoonp »

doom13 ha scritto:rem = AA mod 2;

si ma poi mi da errore da un'altra parte.....uff


non è che potreste convertirmi tutto il code da c++ in GML e testarlo se funziona?

è un convertitore da decimale a binario

Codice: Seleziona tutto

#include <iostream>
using namespace std;
int main()
{
    signed long long dec,rem,i=1,sum=0;
    cout<<"Enter the decimal to be converted:";
    cin>>dec;
    do
    {
        rem=dec%2;
        sum=sum + (i*rem);
        dec=dec/2;
        i=i*10;
    }while(dec>0);
    cout<<"The binary of the given number is:"<<sum<<endl;
    cin.get();
    cin.get();
 
    return 0;
}
Spoiler
Gabriele Dell'Otto e Lee bermejo

Immagine

Avatar utente
doom13
Moderatore
Messaggi: 2093
Iscritto il: 31/08/2012, 15:40
Specialità: Programmazione
Uso: GM:Studio 2
Contatta:

Re: convertire simbolo c++ in GML

Messaggio da doom13 »

Codice: Seleziona tutto

var dec;
var rem;
var i = 1;
var sum = 0;

dec = get_integer("Enter the decimal to be converted:", 0);
do
{
   rem = dec mod 2;
   sum = sum + (i * rem);
   dec = dec / 2;
   i = i * 10;
} until (dec <= 0);

show_message("The binary of the given number is: " +string(sum));
Non l'ho testato, se non hai capito qualcosa chiedi.
Immagine
Spoiler
Maze [sospeso]
Isom (titolo provvisorio) (Windows & Android) [sospeso]
Keep Calm & Jump (Android) [In corso]
The Graywall (Windows) [Completo]
DTB (Windows & Android) [Completo]
The Last Spell (Windows) [Completo]
Dukenstein: Return to the house (Windows) [Completo]
DMSystem (Windows) [Completo]
"Things get hard sometimes guys... But remember, dicks get hard too, but they don't stay hard forever. Don't give up!"

Avatar utente
Breston
Membro
Messaggi: 84
Iscritto il: 21/08/2014, 15:51
Specialità: Nothing
Uso: GM:Studio 2
Contatta:

Re: convertire simbolo c++ in GML

Messaggio da Breston »

Un minimo di spiegazione non guasterebbe..
Queste sono le basi per capire quel codice:
  • Un numero in formato digitale binario è rappresentato da bit (1 o 0), nello specifico il formato intero a 32 bit contiene.. 32 bit in questo modo: [latex]n = \sum_{i = 0}^{31}b_i \cdot 2^i[/latex] dove [latex]b_i[/latex] è il bit in posizione i-esima (il primo 0, l'ultimo 31). Se si immagina che il bit in posizione 0 sia quello più a destra, il numero 1001 (omettendo i primi 28 zeri, allo stesso modo in cui si omettono gli zeri prima di un numero decimale) è 1*2^0 + 1*2^3 = 1 + 8 = 9. Giusto per far discussione, se la formula ti sembra estranea sappi che la stai già usando inconsapevolmente. Il peso di ogni cifra binaria è [latex]2^p[/latex], dove p è la posizione e 2 la base, cioè il numero di simboli utilizzabili (1 o 0 è 2). Il sistema decimale è uguale. Un numero con m cifre si calcola come [latex]n = \sum_{i=0}^{m}c_i \cdot 10^i[/latex], 193 = 3 * 1 + 9 * 10 + 1 * 100.
  • L'operatore modulo a mod b oppure, in C++, a % b, restituisce il resto della divisione intera di a per b. Detto terra terra: 2 sta 5 volte in 11 con resto di 1, allora 11 % 2 = 1.
    a % 2 è un indice di parità di a, se il risultato è 0 a è pari, se il risultato è 1 a è dispari. In questo caso l'interesse nella parità di a risiede nel fatto che, se a è dispari, allora il primo bit (quello meno significativo, anche chiamato least significant bit LSB) è 1, altrimenti 0. Questo si può dimostrare facilmente: se si esclude il primo bit, il numero binario è composto da una somma di quantità che sono tutte pari, in quanto nella forma di 2^n con n > 0. L'unico bit che discrimina sulla disparità del numero è quindi il primo, che rappresenta la presenza o meno di un 1 nella somma.
    a % 2 restituisce quindi il LSB di a. Sarebbe meglio fare a & 1 per ottenere il primo bit..
  • Sempre immaginando che il LSB sia quello più a destra, la divisione per 2 ha l'effetto di traslare tutti i bit a destra di 1, perdendo il LSB (il nuovo LSB è quello che prima della traslazione stava in posizione 1). All'estrema sinistra ovviamente entra uno 0. Anche qui, la dimostrazione è semplice: [latex]\frac{\sum_{i=0}^{m}b_i\cdot 2^i}{2} = \sum_{i=0}^{m}b_i \cdot 2^{i-1}[/latex], cioè il bit i-esimo ha il peso di quello a destra. Per capirci, se si divide un numero decimale per 10 si ha lo stesso effetto, traslando a destra le cifre. Anche in questo caso sarebbe da preferire un'istruzione diversa: a >> 1 invece di a /= 2, in quanto più esplicita.
Lo script ripete queste due istruzioni per ogni bit.
Ottieni il bit LSB
Trasla a destra di 1

Avatar utente
CaptainOlon
Membro attivo
Messaggi: 441
Iscritto il: 30/07/2011, 14:56
Specialità: Programmazione
Uso: GM:Studio 1.4 Pro
Località: Salerno
Contatta:

Re: convertire simbolo c++ in GML

Messaggio da CaptainOlon »

Spoiler
Come mi mancavano le spiegazioni di Breston :asd:
Immagine
Immagine

Avatar utente
Wolfrost
Membro super
Messaggi: 692
Iscritto il: 03/08/2014, 13:08
Specialità: Programmazione
Uso: GM:Studio 1.4 Pro
Località: Una galassia lontana lontana...
Contatta:

Re: convertire simbolo c++ in GML

Messaggio da Wolfrost »

Breston ha scritto:Un minimo di spiegazione non guasterebbe..
Queste sono le basi per capire quel codice:
  • Un numero in formato digitale binario è rappresentato da bit (1 o 0), nello specifico il formato intero a 32 bit contiene.. 32 bit in questo modo: [latex]n = \sum_{i = 0}^{31}b_i \cdot 2^i[/latex] dove [latex]b_i[/latex] è il bit in posizione i-esima (il primo 0, l'ultimo 31). Se si immagina che il bit in posizione 0 sia quello più a destra, il numero 1001 (omettendo i primi 28 zeri, allo stesso modo in cui si omettono gli zeri prima di un numero decimale) è 1*2^0 + 1*2^3 = 1 + 8 = 9. Giusto per far discussione, se la formula ti sembra estranea sappi che la stai già usando inconsapevolmente. Il peso di ogni cifra binaria è [latex]2^p[/latex], dove p è la posizione e 2 la base, cioè il numero di simboli utilizzabili (1 o 0 è 2). Il sistema decimale è uguale. Un numero con m cifre si calcola come [latex]n = \sum_{i=0}^{m}c_i \cdot 10^i[/latex], 193 = 3 * 1 + 9 * 10 + 1 * 100.
  • L'operatore modulo a mod b oppure, in C++, a % b, restituisce il resto della divisione intera di a per b. Detto terra terra: 2 sta 5 volte in 11 con resto di 1, allora 11 % 2 = 1.
    a % 2 è un indice di parità di a, se il risultato è 0 a è pari, se il risultato è 1 a è dispari. In questo caso l'interesse nella parità di a risiede nel fatto che, se a è dispari, allora il primo bit (quello meno significativo, anche chiamato least significant bit LSB) è 1, altrimenti 0. Questo si può dimostrare facilmente: se si esclude il primo bit, il numero binario è composto da una somma di quantità che sono tutte pari, in quanto nella forma di 2^n con n > 0. L'unico bit che discrimina sulla disparità del numero è quindi il primo, che rappresenta la presenza o meno di un 1 nella somma.
    a % 2 restituisce quindi il LSB di a. Sarebbe meglio fare a & 1 per ottenere il primo bit..
  • Sempre immaginando che il LSB sia quello più a destra, la divisione per 2 ha l'effetto di traslare tutti i bit a destra di 1, perdendo il LSB (il nuovo LSB è quello che prima della traslazione stava in posizione 1). All'estrema sinistra ovviamente entra uno 0. Anche qui, la dimostrazione è semplice: [latex]\frac{\sum_{i=0}^{m}b_i\cdot 2^i}{2} = \sum_{i=0}^{m}b_i \cdot 2^{i-1}[/latex], cioè il bit i-esimo ha il peso di quello a destra. Per capirci, se si divide un numero decimale per 10 si ha lo stesso effetto, traslando a destra le cifre. Anche in questo caso sarebbe da preferire un'istruzione diversa: a >> 1 invece di a /= 2, in quanto più esplicita.
Lo script ripete queste due istruzioni per ogni bit.
Ottieni il bit LSB
Trasla a destra di 1
Ecco queste sono le classiche spiegazioni "alla Breston" :asd: :asd: :asd:
Immagine

Immagine

Avatar utente
Breston
Membro
Messaggi: 84
Iscritto il: 21/08/2014, 15:51
Specialità: Nothing
Uso: GM:Studio 2
Contatta:

Re: convertire simbolo c++ in GML

Messaggio da Breston »

CaptainOlon ha scritto:Come mi mancavano le spiegazioni di Breston :asd:
Mi sono allontanato involontariamente perché ho passato un brutto periodo (mi sono laureato)..
Continuerò a leggervi come un fantasma cherrypickando occasionalmente topic cui rispondere

Avatar utente
doom13
Moderatore
Messaggi: 2093
Iscritto il: 31/08/2012, 15:40
Specialità: Programmazione
Uso: GM:Studio 2
Contatta:

Re: convertire simbolo c++ in GML

Messaggio da doom13 »

Ormai ti perseguitano.
Vabbé ora che sei libero ( :asd: ) puoi dedicare un po' di tempo qui:
http://gmitalia.altervista.org/gmi_foru ... ni#p193610

Non sono soddisfatto di quella pseudosoluzione. Inoltre implementare un AI in quel modo è devastante.
Immagine
Spoiler
Maze [sospeso]
Isom (titolo provvisorio) (Windows & Android) [sospeso]
Keep Calm & Jump (Android) [In corso]
The Graywall (Windows) [Completo]
DTB (Windows & Android) [Completo]
The Last Spell (Windows) [Completo]
Dukenstein: Return to the house (Windows) [Completo]
DMSystem (Windows) [Completo]
"Things get hard sometimes guys... But remember, dicks get hard too, but they don't stay hard forever. Don't give up!"

Avatar utente
Breston
Membro
Messaggi: 84
Iscritto il: 21/08/2014, 15:51
Specialità: Nothing
Uso: GM:Studio 2
Contatta:

Re: convertire simbolo c++ in GML

Messaggio da Breston »

Insomma.. Ora che ho finito il trasloco forse sì, ma neanche tanto coi miei nuovo ritmi

Avatar utente
doom13
Moderatore
Messaggi: 2093
Iscritto il: 31/08/2012, 15:40
Specialità: Programmazione
Uso: GM:Studio 2
Contatta:

Re: convertire simbolo c++ in GML

Messaggio da doom13 »

Breston ha scritto:Insomma.. Ora che ho finito il trasloco forse sì, ma neanche tanto coi miei nuovo ritmi
No vabbé dicevo così, se avrai del tempo da perdere sennò fa niente.
Immagine
Spoiler
Maze [sospeso]
Isom (titolo provvisorio) (Windows & Android) [sospeso]
Keep Calm & Jump (Android) [In corso]
The Graywall (Windows) [Completo]
DTB (Windows & Android) [Completo]
The Last Spell (Windows) [Completo]
Dukenstein: Return to the house (Windows) [Completo]
DMSystem (Windows) [Completo]
"Things get hard sometimes guys... But remember, dicks get hard too, but they don't stay hard forever. Don't give up!"

Rispondi

Chi c’è in linea

Visitano il forum: Nessuno e 42 ospiti