Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: kaltorak en 18 Junio 2013, 14:53 pm



Título: 1º Reto de Retrodev
Publicado por: kaltorak en 18 Junio 2013, 14:53 pm
Hola a todos.

Aquí tenemos el Primer reto del Grupo de programación retrodev.

Mientras decidimos que juego va a ser el siguiente que realicemos, os propongo este reto el cual nos servirá para no perder el interés en el proyecto, también nos servirá para pulir un poco más nuestras actitudes y que los programadores noveles practiquen con la librería SDL.

Reto:

Juego de la Serpiente.

(http://imageshack.us/a/img15/8479/l7p7.gif)

Participantes:

Apolo.
Dato000.
Ferreter17.
SrCooper.
BlackMaster.
Puntoinfinito.
Kaltorak.

 
 Normas del Reto:

1-Todo el que quiera participar en el reto tiene que enviar un privado apuntándose o postear su inscripción en este post.
 
 2-Una vez finalizado el tiempo de inscripción se dispondrá de 15 días para subir una versión Alpha del juego y luego 15 días más para subir la versión definitiva de dicho juego.

3-se puede usar cualquier lenguaje de programación (Pero primara el uso de C/C++ y la librería SDL, pues son los que usaremos en los sucesivos proyectos).

4-Se podrán usar cualquier tipo de gráficos y sonidos, no hay por qué ceñirse a los originales del juego.

5-Se puede incluir cualquier mejora en la mecánica del juego que consideremos oportuna.

6-Se debe compilar tanto para Windows como para Linux.

7-Deben subirse el código fuente y el binario para Windows y Linux, así como todos los archivos que sean necesarios para su compilación y ejecución.

8-Los Binarios y el código fuente deben tener un Link Activo, que deberemos mantener durante mínimo una semana después de finalizado el concurso.

9-Tras la finalización del reto se posteara una encuesta para ver quien a resuelto mejor el reto.
 

BlackMaster

(http://img801.imageshack.us/img801/460/jqyl.png)

-----------------------------------------------------------
Binario Windows: https://www.dropbox.com/s/uxjoyc872t4yudg/Juego%20Isc%20Snake.zip  
Binario Linux: ??
Codigo: http://ultrashare.net/hosting/fl/9aa5f7a47b
-----------------------------------------------------------

Ferreter

(http://img713.imageshack.us/img713/2295/58v.png)

-----------------------------------------------------------
Binario Windows: http://www.mediafire.com/?k56fd69g82paglj
Binario Linux: ??
Codigo: ??
-----------------------------------------------------------

SrCooper

(http://imageshack.us/a/img856/7245/pps3.png)(http://imageshack.us/a/img543/9914/uymp.png)

-----------------------------------------------------------
Codigo y Binario Windows: http://www.mediafire.com/?2bktsm8qoi087z8 (http://www.mediafire.com/?2bktsm8qoi087z8)
Binario Linux: ??
-----------------------------------------------------------


Puntoinfinito

(http://s23.postimg.org/i1ukqtr8b/Screenshot_07162013_01_25_59_AM.png) (http://s14.postimg.org/66yfyuosx/Screenshot_07162013_01_28_31_AM.png)

-----------------------------------------------------------
Binario Windows: ??
Binario Linux: https://docs.google.com/file/d/0B_bICudPUUcpcmh5UmtveHM5TTg/edit?usp=sharing
Codigo: https://docs.google.com/file/d/0B_bICudPUUcpdElUUDFuVXc2Szg/edit?usp=sharing
-----------------------------------------------------------


Kaltorak

(http://img542.imageshack.us/img542/7388/w0y.png)

-----------------------------------------------------------
Binario Windows: http://ultrashare.net/hosting/fl/62ce21b834
Binario Linux: http://ultrashare.net/hosting/fl/28a0c065f5
Codigo: http://ultrashare.net/hosting/fl/df1913ec96
-----------------------------------------------------------




 Un saludo
 Kaltorak.


Título: Re: 1º Reto de Retrodev
Publicado por: el-brujo en 19 Junio 2013, 19:39 pm
(http://imageshack.us/a/img15/8479/l7p7.gif)

Reto superado xD (es broma)



Título: Re: 1º Reto de Retrodev
Publicado por: OmarHack en 19 Junio 2013, 20:54 pm
Qué bueno!


Título: Re: 1º Reto de Retrodev
Publicado por: kaltorak en 20 Junio 2013, 18:05 pm
;-) ;-) Genial el-brujo  ;-) ;-)

Te robo el gif para ponerlo en el post original sobre el reto, me ha encantado.

Un saludo
Kaltorak.


EI: juntando mensajes.


Gracias por participar la inscripción finaliza el lunes 24/06/2013 así que los que queráis participar en el reto no tardéis en apuntaros.
A partir del día 24/06/2013 tendréis que subir una primera versión del videojuego escogido para el reto antes de 15 días o lo que es lo mismo antes del día 09/07/2013
Después tendréis otros 15 días para subir la versión final de dicho videojuego hasta el día 24/07/2013.

Un saludo
Kaltorak.


Título: Re: 1º Reto de Retrodev
Publicado por: 0xFer en 25 Junio 2013, 19:21 pm
cuantos mas participaran en este reto?
ya tengo medio terminado el mio  :-*


Título: Re: 1º Reto de Retrodev
Publicado por: BlackM4ster en 26 Junio 2013, 08:29 am
Yo ya hice el mio
https://www.dropbox.com/s/uxjoyc872t4yudg/Juego%20Isc%20Snake.zip  :silbar:

Pensé que al ser el snake, necesitaba que fuese en consola, para respetar los primeros juegos

Main.cpp
Código
  1. #pragma region Includes
  2.  
  3. #include <windows.h>
  4. #include <string>
  5. #include <conio.h>
  6. #include <iostream>
  7. #include <time.h>
  8. #include <cstdlib>
  9. #include <dos.h>
  10. using namespace std;
  11. #define Izquierda 97
  12. #define Derecha 100
  13. #define Arriba 119
  14. #define Abajo 115
  15.  
  16. void Color(int foreground, int background);
  17. void gotoxy( short x, short y );
  18. void cls();
  19. void Lineas(int Estilo,int xA,int yA,int hA,int wA);
  20. void DibujarPuntos (int p);
  21. void MoverSerpiente(); void PintarSerpiente();
  22. void DibujarMapa();
  23. void BorrarZona(); void BorrarCola();
  24. void PintarZona();
  25. void GameOver(); void AlargarSerpiente();
  26. void MoverComida(); void Comer(int n); void DibujarComida();
  27.  
  28. #pragma endregion
  29. #pragma region Variables
  30.  
  31. int Tecla;
  32. int Puntos = 0;
  33. char* IconoFondo = " ";
  34. int IconoSerpiente = 184; //184, 219
  35. int IconoComida = 15; //3, 15
  36. int SerpienteX = 30; int SerpienteY = 10;
  37. int FinalSerpienteX = 28; int FinalSerpienteY = 10;
  38. int sFinalSerpienteX; int sFinalSerpienteY;
  39. int Largura=2; string DireccionSerpiente = "De"; string DireccionFinalSerpiente = "De"; string DireccionsFinalSerpiente;
  40. int Zona [76][18];
  41. int MaxX = 77; int MinX = 2;
  42. int MaxY = 22; int MinY = 5;
  43. int Velocidad = 100;
  44.  
  45. int c1x; int c1y; bool c1v = true;
  46. int c2x; int c2y; bool c2v = true; bool DibujarC = true;
  47. int c3x; int c3y; bool c3v = true;
  48.  
  49. #pragma endregion
  50.  
  51. int main(){
  52.  
  53. system("title Snake - Blackm4ster 2012");
  54. BorrarZona();
  55. cout << "Pulsa una tecla para Jugar" << endl;
  56. getch();
  57. cls();
  58. DibujarMapa();
  59.  
  60. Color(10,0);
  61. gotoxy (SerpienteX, SerpienteY);
  62. printf("%c", IconoSerpiente); //Dibuja la Serpiente por 1º vez
  63. MoverComida();
  64. Color(15,0);
  65. do{
  66. if (DibujarC == true){
  67. DibujarComida();
  68. DibujarC = false;
  69. }
  70. BorrarCola();
  71. MoverSerpiente();
  72. PintarSerpiente(); //PintarZona();
  73. DibujarPuntos(Puntos);
  74. Sleep(Velocidad);
  75.  
  76. /*
  77. gotoxy (2, 22); cout << SerpienteY;
  78. gotoxy (2, 21); cout << SerpienteX;
  79.  
  80. gotoxy (7, 21); cout << FinalSerpienteX;
  81. gotoxy (7, 22); cout << FinalSerpienteY;
  82.  
  83. gotoxy (13, 21); cout << DireccionSerpiente;
  84. gotoxy (13, 22); cout << DireccionFinalSerpiente;
  85.  
  86. gotoxy (18, 20); cout << c1x << " - " << c1y;
  87. gotoxy (18, 21); cout << c2x << " - " << c2y;
  88. gotoxy (18, 22); cout << c3x << " - " << c3y;
  89. */
  90. }while(1);
  91. return 0;
  92. }
  93.  
  94. void MoverSerpiente(){
  95.  
  96. // CABEZA ----------------------------------------------
  97.  
  98. if(kbhit()){
  99. Tecla = getch();
  100.  
  101. switch(Tecla){
  102. case Izquierda:
  103. //Movimiento
  104. if(DireccionSerpiente == "De"){
  105. GameOver();
  106. return;
  107. }
  108. Zona[SerpienteX - MinX +1][SerpienteY - MinY +1] = 4;
  109. DireccionSerpiente = "Iz";
  110. break;
  111.  
  112. case Derecha:
  113. //Movimiento
  114. if(DireccionSerpiente == "Iz"){
  115. GameOver();
  116. return;
  117. }
  118. Zona[SerpienteX - MinX +1][SerpienteY - MinY +1] = 2;
  119. DireccionSerpiente = "De";
  120. break;
  121.  
  122. case Arriba:
  123. //Movimiento
  124. if(DireccionSerpiente == "Ab"){
  125. GameOver();
  126. return;
  127. }
  128. Zona[SerpienteX - MinX +1][SerpienteY - MinY +1] = 1;
  129. DireccionSerpiente = "Ar";
  130. break;
  131.  
  132. case Abajo:
  133. //Movimiento
  134. if(DireccionSerpiente == "Ar"){
  135. GameOver();
  136. return;
  137. }
  138. Zona[SerpienteX - MinX +1][SerpienteY - MinY +1] = 3;
  139. DireccionSerpiente = "Ab";
  140. break;
  141.  
  142. } //End Case
  143. Beep(900,5);
  144. } //End If Tecla
  145.  
  146. // ------------------ MOVIMIENTO ----------------------
  147.  
  148. if (DireccionSerpiente == "Ar"){
  149. SerpienteY = SerpienteY - 1;
  150. }
  151. if (DireccionSerpiente == "Iz"){
  152. SerpienteX = SerpienteX - 1;
  153. }
  154. if (DireccionSerpiente == "Ab"){
  155. SerpienteY = SerpienteY + 1;
  156. }
  157. if (DireccionSerpiente == "De"){
  158. SerpienteX = SerpienteX + 1;
  159. }
  160.  
  161. // -------------------- COMIDA ------------------------
  162.  
  163. if(SerpienteX == c1x + MinX && SerpienteY == c1y + MinY && c1v == true){
  164. Comer(1);
  165. }
  166. if(SerpienteX == c2x + MinX && SerpienteY == c2y + MinY && c2v == true){
  167. Comer(2);
  168. }
  169. if(SerpienteX == c3x + MinX && SerpienteY == c3y + MinY && c3v == true){
  170. Comer(3);
  171. }
  172.  
  173. // -------------------- CHOQUES -----------------------
  174.  
  175. //Paredes
  176.  
  177. if (SerpienteX < MinX || SerpienteY < MinY || SerpienteX > MaxX || SerpienteY > MaxY){
  178. GameOver();
  179. return;
  180. }
  181.  
  182. //Simulación Cabeza vs Cuerpo.
  183.  
  184. sFinalSerpienteX = FinalSerpienteX; sFinalSerpienteY = FinalSerpienteY; DireccionsFinalSerpiente = DireccionFinalSerpiente;
  185.  
  186. for (int i=1; i!=Largura; i++){
  187.  
  188. //Comparación si coinciden
  189. if (SerpienteX == sFinalSerpienteX && SerpienteY == sFinalSerpienteY){
  190. GameOver();
  191. return;
  192. }
  193.  
  194. switch(Zona[sFinalSerpienteX - MinX +1][sFinalSerpienteY - MinY +1]){
  195. case 1:
  196. DireccionsFinalSerpiente = "Ar";
  197. break;
  198. case 2:
  199. DireccionsFinalSerpiente = "De";
  200. break;
  201. case 3:
  202. DireccionsFinalSerpiente = "Ab";
  203. break;
  204. case 4:
  205. DireccionsFinalSerpiente = "Iz";
  206. break;
  207. default:
  208. DireccionsFinalSerpiente = DireccionsFinalSerpiente;
  209. break;
  210. }
  211.  
  212. if (DireccionsFinalSerpiente == "Ar"){
  213. sFinalSerpienteY = sFinalSerpienteY - 1;
  214. }
  215. if (DireccionsFinalSerpiente == "Iz"){
  216. sFinalSerpienteX = sFinalSerpienteX - 1;
  217. }
  218. if (DireccionsFinalSerpiente == "Ab"){
  219. sFinalSerpienteY = sFinalSerpienteY + 1;
  220. }
  221. if (DireccionsFinalSerpiente == "De"){
  222. sFinalSerpienteX = sFinalSerpienteX + 1;
  223. }
  224.  
  225. }
  226.  
  227. // COLA ----------------------------------------------
  228.  
  229. //Leer giros en la Matriz
  230. switch(Zona[FinalSerpienteX - MinX +1][FinalSerpienteY - MinY +1]){
  231. case 1:
  232. DireccionFinalSerpiente = "Ar";
  233. Zona[FinalSerpienteX - MinX +1][FinalSerpienteY - MinY +1] = 0;
  234. break;
  235. case 2:
  236. DireccionFinalSerpiente = "De";
  237. Zona[FinalSerpienteX - MinX +1][FinalSerpienteY - MinY +1] = 0;
  238. break;
  239. case 3:
  240. DireccionFinalSerpiente = "Ab";
  241. Zona[FinalSerpienteX - MinX +1][FinalSerpienteY - MinY +1] = 0;
  242. break;
  243. case 4:
  244. DireccionFinalSerpiente = "Iz";
  245. Zona[FinalSerpienteX - MinX +1][FinalSerpienteY - MinY +1] = 0;
  246. break;
  247. default:
  248. DireccionFinalSerpiente = DireccionFinalSerpiente;
  249. Zona[FinalSerpienteX - MinX +1][FinalSerpienteY - MinY +1] = 0;
  250. break;
  251. }
  252.  
  253. if (DireccionFinalSerpiente == "Ar"){
  254. FinalSerpienteY = FinalSerpienteY - 1;
  255. }
  256. if (DireccionFinalSerpiente == "Iz"){
  257. FinalSerpienteX = FinalSerpienteX - 1;
  258. }
  259. if (DireccionFinalSerpiente == "Ab"){
  260. FinalSerpienteY = FinalSerpienteY + 1;
  261. }
  262. if (DireccionFinalSerpiente == "De"){
  263. FinalSerpienteX = FinalSerpienteX + 1;
  264. }
  265. }
  266. void PintarSerpiente(){
  267.  
  268. Color(10,0);
  269. gotoxy(SerpienteX, SerpienteY); printf("%c", IconoSerpiente);
  270. Color(15,0);
  271. }
  272. void Comer(int n){
  273. switch (n){
  274. case 1:
  275. Puntos = Puntos + 10;
  276. c1v = false;
  277. break;
  278. case 2:
  279. Puntos = Puntos + 10;
  280. c2v = false;
  281. break;
  282. case 3:
  283. Puntos = Puntos + 10;
  284. c3v = false;
  285. break;
  286. }
  287. Beep(800,5);
  288. AlargarSerpiente();
  289. if (c1v == false && c2v == false && c3v == false){
  290. MoverComida();
  291. DibujarC = true;
  292. }
  293. }
  294. void DibujarComida(){
  295. Color(13,0);
  296. gotoxy(c1x + MinX, c1y + MinY); printf("%c", IconoComida);
  297. gotoxy(c2x + MinX, c2y + MinY); printf("%c", IconoComida);
  298. gotoxy(c3x + MinX, c3y + MinY); printf("%c", IconoComida);
  299. Color(15,0);
  300. }
  301. void MoverComida(){
  302. c1x = (rand() % 76); c1y = (rand() % 18);
  303. c2x = (rand() % 76); c2y = (rand() % 18);
  304. c3x = (rand() % 76); c3y = (rand() % 18);
  305. c1v = true; c2v = true; c3v = true;
  306. }
  307. void AlargarSerpiente(){
  308. Largura = Largura + 1;
  309. Velocidad = Velocidad - 2;
  310. if (DireccionFinalSerpiente == "Ar"){
  311. FinalSerpienteY = FinalSerpienteY + 1;
  312. }
  313. if (DireccionFinalSerpiente == "Iz"){
  314. FinalSerpienteX = FinalSerpienteX + 1;
  315. }
  316. if (DireccionFinalSerpiente == "Ab"){
  317. FinalSerpienteY = FinalSerpienteY - 1;
  318. }
  319. if (DireccionFinalSerpiente == "De"){
  320. FinalSerpienteX = FinalSerpienteX - 1;
  321. }
  322. }
  323. void GameOver(){
  324. cls();
  325. cout << "- Game Ov3r -" << endl;
  326. cout << "Puntos: " << Puntos << endl;
  327. cout << "> Pulsa Enter para Salir <" << endl;
  328. do{Tecla = getch();}while(Tecla != 13);
  329. exit(1);
  330. }
  331. void BorrarCola() {
  332.  
  333. //Borrar Cola Vieja
  334. if (FinalSerpienteX == c1x && FinalSerpienteY == c1y && c1v == true){}else{
  335. gotoxy(FinalSerpienteX,FinalSerpienteY); puts(IconoFondo);}
  336.  
  337. if (FinalSerpienteX == c2x && FinalSerpienteY == c2y && c2v == true){}else{
  338. gotoxy(FinalSerpienteX,FinalSerpienteY); puts(IconoFondo);}
  339.  
  340. if (FinalSerpienteX == c3x && FinalSerpienteY == c3y && c3v == true){}else{
  341. gotoxy(FinalSerpienteX,FinalSerpienteY); puts(IconoFondo);}
  342.  
  343. /*
  344. gotoxy(SerpienteX,SerpienteY);
  345. puts(IconoFondo);
  346. */
  347. }
  348. void PintarZona(){
  349. for (int x=1; x<77;x++){
  350. for (int y=1; y<19; y++){
  351. gotoxy(1+x,4+y);
  352. switch(Zona[x][y]){
  353. case 0:
  354. cout << " ";
  355. break;
  356. case 1:
  357. cout << "1";
  358. break;
  359. case 2:
  360. cout << "2";
  361. break;
  362. case 3:
  363. cout << "3";
  364. break;
  365. case 4:
  366. cout << "4";
  367. break;
  368. default:
  369. cout << "?";
  370. break;
  371. }
  372. }
  373. }
  374.  
  375. }
  376. void DibujarPuntos(int p){
  377.  
  378. gotoxy(54,2); cout << "PUNTOS: ";
  379. Color(12,0); printf("%d", p);
  380. Color(15,0);
  381. }
  382. void BorrarZona(){
  383.  
  384. for (int x=1; x<77;x++){
  385. for (int y=1; y<19; y++){
  386. Zona[x][y] = 0;
  387. }}
  388. }
  389. void DibujarMapa(){
  390.  
  391. Color(15, 0);
  392. Lineas(1,2,2,1,48);
  393. Color(7, 0);
  394. Lineas(2,53,2,1,25);
  395. Color(15, 0);
  396. Lineas(1,2,5,18,76);
  397.  
  398. //Mensaje Isc
  399. Color(14, 0);
  400. gotoxy(16,2); cout << "Snake - Black M4ster";
  401. Color(15, 0);
  402. }
  403.  

Isc.cpp
Código
  1. #include <windows.h>
  2. #include <conio.h>
  3. #include <iostream>
  4. using namespace std;
  5.  
  6. void gotoxy( short x, short y ) {
  7. HANDLE hStdout = GetStdHandle(STD_OUTPUT_HANDLE);
  8. COORD position = { x, y };
  9. SetConsoleCursorPosition( hStdout, position );
  10. }
  11.  
  12. void cls() {
  13.  DWORD n;
  14.  DWORD size;
  15.  COORD coord = {0};
  16.  CONSOLE_SCREEN_BUFFER_INFO csbi;
  17.  HANDLE h = GetStdHandle ( STD_OUTPUT_HANDLE );
  18.  GetConsoleScreenBufferInfo ( h, &csbi );
  19.  size = csbi.dwSize.X * csbi.dwSize.Y;
  20.  FillConsoleOutputCharacter ( h, TEXT ( ' ' ), size, coord, &n );
  21.  GetConsoleScreenBufferInfo ( h, &csbi );
  22.  FillConsoleOutputAttribute ( h, csbi.wAttributes, size, coord, &n );
  23.  SetConsoleCursorPosition ( h, coord );
  24. }
  25.  
  26. void Lineas(int Estilo,int xA,int yA,int hA,int wA){
  27. int ch,cv,eari,eard,eai,ead;
  28.  
  29. switch (Estilo){
  30. case 1:
  31. ch = 196; cv = 179;
  32. eari = 218; eard = 191;
  33. eai = 192; ead = 217;
  34. break;
  35. case 2:
  36. ch = 205; cv = 186;
  37. eari = 201; eard = 187;
  38. eai = 200; ead = 188;
  39. break;
  40. default:
  41. ch = 196; cv = 179;
  42. eari = 218; eard = 191;
  43. eai = 192; ead = 217;
  44. break;
  45. }
  46. //Horizontal
  47. for (int i=xA;i<wA+xA;i++){
  48. gotoxy(i,yA-1); printf("%c",ch);
  49. }
  50. for (int i=xA;i<wA+xA;i++){
  51. gotoxy(i,yA+hA); printf("%c",ch);
  52. }
  53.  
  54. //Vertical
  55. for (int i=yA;i<hA+yA;i++){
  56. gotoxy(xA-1,i); printf("%c",cv);
  57. }
  58. for (int i=yA;i<hA+yA;i++){
  59. gotoxy(xA+wA,i); printf("%c",cv);
  60. }
  61.  
  62. //Esquinas
  63. gotoxy(xA-1,yA-1); printf("%c",eari);
  64. gotoxy(xA+wA,yA-1); printf("%c",eard);
  65.  
  66. gotoxy(xA-1,yA+hA); printf("%c",eai);
  67. gotoxy(xA+wA,yA+hA); printf("%c",ead);
  68. }
  69.  
  70. void Color(int foreground, int background) {
  71. int Colorfinal = (background * 16) + foreground;
  72. SetConsoleTextAttribute(GetStdHandle (STD_OUTPUT_HANDLE),Colorfinal);
  73. }
  74.  


Título: Re: 1º Reto de Retrodev
Publicado por: amchacon en 26 Junio 2013, 11:00 am
Yo ya hice el mio
https://www.dropbox.com/s/uxjoyc872t4yudg/Juego%20Isc%20Snake.zip  :silbar:
Lol que cachondo  ;-)


Título: Re: 1º Reto de Retrodev
Publicado por: MeCraniDOS en 26 Junio 2013, 11:12 am
Yo ya hice el mio

Podrías subir el código para ver como lo hiciste??  :silbar: :silbar:


Título: Re: 1º Reto de Retrodev
Publicado por: OmarHack en 26 Junio 2013, 14:18 pm
Yo ya hice el mio
https://www.dropbox.com/s/uxjoyc872t4yudg/Juego%20Isc%20Snake.zip  :silbar:
Te quedó dpm


Título: Re: 1º Reto de Retrodev
Publicado por: kaltorak en 26 Junio 2013, 14:24 pm
Hola BlackMaster

No costaba nada apuntarse para llevar un control de las personas que iban a realizar el reto  ;D, pero bueno bienvenido bordo.

2 pegas, una la que ya te a comentado MeCraniDos tienes que subir el código, otra que lo tienes que subir compilado para windows y linux.

Una última cosa al intentar ejecutarlo me sale este error.

(http://img33.imageshack.us/img33/9799/s65k.png)

Alguno sabe por qué puede ser por que por lo que veo os funciona a todos :-(

(Ya lo solucione  ;D)

 
Un saludo
Kaltorak.


Título: Re: 1º Reto de Retrodev
Publicado por: SrCooper en 26 Junio 2013, 14:35 pm
EDITO
Se que llego dos dias tarde pero, ¿aún me puedo unir?
Un saludo

PD: edito porque me precipité al escribir lo anterior, lo siento


Título: Re: 1º Reto de Retrodev
Publicado por: 0xFer en 26 Junio 2013, 20:40 pm
yo ya termine el mio

(http://img713.imageshack.us/img713/2295/58v.png)

subo el código cuando el reto termine..
esta escrito en C

el ejecutable
http://www.mediafire.com/?k56fd69g82paglj (http://www.mediafire.com/?k56fd69g82paglj)


Título: Re: 1º Reto de Retrodev
Publicado por: amchacon en 26 Junio 2013, 20:51 pm
Faltan DLL, no lo puedo ejecutar  :silbar:


Título: Re: 1º Reto de Retrodev
Publicado por: 0xFer en 26 Junio 2013, 20:54 pm
esta es la dll que te falta
http://es.dll-files.com/glut32.dll.html


xDD

denme paciencia
Literalmente es mi primer programa en C....por eso no se mucho del tema  :-[
creo que llevo programando 1 semana en ese lenguaje, y 2 en C++ xDDD


Título: Re: 1º Reto de Retrodev
Publicado por: kaltorak en 27 Junio 2013, 05:01 am
Bienvenido abordo SrCooper ya estas apuntado al reto.

Que chula la captura Ferreter mañana que tendré un rato mirare el juego.

Un saludo
Kaltorak.



Título: Re: 1º Reto de Retrodev
Publicado por: SrCooper en 27 Junio 2013, 12:39 pm
BlackM4ster, muy chulo el código, a pesar de que  hacerlo en consola resulta muy engorroso, te quedó bien  ;-)
Un saludo


Título: Re: 1º Reto de Retrodev
Publicado por: kaltorak en 2 Julio 2013, 10:46 am
Actualizado el Post principal con los que habéis subido el reto.  ;-)

Blackmaster está genial tu serpiente, solo una pega falta la versión compilada para Linux.

Ferreter muy chula tu serpiente pero no se mueve sola como debería hacer la serpiente.
Y bueno lo mismo que para blackmaster falta la versión compilada para Linux.

Un saludo
Kaltorak.




Título: Re: 1º Reto de Retrodev
Publicado por: BlackM4ster en 2 Julio 2013, 13:38 pm
Pero yo he puesto el source, que es compatible con cualquier sistema operativo  :silbar:


Título: Re: 1º Reto de Retrodev
Publicado por: kaltorak en 3 Julio 2013, 13:22 pm
Pero yo he puesto el source, que es compatible con cualquier sistema operativo  :silbar:

Si, la verdad es que poniendo el codigo deberia valer.

Pero hay gente que usa windows o linux, y no saben compilar un codigo fuente para generar el ejecutable.  :rolleyes:

A petición de algunos de los participantes del reto voy a ampliar el tiempo que tenemos para presentar el reto.
La primera versión tendremos  que presentarla antes del 15/07/2013 (en vez del 09/07/2013) y la versión antes del 01/08/2013 (en vez del 24/07/2013).

Un saludo
kaltorak.


Título: Re: 1º Reto de Retrodev
Publicado por: OmarHack en 3 Julio 2013, 13:38 pm
A lo mejor aún tengo tiempo. :)


Título: Re: 1º Reto de Retrodev
Publicado por: SrCooper en 6 Julio 2013, 23:53 pm
Ya está lista la ALPHA de mi juego. Aquí el código:

Código
  1. #include <allegro.h>
  2. #include <list>
  3. #include <cstdlib>
  4. #include <time.h>
  5. #include <string>
  6. using namespace std;
  7.  
  8. const int XTAM = 60, YTAM = 40;
  9. const int SZ = 12;
  10.  
  11. int vx = 1, vy = 0;
  12. int al, score = 0;
  13.  
  14. BITMAP *cuadrado1;
  15. BITMAP *cuadradobmp;
  16. BITMAP *buffer;
  17. BITMAP *fruta;
  18. BITMAP *manzanabmp;
  19. BITMAP *fresabmp;
  20. BITMAP *bombabmp;
  21.  
  22. void draw_score()
  23. {
  24.    rectfill(screen, 0,0,200,14,0);
  25.    textprintf(screen, font, 0, 0, -1, "SCORE:  %d", score);
  26. }
  27.  
  28. void pantalla(){
  29.    blit(buffer, screen, 0,0,0,0, XTAM*SZ, YTAM*SZ);
  30. }
  31. struct Punto{
  32.    int x,y;
  33. };
  34.  
  35. void cuadrado(const Punto& p){
  36.    blit(cuadradobmp, cuadrado1, 0, 0, 0, 0, 12, 12);
  37.    draw_sprite(buffer, cuadrado1, p.x*SZ, p.y*SZ);
  38. }
  39.  
  40. void pinta_comida(const Punto& p){
  41.    srand(time(0));
  42.    if (al==0) blit(manzanabmp, fruta, 0, 0, 0, 0, 12, 12);
  43.    if (al==1) blit(fresabmp, fruta, 0, 0, 0, 0, 12, 12);
  44.    draw_sprite(buffer, fruta, p.x*SZ, p.y*SZ);
  45. }
  46.  
  47. Punto al_azar(){
  48.    srand(time(0));
  49.    Punto p = {rand() % XTAM, rand() % YTAM};
  50.    al = rand() % 2;
  51.    return p;
  52. }
  53.  
  54. void teclas(){
  55.        if (key[KEY_UP] && vy != 1){
  56.            vx = 0, vy = -1;
  57.       }else if (key[KEY_DOWN] && vy != -1){
  58.            vx = 0; vy = 1;
  59.       }else if (key[KEY_LEFT] && vx != 1){
  60.            vx = -1, vy = 0;
  61.       }else if (key[KEY_RIGHT] && vx != -1){
  62.            vx = 1, vy = 0;
  63.       }
  64. }
  65.  
  66. bool hay_choque(const Punto& cabeza, const list<Punto>& cola){
  67.    if (cabeza.x >= XTAM  || cabeza.x < 0) return true;
  68.    if (cabeza.y >= YTAM  || cabeza.y < 0) return true;
  69.    list <Punto>::const_iterator it = cola.begin();
  70.    for (; it != cola.end(); it++){
  71.        if (cabeza.x == it->x && cabeza.y == it->y){
  72.            return true;
  73.        }
  74.    }
  75.    return false;
  76. }
  77.  
  78. int main(){
  79.    allegro_init();
  80.    install_keyboard();
  81.  
  82.    set_color_depth(32);
  83.    set_gfx_mode(GFX_AUTODETECT_WINDOWED, XTAM * SZ, YTAM * SZ, 0, 0);
  84.  
  85.    buffer = create_bitmap(XTAM * SZ, YTAM * SZ);
  86.    cuadrado1 = create_bitmap(12,12);
  87.    cuadradobmp = load_bitmap("imagenes/cabeza.bmp", NULL);
  88.    fruta = create_bitmap(12,12);
  89.    fresabmp = load_bitmap("imagenes/fresa.bmp", NULL);
  90.    manzanabmp = load_bitmap("imagenes/manzana.bmp", NULL);
  91.    bombabmp = load_bitmap("imagenes/bomba.bmp", NULL); //Ya desvelo lo que incluire proximamente ;D
  92.  
  93.    list<Punto> cola;
  94.    int engorda = 0;
  95.    int retraso = 0;
  96.  
  97.    bool choque = false;
  98.    Punto cara = {30, 30};
  99.    Punto comida = al_azar();
  100.  
  101.    while(!key[KEY_ESC] && !choque ){
  102.        pantalla();
  103.        retraso++;
  104.        teclas();
  105.        draw_score();
  106.  
  107.         if (retraso==8){
  108.            cola.push_front(cara);
  109.            if (engorda > 0){
  110.                engorda--;
  111.            }else {
  112.                cola.pop_back();
  113.            }
  114.            cara.x += vx;
  115.            cara.y += vy;
  116.            if (hay_choque(cara, cola)){
  117.                choque = true;
  118.  
  119.            } else if (cara.x == comida.x && cara.y == comida.y){
  120.                engorda = 5;
  121.                if (al==0) score += 5;
  122.                else if (al==1) score +=10;
  123.                comida = al_azar();
  124.                while (hay_choque(comida, cola) ||
  125.                    comida.x == cara.x && comida.y == cara.y ||
  126.                    comida.y < 5){
  127.                        comida = al_azar();
  128.                    }
  129.            }
  130.  
  131.            retraso = 0;
  132.        }
  133.    if (!choque){
  134.            clear(buffer);
  135.            list<Punto>::const_iterator it;
  136.            for (it = cola.begin(); it != cola.end(); it++){
  137.                cuadrado(*it);
  138.            }
  139.            cuadrado(cara);
  140.            pinta_comida(comida);
  141.  
  142.        }
  143.        rest(10);
  144.    }
  145.  
  146.    rectfill(screen, 0,0,200,14,0);
  147.    textprintf(screen, font, 200, 200, -1, "Tu puntuacion ha sido de:  %d", score);
  148.    rest(2000);
  149.    return 0;
  150. }
  151. END_OF_MAIN();
  152.  

He usado Allegro, una lista para crear a mi serpiente y estructuras en lugar de clases. El juego de momento solo tiene una fruta cada vez, aunque hay varios tipos de fruta (cada una da diferentes puntos).
El juego funciona perfectamente, aunque aún me queda incluirle un menú, más frutas y algún tipo de jefe o algo así  >:D

PD: Cuando pueda subiré los archivos compilados en linux y windows :D


Título: Re: 1º Reto de Retrodev
Publicado por: amchacon en 7 Julio 2013, 00:18 am
¡Allegro! Por fin alguien lo usa ^^

Aunque no acabo de entender bien tú código, no sé, es un poco extraño (¿Que es retraso?)


Título: Re: 1º Reto de Retrodev
Publicado por: SrCooper en 7 Julio 2013, 00:41 am
¡Allegro! Por fin alguien lo usa ^^

Aunque no acabo de entender bien tú código, no sé, es un poco extraño (¿Que es retraso?)

Ahora que lo veo, en realidad es un poco retorcido pero es útil. Retraso es una variable que aumenta cada vez que se realiza un ciclo. Y solo cuando esta variable es igual a 10 (se han completado 10 ciclos) se realizan las acciones de mover a la serpiente y se resetea el valor. Si te fijas las acciones que no son de movimiento están fuera de este if.

La función de este valor es bajar un poco la velocidad del juego. También podría haberse hecho aumentando el valor del rest del final, pero con esta variable se concreta que solo queremos bajarle el "ritmo" al movimiento de la serpiente. Prueba a quitarla y se hace injugable, te lo aseguro  :xD
Un saludo


Título: Re: 1º Reto de Retrodev
Publicado por: amchacon en 7 Julio 2013, 01:04 am
Ahora que lo veo, en realidad es un poco retorcido pero es útil. Retraso es una variable que aumenta cada vez que se realiza un ciclo. Y solo cuando esta variable es igual a 10 (se han completado 10 ciclos) se realizan las acciones de mover a la serpiente y se resetea el valor. Si te fijas las acciones que no son de movimiento están fuera de este if.
Entiendo... Bueno es factible ^^

Aunque lo ideal (tanto en rendimiento como en claridad) sería hacer una tarea en segundo plano (hilo). Además es mucho más flexible (puedes ponerle el tiempo que quieras).


Título: Re: 1º Reto de Retrodev
Publicado por: SrCooper en 9 Julio 2013, 23:31 pm
Ya está listo el archivo compilado de mi juego, la verdad,  había olvidado completamente que tenía que subirlo  :silbar:

En el archivo están el código fuente y el ejecutable, que por alguna razón que desconozco, no funciona. Sin embargo desde el CodeBlocks si que corre, supongo que faltará algo, pero no consigo averiguar que es, agradecería que alguien lo dijese.

Esta era solo una versión ALPHA, para probar la dinámica del juego y todo eso. Ahora mismo estoy realizando una versión definitiva en SDL y OpenGL, que espero poder terminar y que sea mucho mejor  :xD

Un saludo

Descarga: http://www.mediafire.com/?fb8qoly710qnkzk

PD: Una captura, un poco cutre la verdad, pero estoy mejorandolo  :D

(http://img853.imageshack.us/img853/150/r77s.png) (http://imageshack.us/photo/my-images/853/r77s.png/)


Título: Re: 1º Reto de Retrodev
Publicado por: amchacon en 10 Julio 2013, 00:42 am
No te funciona directamente porque no encuentra la carpeta "Imagenes" (cuando lo ejecutas desde el Codeblocks, te pilla la carpeta del proyecto como raiz y no la del ejecutable). Por otro lado es posible compilar las Allegro estáticamente (es decir, incrustar la librería dentro del ejecutable, de esa forma no necesitas la DLL).

Esta es la configuración que tienes que poner:
http://imageshack.us/a/img546/3949/nst6.png
http://imageshack.us/a/img812/1416/qr2o.png

El código me da muchos warnings:
Código
  1. textprintf(screen, font, 0, 0, -1, "SCORE:  %d", score);

Esta función está anticuada, en su lugar puedes usar textprintf_ex:
https://www.allegro.cc/manual/4/api/text-output/textprintf_ex

Y me da problemas cada vez que se come una fruta (sufre un retraso apreciable).


Título: Re: 1º Reto de Retrodev
Publicado por: SrCooper en 10 Julio 2013, 00:50 am
Y me da problemas cada vez que se come una fruta (sufre un retraso apreciable).

Te diré a qué creo que se debe: cada vez que la serpiente se come una fruta se selecciona una nueva posición para esta. Si esta posición coincide con cualquiera de las posiciones de la serpiente entonces se vuelve a llamar a la función random(). Sé que no es la manera más eficiente pero no se me ocurría otra.

Gracias por todo lo demás, ya está añadido todo lo nuevo.

PD: ¿Cómo se compila estáticamente en SDL/OpenGL?


Título: Re: 1º Reto de Retrodev
Publicado por: amchacon en 10 Julio 2013, 01:20 am
Te diré a qué creo que se debe: cada vez que la serpiente se come una fruta se selecciona una nueva posición para esta. Si esta posición coincide con cualquiera de las posiciones de la serpiente entonces se vuelve a llamar a la función random(). Sé que no es la manera más eficiente pero no se me ocurría otra.
Yo también hago ese algoritmo, pero no es normal que pase eso (por probabilidad, eso pasará en el 1% de los casos).

Mirando tú código:

Código
  1. while (hay_choque(comida, cola) ||
  2.                    comida.x == cara.x && comida.y == cara.y ||
  3.                    comida.y < 5)

Este while es muy confuso (hasta el mismo compilador me lo ha dicho). Pon paréntesis para separar los && de los ||
PD: ¿Cómo se compila estáticamente en SDL/OpenGL?
Para compilar estaticamente (static link) los creadores deben hacer hecho una versión estática de la librería.

Dado que SDL no tiene licencia libre, es poco probable que tenga una versión estática. OpenGL no lo he llegado a usar nunca, asi que no puedo decirte.


Título: Re: 1º Reto de Retrodev
Publicado por: SrCooper en 10 Julio 2013, 01:35 am
Este while es muy confuso (hasta el mismo compilador me lo ha dicho).

A mí también me advertía de algo pero no suelo hacerle caso xD. Aunque ahora que lo dices debería...
Ya he escrito los paréntesis y he probado un poco el programa, y por lo que parece sigue parándose a veces aunque menos a menudo.

Quizás debería hacer una función para estabilizar los FPS a 60. En fin, ya lo probaré en la siguiente versión. Por ahora estoy contento con esta  :laugh:

Un saludo


Título: Re: 1º Reto de Retrodev
Publicado por: amchacon en 10 Julio 2013, 01:56 am
Pues es extraño, lo normal esque ni se note.

Mirando un poco, he visto esto:
Código
  1. void alzar()
  2. {
  3. srand(time(0));

La semilla hay que inicializarla una vez (al principio del juego por ejemplo), no se debe iniciar cada vez o obtendrás el mismo número una y otra vez.


Título: Re: 1º Reto de Retrodev
Publicado por: SrCooper en 10 Julio 2013, 13:12 pm
Gracias, creo que era eso porque ahora ya no se para nada.

EDITO: La verdad es que de vez en cuando aún se para, estoy tratando de solucionarlo. Para la próxima versión ;)


Título: Re: 1º Reto de Retrodev
Publicado por: Puntoinfinito en 16 Julio 2013, 11:25 am
Aquí el mío :)

De momento en la primera versión no hay función de highscores, pero hay efectos de sonido y menus ;) Ahora mismo no tengo las herramientas para compilar para Windows así que si alguien puede hacerlo para mi le agradecería mucho!!

Unos pantallazos... y abajo source + binarios  :P

Menú:
(http://s23.postimg.org/i1ukqtr8b/Screenshot_07162013_01_25_59_AM.png)

Gameplay:
(http://s14.postimg.org/66yfyuosx/Screenshot_07162013_01_28_31_AM.png)

[Binario Linux 32 bits:] https://docs.google.com/file/d/0B_bICudPUUcpcmh5UmtveHM5TTg/edit?usp=sharing
[Binario Windows:] Si alguien puede compilarlo, perfecto!!
[Código + content:] https://docs.google.com/file/d/0B_bICudPUUcpdElUUDFuVXc2Szg/edit?usp=sharing


Título: Re: 1º Reto de Retrodev
Publicado por: SrCooper en 16 Julio 2013, 13:02 pm
¡Qué bueno! ¿Esta hecho con SDL? Por cierto, cuando lo ejecuto se abre una pantalla en negro y no pasa nada más...

Un saludo



Título: Re: 1º Reto de Retrodev
Publicado por: Puntoinfinito en 20 Julio 2013, 22:08 pm
Sí, en SDL :)

Necesitas el content, es decir las imagenes y contenido necesario para que el juego lea y así muestre en su pantalla. Lo puedes descargar que ya lo he subido :)) Saludos!!

PD: Mañana mismo subiré la nueva versión con algunos bugs arreglados y con highscore!!


Título: Re: 1º Reto de Retrodev
Publicado por: kaltorak en 22 Julio 2013, 03:07 am
Hola a todos

Siento lo desconectado que he estado estos días pero el curro me ha absorbido todo el poco tiempo libre que tenía.

He estado probando vuestros snakes y están genial estoy deseando ver las nuevas versiones.

Bueno aquí está mi versión del Snake.

(http://img542.imageshack.us/img542/7388/w0y.png)

Binario Windows: http://ultrashare.net/hosting/fl/62ce21b834 (http://ultrashare.net/hosting/fl/62ce21b834)
Binario Linux: http://ultrashare.net/hosting/fl/28a0c065f5 (http://ultrashare.net/hosting/fl/28a0c065f5)
Codigo: http://ultrashare.net/hosting/fl/df1913ec96 (http://ultrashare.net/hosting/fl/df1913ec96)

Un saludo
Kaltorak.


Título: Re: 1º Reto de Retrodev
Publicado por: BlackM4ster en 22 Julio 2013, 09:24 am
Jajajajajajaja que bueno, kaltorak
Muy original usar sprites del Mario Bros, si señor  ;-) ;-)


