Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Prima domanda: eseguitelo e premete w,s,d,a quando cambia direzione fa qualcosa di strano e mi lascia stampato una "O".
Poi come faccio a usare le coordinate xf,yf della funzione FruttoPosz per fare in modo che quando sono uguali alle coordinate della "O" succeda qualcosa vorrei fare tipo: if (xf = x && yf = y){cout<<"Hai mangiato un frutto";} L'idea era di usare la funzione impatto, ma non ci riesco.
Necessito anche di qualche consiglio su come far allungare il "serpente" di "O" dopo che sei passato sul "frutto"
Ultima modifica effettuata da sebas il 25/08/2014 alle 20:00
Per il resto ... troppe domande nello stesso thread ... comincia a focalizzarti su un problema, uno per volta ...
Ricorda che nessuno č obbligato a risponderti e che nessuno č perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilitā) chiamava il gioco del Lotto Tassa sulla stupiditā.
Per le collisioni ti posso consigliare di memorizzare la posizione delle O in un vettore, cosė la funzione collisione cercherā in quel vettore o sulla stessa posizione della testa del serpente: http://www.cplusplus.com/reference/vector/vector/
Esempio
Codice sorgente - presumibilmente C++
struct posizione
{
int X,
int Y
};
bool impatto(int cord1, int cord2, vector<posizione> O){
Il problema della collisione l'ho risolto facendo due funzioni separate, una per la x del frutto e l'altra per la y, assegnandogli come valore di ritorni rispettivamente la x e la y, nella main ho eguagliato ognuna delle due funzioni a una variabile che quindi acquista il valore di ritorno della funzione, poi ho eguagliato i valori di ritorno a quelli delle coordinate della testa del serpente e funziona. Ora resta il problema del cambio di direzione perche quando vado a destra,(e lo fa solo se prima andavo in su o in giu), fa uno scatto verso l'alto e poi comincia a girare, non capisco perche, sapete come risolvere questo problema?
Codice sorgente - presumibilmente C++
#include <iostream>
#include <Windows.h>
#include <conio.h>
#include <cstdlib>
#include <ctime>
#include <vector>
usingnamespace std;
void gotoxy(int x, int y)/*Funzione che mi posiziona il cursore in un punto di coord x,y*/
Il problema della collisione l'ho risolto facendo due funzioni separate, una per la x del frutto e l'altra per la y, assegnandogli come valore di ritorni rispettivamente la x e la y
Ovviamente le struct sono roba sconosciuta e oscura per te al momento, vero?
Separare la parte logica del gioco da quella in cui prendi un comando e stampi a video pensi sia sbagliato?
E poi hai fatto il debug di quel codice?
Si al momento non so che roba siano le struct o come si usino, non so come separare la parte logica, non so fare niente, so come funziona una funzione ma gia per usarla..... comunque il debug l'ho fatto e funziona perfettamente.
il debug serve per trovare gli errori logici. Comunqe separare la parte logica č abbastanza facile: memorizzi la posizione di tutto ciō che ti serve in delle variabili/strutture. Ad ogni pressione di tasti aggiorni tutto e stampi a video, ovvero costruisci quelllo che deve essere stampato a video da quelle variabili.
Posso farti vedere come diventano FruttoPosiz1 FruttoPosiz2 con una struct:
Grazie, mi sono letto come funziona struct, adesso faccio le modifiche!
Per favore pero mi spiegheresti cosč l'asterisco prima di frutto riga 6, il null al posto dello zero riga 8 srand(time(null)) e cosa significa Frutto.X.
Lo so sono un rompipalle, ma ci metto ore a cercare di capire tutto cercando qualche sito che me lo spiega!
grazie ancora
Ultima modifica effettuata da sebas il 27/08/2014 alle 20:34