PlanetSwitch Planet3DS PlanetVita PSP.de PlanetiPhone Classics Forum Handheld-Wiki

PGN-ID:[?] (Nicht eingeloggt)
Login
Registrieren
PlanetDS PlanetGameboy N-Page.de
portablegaming.de  

Zurück   portablegaming.de > Allgemeines Spielehandheldforum, GBA, N-Gage und Development > Development Abteilung


Development Abteilung Ihr wollt für euren Lieblingshandheld Spiele oder Tools entwickeln?
Bitte die Präfixe benutzen!

Antwort
 
LinkBack Themen-Optionen Thema durchsuchen
Alt 27.05.2003, 22:02   #1
 
Registriert seit: 24.05.2003

SnaG hat die Renommee-Anzeige deaktiviert

SnaG eine Nachricht über ICQ schicken
Standard Mastermind am GBA mit C++

hi
also ich würde gerne ein mastermind* spiel mal so entwickeln...
aber nicht so, das man selber raten muss,
sondern das der GBA ratet!

ich will jetzt hier nicht meinen lösungsvorschlag präsentieren, weil es mehrere gibt min. 2
ich will einfach wissen wie viele verschiedene es gibt!
und wie der rechnerische aufwand ist für den GBA
(das spiel soll ja ned stocken)

mfg SnaG


ps: *: wer mastermind nicht kennt:
ist so ein spiel, der spieler1 erstellt einen Farbcode
der spieler2 muss "raten bzw. denken":
spieler 2 macht einen farbcode (immer aus 4 bausteinen von 6 verschiedenen farben)
spieler 1 gibt dann eine "bewertung" zu dem code ab:
er sagt wie viele farben richtig im code sind nur an der falschen stelle sich befinden!
und er sagt auch noch wie viele farben im code richtig sind und an der richtigen stelle sich befinden!
SnaG ist offline   Mit Zitat antworten
Sponsored Links
Alt 28.05.2003, 19:43   #2
 
Registriert seit: 02.05.2002

Zeckenberger hat die Renommee-Anzeige deaktiviert

Standard

ach ja... wie geil
Hab das game mal mitm freund in der 4. Klasse gespielt.
Zeckenberger ist offline   Mit Zitat antworten
Alt 28.05.2003, 21:02   #3
 
Registriert seit: 03.03.2003
Alter: 35

Martini hat die Renommee-Anzeige deaktiviert

Martini eine Nachricht über ICQ schicken
Standard

Alles schön und gut, aber macht das Spiel denn noch Spaß wenn der GBA ratet und nicht du ?
Martini ist offline   Mit Zitat antworten
Alt 28.05.2003, 21:55   #4
 
Registriert seit: 24.05.2003

SnaG hat die Renommee-Anzeige deaktiviert

SnaG eine Nachricht über ICQ schicken
Standard

Zitat:
Original von Zeckenberger
ach ja... wie geil
Hab das game mal mitm freund in der 4. Klasse gespielt.
Zitat:
Original von Martini
Alles schön und gut, aber macht das Spiel denn noch Spaß wenn der GBA ratet und nicht du ?
Ich fasse eure beiträge als solche "ich habe keinen plan und gib mal ein unnötiges kommentar ab, damit ich 1 post mehr im forum hab..." auf.
Der sinn der sache liegt wohl eher an der programmierherausforderung

mfg SnaG
SnaG ist offline   Mit Zitat antworten
Alt 28.05.2003, 22:16   #5
 
Registriert seit: 12.01.2003
Alter: 32

Supadupazocka© hat die Renommee-Anzeige deaktiviert

Supadupazocka© eine Nachricht über ICQ schicken
Standard

Also du hast tausende von Möglichkeiten mastermind so zu machen das der Gba sich eine Kompination herrausfindet. Nun eine möglich keit wäre der Befehl rsand oder wie auch immer der hioes muss mal nachgucken. dann könntest du eine Funktion machen die selber ein random erzeugt. Nunja deine Möglichkeiten sind so gross wie deine fantasie falls du noch fragen hast dan poste aber mit gba proggen kenn ich mich nicht so gut aus aber durchschnittlich
Supadupazocka© ist offline   Mit Zitat antworten
Alt 28.05.2003, 22:26   #6
 
Registriert seit: 24.05.2003

SnaG hat die Renommee-Anzeige deaktiviert

SnaG eine Nachricht über ICQ schicken
Standard

schon klar das ich mit rand()%x eine randomzahl machen kann,
es geht ja nicht darüber das der computer eine macht!
nein im gegenteil ich such mir eine kombination aus und der GBA hat die ehrenvolle aufgabe den code zu erraten!
das ist sozusagen eine programierung einer niederen KI

mfg SnaG
SnaG ist offline   Mit Zitat antworten
Alt 28.05.2003, 22:33   #7
 
Registriert seit: 12.01.2003
Alter: 32

Supadupazocka© hat die Renommee-Anzeige deaktiviert

Supadupazocka© eine Nachricht über ICQ schicken
Standard

Achso sorry dann hab ich dich missverstanden ...
Ehmm das ist echt ne herrausfoderung naja du könntest zB hmmmm lass mal überlegen....
Ehmm bei dem spiel besteht der code den der npc erraten muss aus 4 "stücken" wenn ich mich nicht irre..
Na dann mach das mit den random befehl und zwar:
Sag de,m pc das es vier sachen sind die er eraten muss dann mache eine funktion die eine rechnung zufälig ausspuckt und jeweils das ergebnis steht für ein stückchen des zu erraten code so wür dich das machenhalt ne zufällige zufallsberechnung
Supadupazocka© ist offline   Mit Zitat antworten
Alt 28.05.2003, 22:52   #8
 
Registriert seit: 24.05.2003

SnaG hat die Renommee-Anzeige deaktiviert

SnaG eine Nachricht über ICQ schicken
Standard

naja egal also
ich versteh zwar nicht was du meinst aber:
man hat 8 verschiedene farben mit 4 stk pro code gibt
4096 Kombinationen!