Título: Re: 1º Reto de Retrodev
Publicado por: SrCooper en 26 Julio 2013, 23:40 pm
Ya está lista mi versión final del Snake

Windows: http://www.mediafire.com/?2bktsm8qoi087z8
Linux: no tengo tiempo para instalar SDL en Linux, pero funciona perfectamente con wine

Mi intención era cambiar la versión clásica del Snake, y en vez de tener un número fijo de vidas y un solo mapa que cambia, incluir un cantidad de vidas practicamente ilimitada y varios mapas.
Aún así, para los más fans del Snake, he incluido un modo "Hardcore", en el que solo hay una vida que aumenta en cada nuevo nivel.

He incluido más de 15 niveles diferentes, a cada cual más dificil. Además, he incluido diferentes objetos que interactuan con el jugador, como bloques, comida, falsa comida y portales.

El juego tiene una serie de fallos en el control, pues es mi segundo juego con SDL, y aún no lo manejo muy bien. Pero es un fallo mínimo, que apenas afecta al juego.Además ha habido una serie de ideas que pensaba añadir, y que por tiempo no he podido; luego es posible que haya algunas funciones o variables sin utilizar, que se me haya olvidado borrar.

Mañana me voy de viaje, así que es posible que no pueda contestar mensajes sobre fallos y eso. En fin, aquí os dejo algunas capturas de pantalla del juego final.

