Gå til innhold

Anbefalte innlegg

Videoannonse
Annonse

Jah, ser det ikke ENKELT ut så vet ikke jeg :thumbs:

 

Minner meg om datatimene på skolen når vi skulle lage det berømte "hello world" programmet i Assembler. Måtte skrive 20 linjer med kode og hardware-adresser bare for å printe "hello world!" på skjermen. Mens i Basic bruker man ei linje kode :p

Endret av Bitex
Lenke til kommentar

Den koden var veldig godt strukturert, synes jeg. Var nesten sånn at jeg forsto det. Bare et spørsmål. Hvordan hadde den koden sett ut i Java? Bedre, dårligere? Har bare hørt at Java "overdriver" (fordi den må) bruk av objekter og må vandre gjennom alle for å få gjort noe.

Lenke til kommentar

Det går absolutt an å lage spill i C++. Alt fra et simpelt tekst-modus-spill der du f.eks. skal gjette et tall (10-20 linjer kode?), til en kompleks flysimulator e.l. (for eksempel Jane's F-15). C++ kan brukes til praktisk talt alt.

 

Da jeg først lærte meg C++, hadde jeg veldig lyst til å programmere et spill. Jeg fikk et tips om at et enkelt tre-på-rad-spill sannsynligvis ikke ville være noe stort problem å lage. Så jeg satte meg ned, programmerte, og etterhvert hadde jeg lagd et tre på rad-spill for konsollet i Windows. Senere lærte jeg SDL, og da porta jeg spillet mitt, som jeg ga det originale navnet Tictac, til SDL.

 

Det hele ga meg litt praktisk bruk av C++ mens jeg lærte det, det ga meg praktisk bruk av SDL, og det var et morsomt prosjekt.

 

 

Er forresten helt enig i at Java er et ######. Java er 100% objekt-orientert, noe som betyr at alt er objekter / klasser. Kjipt, spør du meg.

Lenke til kommentar
noen som har en "ready-to-compile" kode til et enkelt spill? f.eks, Snake.... (får ikke kompilert koden ovenfor...)

 

EDIT: til Windows....

Snake...

#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <dos.h>
#include <time.h>
#include <math.h>



static  int snake[300][2] , food[30][2] , screen[81][51],i,j,k;
static  int headx,heady,foodx,foody,level,tail,tailx,taily;
char key,dir;
main()
{
textmode(C4350);
textbackground(0);
clrscr();
randomize();
level=0;
goto jump;
printf(" Thousands year ago there was snake...'techkiton' \n");
delay(2000);
printf (" she was trying to defeat  'abacatrus' the evil snake. \n");
delay(2000);
printf (" We have  learned about 'techkiton'  from history books..\n");
delay(2000);
printf (".. an ancient snake...\n");
delay(2000);
printf (" But things can repeat in history.....\n");
delay(2000);
printf  ("IT IS YOUR TURN NOW !\n");
delay(2000);
getch();
jump:


for (i=1; i<=80; i++)
for (j=1; j<=48; j++)
if ((random(level)+i*j)%14==1 && random(3)==1 ) screen[i][j]=1; else screen[i][j]=0;

//barrier walls
for (i=1; i<=80; i++)
screen[i][1]=1;
for (i=1; i<=80; i++)
screen[i][49]=1;
for (i=1; i<=49; i++)
screen[1][i]=1;
for (i=1; i<=49; i++)
screen[80][i]=1;



for (i=1; i<=80; i++)
for (j=1; j<=49; j++)
if  (screen[i][j]==1) { gotoxy(i,j); printf("Û");delay(1); }



crash:
tail=0;
dir='x';

do{
headx=random(80)+1;
heady=random(48)+1;
snake[0][0]=headx;
snake[0][1]=heady;}
while (screen[headx][heady]==1);


for (i=2; i<=79; i++)
for (j=2; j<=48; j++)
if  (screen[i][j]==1) { textcolor(6);gotoxy(i,j); cprintf("Û");delay(1); }
else { textcolor(16); gotoxy(i,j); cprintf("Û"); }


for (i=0; i<30; i++)
do{
foodx=random(78)+2;
foody=random(47)+2;
food[i][0]=foodx;
food[i][1]=foody;}
while (screen[foodx][foody]==1 || (foodx==headx && foody==heady) );


textcolor(14);
for (i=1; i<30; i++)
{
foodx=food[i][0];
foody=food[i][1];
gotoxy(foodx,foody); if (food[i][0]!=0)  cprintf("$");
}





main_loop:

{
tailx=snake[tail][0];
taily=snake[tail][1];
}

if (tail!=0)
{
for (i=tail; i>0; i--)
{snake[i][0]=snake[i-1][0];
snake[i][1]=snake[i-1][1];
}
}


if (tailx!=0 && taily!=0)
{ gotoxy(tailx,taily); printf(" "); }

/
switch (dir)
  {
 
  case 'u':
  if  (heady>1) heady-=1;
  snake[0][1]=heady;break;
  
  case 'd' :
  if  (heady<49) heady+=1;
  snake[0][1]=heady;break;
  
  case 'l':
  if  (headx>1) headx-=1;
  snake[0][0]=headx;break;

  case 'r' :
  if  (headx<80) headx+=1;
  snake[0][0]=headx;break;
 
  case 'p': dir='p'; while (!kbhit());break;
  }


if (screen[headx][heady]==1)  { textcolor(5); gotoxy(25,25);cprintf("    CRAHSHED ! Hit space.. ");while(getch()!=32);goto crash;}

for (i=1;i<=tail;i++)
if  (headx==snake[i][0] && heady==snake[i][1])
    {textcolor(5);
    gotoxy(25,25);cprintf("   CRAHSHED ! Hit space.. ");while(getch()!=32);goto crash;
     }

for (i=1; i<30; i++)
{
foodx=food[i][0];
foody=food[i][1];
if (headx==foodx && heady==foody && food[i][0]!=0)
  { //ok it ate a dollar
   food[i][0]=0;
   tail+=5;
  }
}



textcolor(9);
for (i=0; i<=tail;i++)
if (snake[i][0]!=0  && snake[i][1]!=0)
{ gotoxy(snake[i][0],snake[i][1]); cprintf("Û"); }


delay(100);


if (kbhit())
{
  key=getch();
  switch (key)
  {
  //up
  case 72: if (dir!='d')  dir='u';break;
  //down
  case 80: if (dir!='u') dir='d';break;
  //left
  case 75: if (dir!='r') dir='l';break;
  //right
  case 77: if (dir!='l') dir='r';break;
  //pause
  case 'p':dir='p';break;
  //exit
  case 27: exit(0); break;
  }
}


goto main_loop;

getch();
}

Lenke til kommentar
noen som har en "ready-to-compile" kode til et enkelt spill? f.eks, Snake.... (får ikke kompilert koden ovenfor...)

 

EDIT: til Windows....

Snake...

blah

Jeg copyer den i main.cpp og skriver 'cd C:\MinGW' og 'C:\MinGW\bin\g++ main.cpp -o main.exe' men det kommer det kommer bare masse errorer nedover vinduet! Er det bare meg som ikke har skjønt dette helt? :dontgetit:

Lenke til kommentar
noen som har en "ready-to-compile" kode til et enkelt spill? f.eks, Snake.... (får ikke kompilert koden ovenfor...)

 

EDIT: til Windows....

Snake...

blah

Jeg copyer den i main.cpp og skriver 'cd C:\MinGW' og 'C:\MinGW\bin\g++ main.cpp -o main.exe' men det kommer det kommer bare masse errorer nedover vinduet! Er det bare meg som ikke har skjønt dette helt? :dontgetit:

Ikke noe nytt, funka ikke her heller.

 

 

 

{´icrap´ @ ´oygard´:~/c}[02:37 PM]$ gcc -o test test.c
test.c:3:19: conio.h: No such file or directory
test.c:4:17: dos.h: No such file or directory
test.c: In function `main':
test.c:15: error: `C4350' undeclared (first use in this function)
test.c:15: error: (Each undeclared identifier is reported only once
test.c:15: error: for each function it appears in.)
test.c:39: error: too many arguments to function `random'
test.c:39: error: too many arguments to function `random'
test.c:39: error: parse error at end of input

Endret av iCrap
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...