Forum Index > Coș cu teme șterse > Soft > Jocul Snake in C ,sarpele refuza sa se miste :))

#0 by Vlad_Dohotaru (Power User) (0 mesaje) at 2015-01-07 22:35:20 (552 săptămâni în urmă) - [Link]Top
Am de scris jocul Snake in C,utilizand biblioteca curses.h.Sunt incepator-incepator si va prezint pana unde am ajuns si m-am blocat ca poate cineva ma poate ajuta. Am creat chenarul,insusi sarpele ,dar nu pot sa il fac sa se miste,nu reactioneaza si nu stiu de ce...structura ceea acolo nu am folosit-o,vroiam nu stiu cum altfel cu ea sa fac,dar m-am incurcat in ganduri si in cod si am lasat-o as aca poate imi ajuta pe urma


#include <unistd.h>
#include <ncurses.h>
#include <stdlib.h>
#include<ctype.h>
#include <sys/select.h>




#define FOREVER 1
#define INIT_ROW 23
#define INIT_COL 23

typedef struct{
int x;
int y;
int dir;
}snake;


int draw()
{
char a;
int row = INIT_ROW, col = INIT_COL, new_row, new_col;
int ncols,nrows;
WINDOW *screen = initscr();
noecho();
cbreak();
curs_set(0);
getmaxyx(screen,nrows,ncols);
mvaddstr(12, 16, "Play for pleasure! Play Fair Play! :D");
mvaddstr(13, 17, "(Press any key to continue.)");
refresh();
getch();
clear();
mvaddstr(0, 25, "Puteti sa mutati sarpele folosind tastele:");
mvaddstr(1, 35, "A- stanga");
mvaddstr(2, 35, "D - dreapta");
mvaddstr(3, 35, "W - sus");
mvaddstr(4, 35, "S - jos");
mvaddstr(20,25 , "Pentru a incheia jocul, apasati tasta < Q >.");
refresh();
mvwprintw(screen, 0, 0, "@");
mvwprintw(screen, row - 1, 0, "@");
mvwprintw(screen, 0, col - 1, "@");
mvwprintw(screen, col - 1, row - 1, "@");
refresh();
int i;

for(i = 1; i < (col - 1); i++)
{
mvwprintw(screen, i, 0, "|");
mvwprintw(screen, i, col - 1, "|");
}
for(i = 1; i < (row - 1); i++)
{
mvwprintw(screen, 0, i, "|");
mvwprintw(screen, row-1, i, "|");
}

refresh();
move(2, 2);
for(i=0;i<=3;i++)
addch('o');
move(2, 6);
addch(' ');
refresh();
while (FOREVER) {
a = getchar();

if (tolower(a) == 'q')
break;
}
switch (tolower(a)) {
case 'a':
new_row = row;
if (col > 0)
new_col = col - 1;
break;

case 'd':
new_row = row;
if (col + 1 < ncols)
new_col = col + 1;
break;

case 'w':
if (row > 0)
new_row = row - 1;
new_col = col;
break;

case 's':
if (row + 1 < nrows)
new_row = row + 1;
new_col = col;
break;
}

/* Se șterge 'o' din vechea poziție */
move(row, col);
addch(' ');
/* Se adauga 'o' in noua pozitie */
move(new_row, new_col);
addch('o');
refresh();

row = new_row;
col = new_col;
refresh();
endwin();
return 0;
}



int main()
{

draw();
}


Mesaj util ?   Da   0 puncte

1
<< Precedenta      Următoarea >>

#1 by sasha0 (Power User) (0 mesaje) at 2015-01-07 22:40:26 (552 săptămâni în urmă) - [Link]Top
Ei, ghini ca nu te-o muscat, da ca nu se misca nu-i strasnic.


Mesaj util ?   Da   11 puncte
#2 by RSIProductionMuzician (Uploader) (0 mesaje) at 2015-01-08 01:29:44 (552 săptămâni în urmă) - [Link]Top
#1 sasha0, hai încă o glumă strălucită :derplol: chiar te implor


Mesaj util ?   Da   2 puncte
#3 by DrinsteR (User) (0 mesaje) at 2015-01-08 15:44:33 (552 săptămâni în urmă) - [Link]Top
http://www.codeincodeblock.com/2011/06/mini-projet-snake-game-in-c.html
Uite aici, poate te ajuta


Mesaj util ?   Da   0 puncte
#4 by NeoMD_007 (User) (1 mesaje) at 2015-01-09 15:42:13 (552 săptămâni în urmă) - [Link]Top
#0 Vlad_Dohotaru, pai sh normal ca nu se va misca daca nu ai dat cordonate XY


Mesaj util ?   Da   0 puncte
#5 by ian3d (Power User) (0 mesaje) at 2015-01-09 16:58:34 (552 săptămâni în urmă) - [Link]Top
nu se misca pentru ca nu ai ciclu continuu in care iteratiile se repeta la infinit, si cu atit mai mult a=getchar() din ciclu while opreste acel ciclu blokeaza programul pina cind nu apesi o tasta. Foloseste kbhit.


Mesaj util ?   Da   0 puncte
#6 by System at 2015-01-09 18:48:48 (552 săptămâni în urmă) - [Link]Top
#0 Vlad_Dohotaru, "... sarpele refuza sa se miste ..." - :isee:


Mesaj util ?   Da   8 puncte
#7 by Vlad_Dohotaru (Power User) (0 mesaje) at 2015-01-09 20:17:55 (552 săptămâni în urmă) - [Link]Top
Am rezolvat problema,am acum un joc bunicel...multumesc pentru ajutor :wink: symboss :D de s-ar misca toate programele ca sarpele cela la care te referi tu ...)))


Mesaj util ?   Da   1 puncte

1
<< Precedenta      Următoarea >>

Forum Index > Coș cu teme șterse > Soft > Jocul Snake in C ,sarpele refuza sa se miste :))

Această temă este închisă. Nu puteţi posta mesaje noi.


Navigare rapidă:


Comunitatea digitală din Moldova. Să adunăm și să organizăm conținutul autohton de pe întreg internet pe un singur site web.