Un saludo :laugh:  

(http://imageshack.us/a/img856/7245/pps3.png)

(http://imageshack.us/a/img832/9827/yw65.png)

(http://imageshack.us/a/img543/9914/uymp.png)


Título: Re: 1º Reto de Retrodev
Publicado por: amchacon en 27 Julio 2013, 00:06 am
Hey cuanto curre, como me recuerdas a mí en mis tiempos  :o

Tiene muchísimos niveles y está bastante bien. Aunque en el archivo niveles.cpp, en vez de una X, yo hubiera representado los espacios vacíos... Con un espacio  ;-) (se ven los mapas menos agobiados así).

Y hay algunos fallos de memoria... Prueba a jugarlo con el administrador de tareas abierto, verás como su consumo de memoria aumenta paulatinamente (incluso estando en el menú).

He aquí un ejemplo de los mapas con espacios:
https://dl.dropboxusercontent.com/u/69551225/niveles.zip

EDITO: Vaya, se me olvidó guardar los cambios xD. Vuelvetelo a descargar ;)


Título: Re: 1º Reto de Retrodev
Publicado por: SrCooper en 27 Julio 2013, 00:15 am
Tiene muchísimos niveles y está bastante bien. Aunque en el archivo niveles.cpp, en vez de una X, yo hubiera representado los espacios vacíos... Con un espacio  ;-) (se ven los mapas menos agobiados así).
Ya, pensé en poner espacios al principio, pero si pongo X es más fácil para mí contar las distancias entre los distintos bloques y todo eso. Si es cierto que una vez diseñados podía haberlos borrado.

