Avatar billede sirius Nybegynder
02. april 2000 - 21:54 Der er 11 kommentarer og
1 løsning

4 på Stribe

Hvordan skal man gøre hvis man skal programmmere 4 på stribe ?
Avatar billede sjensen Nybegynder
02. april 2000 - 23:09 #1
Jeg formoder det er MasterMind du tænker på.

Lav en form med 10 rækker af 4 felter (små firkanter/paneler/cirkler eller hvad du vil bruge).

Ud for hver af de 10 linier med 4 felter sætter du yderligere 4 små felter (igen firkanter/paneler/o.s.v.).

Du kan nu lave programmet således at du først i hukommelsen sætter 4 farveværdier i 4 vars der er svaret.

Dernæst tillader du brugeren at klikke på en farve for hver af de 4 felter i den aktive linie. Når brugeren har valgt farver skal han klikke på en knap for at få et svar.

Ved klik på svarknappen undersøger du derefter om der er nogen af de valgte farver der er sat korrekt i forhold til svaret. Hvis der er,viser du en farve i en af de små felter ud for linien. Det gør du for alle 4 felter. Hvis ikke alle 4 er rigtige undersøger du derefter om der er nogle af dem der ikke stod rigtigt der har en rigtig farve, men bare ikke på den rigtige plads. For hver af den sætter du så en anden farve i de små felter ud for linien. Efter undersøgelsen af svaret, og hvis svaret endnu ikke er rigtigt, sættere du så den næste linie aktiv, indtil du får et korrekt svar eller den 10. linie er udfyldt.

Sådan laver man det.

Hvis du med spørgsmålet mente om der var nogen der lige havde en kildetekst til hele programmet tror jeg ikke du får så mange svar.

Men.. god fornøjelse.
Avatar billede pellelil Nybegynder
03. april 2000 - 14:46 #2
Tjaee hvorfor skrive programmerne selv hvis man kan få andre til det, men hvor "sjovt" er det ?
Avatar billede sirius Nybegynder
03. april 2000 - 15:41 #3
Desværre sjensen det er ikke mastermind.. men fire på strib jeg mener... det hvor der er en 7x7 firkant og hvor man så skal putte brikkerne i foroven...

ligesom på spil.tv2.dk
Avatar billede sirius Nybegynder
03. april 2000 - 15:42 #4
pellelil > jeg synes da at det er meget "sjovt" så hvis du ikke gør det.. kan du jo bare lade være...
Avatar billede trolle Nybegynder
04. april 2000 - 15:08 #5
Det nemmeste ville nok være at tegne på selve formen...
Du kan blandt andet lave selve pladen ved at bruge "canvas.MoveTo(x,y)" og "canvas.lineTo(x,y)" og så lave alle felterne være 50 pixels bred eller lign.

Du skal nu også lave en 1-D tabel, der holder styr på, hvor mange brikker der er i række nr. 1,2,3,4,5,6,7
altså hvis man kommer en brik i plads 2 (f.eks.) så sættes denne tabel (på plads 2) til at være sig selv +1, og derved ved du at næste brik i denne række skal sættes en tand højere oppe.

Du kan nu lave programmet sådan, at Hvis man trykker oven over den tegnede Spille-plade, så der hvor musen trykker er din x-koordinat, og den tilhørende værdi fra tabellen ovenfor er din y-koordinat.
Du skal så blot gange din y koordinat med 50 og + en konstant til for at få den hen på den plads som der skal tegnes en brik.

Her tegner du så en cirkel eller kryds eller lign. alt efter hvem der er sin tur...
Avatar billede sirius Nybegynder
05. april 2000 - 16:45 #6
det lyder fint nok trolle... men hvordan "tegner" man en sådan en kryds eller bolle
Avatar billede trolle Nybegynder
05. april 2000 - 17:56 #7
Angående Kryds og Bolle:
Jeg antager at du har lavet det sådan at du har fundet et x og y koordinat (måske gemt i variablerne x og y ;-) )

Du kan lave et kryds ved at:
Ud fra x,y værdierne laver du noget lignede (alt efter størrelsen af dine felter)
Canvas.MoveTo(x-20,y-20)
Canvas.LineTo(x+20,y+20)
Hvorefter du har tegnet en streg af dit kryds. Så laver du den anden streg:
Canvas.MoveTo(x-20,y+20)
Canvas.LineTo(x+20,y-20)