hab schon mit dem programmm nach ausschlussverfahren begonnen aber werde wohl total viel und total langen code brauchen hier nur mal der anfang:
Code:
void main(void)
{
  int i,j,k,l,y=0,rando,bewertung1,bewertung2;
  char s[16400],s1[4],s2[16400];
  char a,b,c,d;

  clrscr();
  y=0;

  for(i=1;i<=8;i++)
  {
    for(j=1;j<=8;j++)
    {
      for(k=1;k<=8;k++)
      {
	for(l=1;l<=8;l++)
	{
	  switch(i)
          {
	    case 1: a='A'; break;
            case 2: a='B'; break;
            case 3: a='C'; break;
            case 4: a='D'; break;
	    case 5: a='E'; break;
	    case 6: a='F'; break;
	    case 7: a='G'; break;
	    case 8: a='H'; break;
          }
          switch(j)
          {
            case 1: b='A'; break;
            case 2: b='B'; break;
            case 3: b='C'; break;
            case 4: b='D'; break;
            case 5: b='E'; break;
	    case 6: b='F'; break;
	    case 7: b='G'; break;
	    case 8: b='H'; break;
	  }
	  switch(k)
	  {
	    case 1: c='A'; break;
	    case 2: c='B'; break;
	    case 3: c='C'; break;
	    case 4: c='D'; break;
	    case 5: c='E'; break;
	    case 6: c='F'; break;
	    case 7: c='G'; break;
	    case 8: c='H'; break;
	    }
	  switch(l)
	  {
	    case 1: d='A'; break;
	    case 2: d='B'; break;
	    case 3: d='C'; break;
	    case 4: d='D'; break;
	    case 5: d='E'; break;
	    case 6: d='F'; break;
	    case 7: d='G'; break;
	    case 8: d='H'; break;
	  }
	  s[y+0]=a;
	  s[y+1]=b;
	  s[y+2]=c;
	  s[y+3]=d;
	  y=y+4;
        }
      }
    }
  }
  cout<<y;
  randomize();
  rando=4*(rand()%4095);
  for(i=0;i<=3;i++)
  {
    s1[i]=s[rando+i];
    cout<<s1[i];
  }
  cin>>bewertung1;
  cin>>bewertung2;

  if(bewertung1+bewertung2!=4)
  {
    for(i=0;i<=16380;i=i+4)
    {
      if((s1[0]!=s1[1])&(s1[0]!=s1[2])&(s1[0]!=s1[3])&(s1[1]!=s1[2])&(s1[2]!=s1[3])&(s1[1]!=s1[3]))
      {
      if((s1[0]==s[0+i])|(s1[0]==s[1+i])|(s1[0]==s[2+i])|(s1[0]==s[3+i]))
      {
	if((s1[1]==s[0+i])|(s1[1]==s[1+i])|(s1[1]==s[2+i])|(s1[1]==s[3+i]))
	{
	  if((s1[2]==s[0+i])|(s1[2]==s[1+i])|(s1[2]==s[2+i])|(s1[2]==s[3+i]))
	  {
	    if((s1[3]==s[0+i])|(s1[3]==s[1+i])|(s1[3]==s[2+i])|(s1[3]==s[3+i]))
	    {
	      s[0+i]='Q'; s[1+i]='Q'; s[2+i]='Q'; s[3+i]='Q';
	    }
	  }
	}
      }
      }
    }
  }
  if(bewertung1+bewertung2==0)
  {
}
achja alle codes die ned stimmen werden durch QQQQ ausgetauscht (ausschliesungsverfahren..)
fehlt noch sehr viel ich weiß..

mfg SnaG
SnaG ist offline   Mit Zitat antworten
Alt 28.05.2003, 23:31   #9
 
Registriert seit: 02.05.2002

Zeckenberger hat die Renommee-Anzeige deaktiviert

Standard

@ SnaG
Du bist n Idiot.
Zeckenberger ist offline   Mit Zitat antworten
Alt 29.05.2003, 18:34   #10
ehem. Teammitglied
 
Benutzerbild von Tharo
 
Registriert seit: 02.09.2002
Ort: フランクフルト
Spielt gerade: FF7 Remake

Tharo wird schon bald berühmt werdenTharo wird schon bald berühmt werden

Standard

Zeckenberger: Mauuul !

SnaG: In deinem Code ist nur der fehler drin das du bei der if Anweisung nur ein & statt zwei benutzt. Das macht zwar keine Fehlermeldung aber du wirst 100%tig keine Ergebnisse damit erzielen können.
__________________
Ney ney ney. So viel Sand und keine Förmchen

Code:
Hey DU! Join uns im PG Discord! https://discord.gg/SVqutfFpTc
Tharo ist offline   Mit Zitat antworten
Alt 29.05.2003, 22:59   #11
 
Registriert seit: 02.05.2002

Zeckenberger hat die Renommee-Anzeige deaktiviert

Standard

mein post war nicht ernst gemeint
Zeckenberger ist offline   Mit Zitat antworten
Alt 01.06.2003, 14:21   #12
 
Registriert seit: 24.05.2003

SnaG hat die Renommee-Anzeige deaktiviert

SnaG eine Nachricht über ICQ schicken
Standard

ne gibt mehrere c versionen ein paar gehen mit einem & ein paar nur mit &&

es stimmt das mein code scheiße ist der schließt erst 25 von 4096 aus...
und dazu braucht er auch noch ziehmlich lang alle zahlen in einen string zu schreiben...

ein anderer hat das problem angeblich in 144 zeilen gelöst den werd ich bald posten...

mfg SnaG
SnaG ist offline   Mit Zitat antworten
Alt 01.06.2003, 15:21   #13
Moderator
 
Benutzerbild von goldmomo
 
Registriert seit: 03.02.2003

goldmomo hat die Renommee-Anzeige deaktiviert

Standard

Also ein & und && haben bei allen C-Compilern die selbe Bedeutung.

Ein einfachens & ist ein Bitweises und

also x = 0x3 & 0x1; // ist 0x1

Ein doppeltes und (&&) ist ein logisches und
(bzw es liefert 1 zurück wenn beide operanten ungleich 0 sind)

also ist if(8 && 1) immer true da 8!=0 und 1!=0

bei bitweisen und wäre dann if(8 & 1) ist false

selbes gilt auch für oder | bzw ||

mfg goldmomo
goldmomo ist offline   Mit Zitat antworten
Alt 01.06.2003, 16:25   #14
 
Registriert seit: 24.05.2003

SnaG hat die Renommee-Anzeige deaktiviert

SnaG eine Nachricht über ICQ schicken
Standard

klar, aber bei mir treten ja nur != und == auf deswegen false oder true..
deswegen ist es egal ob ich 1& oder 2& mach
hab ja nie behauptet das mein code nicht funktioniert sondern wollte nur zeigen wie weit ich da schon bin und wie komplziert das sein kann, damit es Supadupazocka© versteht...

mfg SnaG

ps: danke für deine genaue erläuterung!

edit1:
Code:
#include <iostream> 
#include <string> 
#include <cstdlib> 
#include <ctime> 

using namespace std;

const int c = 8; 
const int f = 4; 
const int comb = 4096; 
const int max_try = 12; 
const char to_char[11] = "0123456789"; 

bool ip[comb]; 
int o_var = comb; 

int a_try[f]; 
int a_res[2]; //0 .. r, 1 .. w 
int tried; 

void input(); 
void output(int); 
void process_input(); 
void check_comb(int); 
int rand_ind(); 

int main(int argc, char *argv[]) 
{ 
   srand(time(0)); 

   while(o_var > 1 && tried < max_try) 
   { 
      output(rand_ind()); 
      input(); 
      process_input(); 
      tried++; 
      cout << "Open:" << o_var << endl << endl; 
   } 

   if(o_var == 1) 
   { 
      int i; 
      for(i = 0; ip[i]; i++) 
         ; 

      cout << "Kombination: "; 
      output(i); 
   } 
   else 
   { 
      cout << "Verloren! :("; 
   } 

   cout << endl; 

   return 0; 
} 

void output(int ind) 
{ 
   int j; 
   //Index in einzelne Zahlen zerlegen 
   char pos[f]; 
   for(j = 0; j < f; j++) 
   { 
      pos[j] = to_char[ind % c]; 
      a_try[j] = ind % c; 
      cout << pos[j]; 
      ind /= c; 
   } 
   cout << endl; 
} 

void input() 
{ 
   string in; 
   cin >> in; 
   a_res[0] = a_res[1] = 0; 
   for(int i = 0; i < in.length() && i < f; i++) 
      switch(in[i]) 
      { 
         case 'r': a_res[0]++; break; 
         case 'w': a_res[1]++; break; 
      } 
} 

void process_input() 
{ 
   for(int i = 0; i < comb; i++) 
      if(!ip[i]) 
         check_comb(i); 
} 

void check_comb(int n) 
{ 
   int id = n; 
   int a_comb[f]; 
   int i, j; 

   //Index in Kombination übersetzen 
   for(i = 0; i < f; i++) 
   { 
      a_comb[i] = id % c; 
      id /= c; 
   } 

   int try_cpy[f]; 
   int r = 0, w = 0; 

   for(i = 0; i < f; i++) 
      try_cpy[i] = a_try[i]; 

   //rote zählen 
   for(i = 0; i < f; i++) 
      if(a_comb[i] == try_cpy[i]) 
      { r++; a_comb[i] = try_cpy[i] = 0; } 

   //weiße 
   for(i = 0; i < f; i++) 
      if(a_comb[i] != 0) 
         for(j = 0; j < f; j++) 
            if(a_comb[i] == try_cpy[j] && try_cpy[j] != 0) 
            { w++; a_comb[i] = try_cpy[j] = 0; } 

   if(r != a_res[0] || w != a_res[1]) 
   { 
      ip[n] = true; 
      o_var--; 
   } 
} 

int rand_ind() 
{ 
   int start = (double(rand())/RAND_MAX)*comb; 
   int step = (double(rand())/RAND_MAX)*comb/10; 
   int i; 
   for(i = start; step != 0; i++) 
   { 
      if(i == comb) 
         i = 0; 
      if(ip[i] == false) 
         step--; 
   } 
   return i - 1; 
}
glaubt ihr das schafft der GBA?
SnaG ist offline   Mit Zitat antworten
Alt 02.06.2003, 15:05   #15
ehem. Teammitglied
 
Benutzerbild von Tharo
 
Registriert seit: 02.09.2002
Ort: フランクフルト
Spielt gerade: FF7 Remake

Tharo wird schon bald berühmt werdenTharo wird schon bald berühmt werden

Standard

Schaffen auf jeden Fall, die Frage ist wie lange er brauch

Probieren geht über studieren. Mastermind ist ja wohl kaum ein Zeitkritisches Spiel, oder?
__________________
Ney ney ney. So viel Sand und keine Förmchen

Code:
Hey DU! Join uns im PG Discord! https://discord.gg/SVqutfFpTc
Tharo ist offline   Mit Zitat antworten
Alt 02.06.2003, 20:02   #16
 
Registriert seit: 24.05.2003

SnaG hat die Renommee-Anzeige deaktiviert

SnaG eine Nachricht über ICQ schicken
Standard

morgen bekomm ich mein usb kabel flash2advance linker + 128Mbit karte dann kann ich testen....

mfg SnaG

EDIT1:
hab nun die version 0.1 angehangt, prinzipiel funtzt es schon,
manchmal tretten rechen fehler auf!
spielbeschreibung:

1.) Code ausdenken
2.) mit rauf + runter bewertungen auswählen
3.) mit A bewertung bestätigen:
4.) auf antwort des GBAs warten