Y hay algunos fallos de memoria... Prueba a jugarlo con el administrador de tareas abierto, verás como su consumo de memoria aumenta paulatinamente (incluso estando en el menú).
Esta muy poco optimizado, de hecho al compilar suelta muchísimos warnings y estoy seguro de que hay un montón de cosas innecesarias, ya lo intentaré solucionar cuando tenga tiempo :)

Mi idea para este proyecto era realizar un modelo que permitiese incluir una cantidad ilimitada de niveles, sin tener que cambiar practicamente nada del código. Es decir, depender casi exclusivamente del archivo niveles.cpp para diseñar el juego. Y bueno, básicamente lo he conseguido.

Un saludo


Título: Re: 1º Reto de Retrodev
Publicado por: kaltorak en 27 Julio 2013, 16:08 pm
BlackM4ster me alegro mucho de que te haya gustado, la verdad es que la idea de usar los sprites del Mario bros surgió de repente  ;D  los tenía en el escritorio muertos de asco los vi y dije coño para el snake  ;D  lo que pasa es que me he liado mucho con el juego y se a vuelto muy complejo y no sé si podre terminar todo lo que quiero incluirle de aquí al día 30.

SrCooper un trabajo magnifico si señor tiene algunos pequeños fallos, pero está muy muy bien  ;-)


Título: Re: 1º Reto de Retrodev
Publicado por: SrCooper en 27 Julio 2013, 21:55 pm
SrCooper un trabajo magnifico si señor tiene algunos pequeños fallos, pero está muy muy bien  ;-)

Muchas gracias, me gustaria que me aclarases todos los errores cuando vuelva y tenga mas tiempo, porque la verdad es que hay algunos que se cuales son pero no se como arreglarlos.

La verdad es que veo mucho futuro por este grupo, me preguntaba si vamos a hacer algun proyecto entre todos, porque veo buenos juegos por aqui :D

Un saludo

PD: disculpadme por no poner ninguna tilde, este teclado no tiene :xD


Título: Re: 1º Reto de Retrodev
Publicado por: Stakewinner00 en 28 Julio 2013, 01:06 am
La verdad es que veo mucho futuro por este grupo, me preguntaba si vamos a hacer algun proyecto entre todos, porque veo buenos juegos por aqui :D

Os dejo una idea para más retos de programación.

Puesto que esta demostrado que los gobiernos nos espían podríamos hacer un reto de criptografia para fomentarla y para que surgieran más ideas y de ese modo mejorar la libertad. Esta idea se la propuse al que creo otros retos muy recientes pero como parece que este grupo esta bastante animado...

Aquí lo dejo.