Cirklen kan laves som en rund ellipse:
Canvas.Ellipse(x,y,20,20)
Hvor den anden sidste "20"er er bredden af din ellipse, og den sidste er højden...

(læg lige mærke til at jeg bruger tallet 20 som et eksemplel den kunne være en hvilken som helst værdi, alt efter hvor store du vil have dine ting.)

trolle 


Avatar billede tfriis Nybegynder
06. april 2000 - 16:47 #8
Her er en konsol app. Det er simpelt, men der mangler et check om man har vundet. Men er er grund ideen. Der mangler nogle check om man har tastet rigtigt. Det kan nemt laves om til window, men det må du selv rode med:))

program spil;

uses
  Forms,sysutils;

{$R *.RES}

var brat:array[1..7,1..7] of string[1];

procedure initbrat;
var i,j:integer;
begin
  for i:=1 to 7 do
    for j:=1 to 7 do
      brat[i,j]:=' ';
end;

procedure tegnbrat;
var i,j:integer;
begin
  writeln('  1  2  3  4  5  6  7');
  writeln;
  for i:=1 to 7 do
  begin
    write(i);
    for j:=1 to 7 do
      write('  '+brat[j,i]);
    writeln;
  end;
end;

function pladsiraekke(raekke:integer):boolean;
var i:integer;
begin
  result:=false;i:=7;
  while not result and (i>0) do
    if brat[raekke,i]=' ' then
      result:=true
    else
      dec(i);
end;

procedure putbrikiraekke(raekke,spiller:integer);
var i:integer;
    sat:boolean;
begin
  sat:=false;i:=7;
  while not sat and (i>0) do
  begin
    if brat[raekke,i]=' ' then
    begin
      if spiller=1 then
        brat[raekke,i]:='X'
      else
        brat[raekke,i]:='O';
      sat:=true;
    end
    else
      dec(i);
  end;
end;

function vundet:boolean;
begin
//her skal være et check om en har vundet.

  result:=false;
end;

var igang:boolean;
    tur,i:integer;
    valg:string;
begin
  initbrat;
  tur:=0;
  igang:=true;
  for i:=0 to 15 do writeln;
  tegnbrat;
  while igang do
  begin
    writeln;
    if not vundet then
    begin
      write('Det er spiller '+inttostr(tur+1)+'''s tur. Hvilken række? ');
      readln(valg);
      for i:=0 to 15 do writeln;
      if pladsiraekke(strtoint(valg)) then
      begin
        putbrikiraekke(strtoint(valg),tur);
        tur:=(tur+1) mod 2;
      end
      else
        writeln('Der er ikke plads');
      writeln;
      tegnbrat;
    end
    else
    begin
      writeln('Spiller '+inttostr(tur+1)+' har vundet');
      readln;
      igang:=false;
    end;
  end;
end.
Avatar billede sirius Nybegynder
09. april 2000 - 11:38 #9
hvorfor kan jeg ikke sende med server.socket.sendtext ???

den siger noget med at den ikke er connected.. men clienten siger samtidig også at den er connected til serveren !!

skal man lave noget specielt for at få serveren til at connecte får den kan sende beskeder til clienten...
Avatar billede trolle Nybegynder
10. april 2000 - 11:05 #10
Er det sidste et spg. du giver points for???

Er der mere du vil vide om 4 på stribe, så spørg endelig!!!
Avatar billede sirius Nybegynder
10. april 2000 - 15:45 #11
trolle: hvis du svarer på det sidste får du pointsne..
Avatar billede trolle Nybegynder
11. april 2000 - 16:08 #12
Er det ikke lidt noget pjat...

Meningen med alt dette er vil, at man kune stiller et spg. af gangen!!!  Hvis du vil stille en mere, må man vil give det mere points for det i form af et nyt spg.

(med andre ord, så kan jeg ikke lige komme i tanke om noget angående dit nye spg. , så måske er det smartest at lave et helt nyt hoved spg. omkring det, så du lokker nogen der ved noget om det med...)

~~~trolle
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester