Poruszający się punkt w tablicy [C]
Ostatnio zmodyfikowano 2015-04-20 13:58
Krzemien Temat założony przez niniejszego użytkownika |
Poruszający się punkt w tablicy [C] » 2015-04-20 10:54:55 Witam! Jestem początkującym "programistą" w C , a dokładniej studentem, który dopiero poznaje podstawy programowania. W celu wyćwiczenia w sobie zdolności programisty chciałem stworzyć "mini gre". Stworzyć pole gry w postaci ramki i w środku wrzucić powiedzmy jakąś cyfre/literke whatever, którą naciskając na klawiaturze numerycznej 4,6,8,2, będę mógł przesuwać ten "obiekt" w lewo, prawo, góra, dół. Zacząłem od zrobienia tablicy. Jeszcze próbuję dojść do tego w jaki sposób usunąć środek tablicy, a zostawić tylko ramkę. Na razie mam coś takiego: 1 1 1 1 1 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 1 1
Ale głównym moim problemem jest znalezienie dodatkowej zmiennej która będzie zwracała położenie mojego "obiektu" do generowanej tablicy. No i też czy da się w jakiś sposób zrobić, żeby przycisk "sterowania" nie musiał być zatwierdzany enterem? Próbowałem scanf i getchar... :/
Być może moje pytanie jest banalne, albo niezrozumiałe, ale chciałbym powiększyć swoją wiedzę na temat programowania i jego schematów. |
|
darko202 |
» 2015-04-20 13:58:47 1. może kbhit() nie wiem czy to C czy C++, 2. kiedyś próbowałem podobny projekt w C++ może jeszcze w czymś ci pomoże -- poniżej początek wyglądał tak #include <stdio.h> #include <iostream>
#include "Gra.h"
using namespace std;
int main() { Gra g; g.Nowa(); while( g.Ruch() ) { } }
#include "Gra.h"
Gra::Gra( void ) { plansza.Zmien( gracz.dane ); }
Gra::~Gra( void ) { }
void Gra::Nowa() { plansza.Rysuj(); }
bool Gra::Ruch() { char c; int liczba; _sleep( 1000 ); while( kbhit() ) { liczba = _getch(); if( liczba == 72 ) c = 'g'; if( liczba == 80 ) c = 'd'; if( liczba == 75 ) c = 'l'; if( liczba == 77 ) c = 'p'; if( liczba == 107 ) return false; } plansza.Rysuj(); return true; }
#include "Plansza.h"
Plansza::Plansza( void ) { for( int i = 0; i < MAX_WIERSZY; i++ ) for( int j = 0; j < MAX_KOLUMN; j++ ) dane[ i ][ j ].znak = '.'; }
Plansza::~Plansza( void ) { }
void Plansza::Rysuj() { for( int i = 0; i < MAX_WIERSZY; i++ ) { cout << " \n"; for( int j = 0; j < MAX_KOLUMN; j++ ) { cout << dane[ i ][ j ].znak; } } ZmienKursor( 0, 0 ); }
void Plansza::Zmien( Dane poz ) { dane[ poz.wiersz ][ poz.kolumna ].znak = poz.znak; }
void Plansza::ZmienKursor( int x, int y ) { COORD p; p.X = x; p.Y = y; SetConsoleCursorPosition( GetStdHandle( STD_OUTPUT_HANDLE ), p ); }
#include "gracz.h"
Gracz::Gracz( void ) { dane.wiersz = MAX_WIERSZY / 2; dane.kolumna = MAX_KOLUMN / 2; dane.znak = 'G'; dane.iBlad = 0; dane.kierunek = ' '; dane.sBlad = ""; }
Gracz::~Gracz( void ) { }
|
|
« 1 » |