PD:Felicidades a todos por vuestro curro. Sobretodo a Puntoinfinito y a Sr.Cooper que son los dos snake que más me gustan.

PPD:Puntoinfinito no pude compilar el código para probarlo en mi maquina por que me faltaba la libSDL_ttf.a que no encontre.

Saludos.


Título: Re: 1º Reto de Retrodev
Publicado por: kaltorak en 28 Julio 2013, 07:36 am
Muchas gracias, me gustaria que me aclarases todos los errores cuando vuelva y tenga mas tiempo, porque la verdad es que hay algunos que se cuales son pero no se como arreglarlos.

La verdad es que veo mucho futuro por este grupo, me preguntaba si vamos a hacer algun proyecto entre todos, porque veo buenos juegos por aqui :D

Por mi perfecto SrCooper cuando estés por aquí pégame un toque, estaré encantado de que miremos esos fallos y ayudarte en lo que me sea posible.

Con respecto a lo de hacer un proyecto todos juntos esa era la idea cuando formamos Retrodev cuando estés de vuelta pásate por nuestro foro y vemos entre todos que podemos hacer.

Os dejo una idea para más retos de programación.

Puesto que esta demostrado que los gobiernos nos espían podríamos hacer un reto de criptografia para fomentarla y para que surgieran más ideas y de ese modo mejorar la libertad. Esta idea se la propuse al que creo otros retos muy recientes pero como parece que este grupo esta bastante animado...