wenn ein FADE to black kommt bedeutet es das es keine gültigen möglichkeiten mehr gibt!
wenn ein FADE to white kommt
hat der GBA die Lösung und zeig sie an!

hier können fehler auftreten,
da ich den code von tcpp3 nicht perfekt in gba c++ umgewandelt habe..

mfg SnaG

viel spass damit!

PS: morgen kommt ne viel bessere version raus...

EDIT2: wie versprochen v0.2, v0.1 wurde 4 mal gesaugt
EDIT3: v0.3 ist mal da, v0.2 wurde 0 mal gesaugt
EDIT4: v0.4 ist mal da, v0.3 wurde 1 mal gesaugt
EDIT6: v0.5 ist mal da, v0.4 wurde 7 mal gesaugt
EDIT7: v0.6 ist mal da, v0.5 wurde 4 mal gesaugt
EDIT8: v0.7 ist mal da, v0.6 wurde 2 mal gesaugt
EDIT9: v0.8 ist mal da, v0.7 wurde 0 mal gesaugt
Angehängte Dateien
Dateityp: zip mastermind-v0.8.zip (26,3 KB, 85x aufgerufen)
SnaG ist offline   Mit Zitat antworten
Antwort

  portablegaming.de > Allgemeines Spielehandheldforum, GBA, N-Gage und Development > Development Abteilung

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Autoadapter vom GBA mit dem GBA SP verwenden? Heph Hardware (GBA) 5 14.03.2005 12:03
GBA Spiele, die mit einer Kassete mit 2 oder mehr Spiele gehen :-) Krause Spiele (GBA) 7 09.11.2003 22:36
GBA SP mit GC verbinden herbface Hardware (GBA) 6 24.09.2003 20:30
[DRINGENT!!!!]GBA - GBA Verlinken mit Pokemon Blau/Rot Nuperman Spiele (GBA) 6 29.06.2003 12:34
Hilfe - GBA mit GBA verlinken u. MarioKart zocken (Universallinkkabel) dreamfreak Hardware (GBA) 8 02.06.2003 11:33


Alle Zeitangaben in WEZ +2. Es ist jetzt 19:33 Uhr.


Powered by vBulletin® Version 3.8.9 (Deutsch)
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.0
Template-Modifikationen durch TMS
PortableGaming.de © bk 2000 - 2010

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231