Aquí lo dejo.

Se agradece mucho la propuesta aun que Retrodev se formó principalmente para el desarrollo de videojuegos, podríamos mirar otras cosas.

Lo único que por mucha criptografía que usemos, si alguien desea de verdad romper nuestra seguridad lo hará, la prueba la tenemos en este magistral foro, yo mismo con unos conocimientos bastante básicos sobre ingeniería inversa adquiridos en este foro, he sido capaz de saltarme la protección de programas que han costado cientos de euros en seguridad.

Pues imaginaros que no podrán hacer los expertos a los que nuestros gobiernos pagan un pastizal

Un saludo
Kaltorak.


Título: Re: 1º Reto de Retrodev
Publicado por: Stakewinner00 en 28 Julio 2013, 10:12 am
kaltorak, lo de criptografía no tiene por que tener relación con ingeniería inversa. Puedes crear un programa que cifre un texto y listo. De todas formas creo que estaría bien hacer retos de temas diversos.

Si los retos eran de juegos pues nada, ya intentare participar en alguno cuando tenga tiempo

Saludos.


Título: Re: 1º Reto de Retrodev
Publicado por: amchacon en 28 Julio 2013, 10:44 am
Pues imaginaros que no podrán hacer los expertos a los que nuestros gobiernos pagan un pastizal
Eso no es cierto, hoy en día existen cifrados muy potentes que están al alcanze de cualquiera. Por ejemplo, el AES256 que usa Estados Unidos para sus documentos top-secret se puede encontrar en cualquier copia de Winrar.


Título: Re: 1º Reto de Retrodev
Publicado por: kaltorak en 28 Julio 2013, 16:06 pm
Eso no es cierto, hoy en día existen cifrados muy potentes que están al alcanze de cualquiera. Por ejemplo, el AES256 que usa Estados Unidos para sus documentos top-secret se puede encontrar en cualquier copia de Winrar.

No entiendo que tiene que ver que Winrar use cifrados militares, con lo que yo he dicho, lo que yo he dicho simplemente es que si alguien quiere de verdad romper un código lo terminara haciendo da igual el cifrado empleado.

También os pongo un ejemplo de lo atrasada que va la gente normal con respecto a los ejércitos y gobiernos, cuantos de vosotros tenéis los indicadores de vuestro coche en la luna delantera del mismo???

Pues la tecnología que hace que se vean en la luna del coche es una tecnología que tiene más de 5 años y hace 1 o 2 que se está empezando a ver en coches de muy alta gama.

Con esto solo quiero daros a entender, que una cosa es la tecnologia a la que la gente normal tiene acceso y otra la que hay.

kaltorak, lo de criptografía no tiene por que tener relación con ingeniería inversa. Puedes crear un programa que cifre un texto y listo. De todas formas creo que estaría bien hacer retos de temas diversos.

Si los retos eran de juegos pues nada, ya intentare participar en alguno cuando tenga tiempo

Saludos.

Lo de la ingeniería inversa lo he puesto como ejemplo, porque yo llevo aproximadamente 3 meses con la ingeniería inversa y ya puedo romper protecciones bastante avanzadas, pues imaginaros alguien que lleve años estudiando y realizando ingeniería inversa.

Pues lo mismo es aplicable a la criptografia.

No he dicho que no vallamos a mirar la idea de hacer retos distintos a la creación de videojuegos, te pongo lo que he dicho.


Se agradece mucho la propuesta aun que Retrodev se formó principalmente para el desarrollo de videojuegos, podríamos mirar otras cosas.




Título: Re: 1º Reto de Retrodev
Publicado por: amchacon en 28 Julio 2013, 16:40 pm
No entiendo que tiene que ver que Winrar use cifrados militares, con lo que yo he dicho, lo que yo he dicho simplemente es que si alguien quiere de verdad romper un código lo terminara haciendo da igual el cifrado empleado.
Lo que quiero decir, esque no es dificil hacer un cifrado bastante seguro. El AES256 es un cifrado que se considera prácticamente indescifrable (salvo que averigues la contraseña claro).


Título: Re: 1º Reto de Retrodev
Publicado por: Stakewinner00 en 28 Julio 2013, 20:55 pm
Las leyes físicas y matemáticas son independientes de gobiernos o empresas. Un buen cifrado no se puede descifrar en un tiempo razonable y los gobiernos no pueden saltarse las leyes de la física así que tu argumento es discutible.

Con esto ya dejo el tema que creo que se esta desviando del propósito general del hilo.