WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 17.03.2007, 15:38   #1
Bastet
Elite
 
Registriert seit: 07.09.2000
Beiträge: 1.036


Standard "C" arrays vergeleichen != werte

hallo
erst mal eine erklärung zu dem was ich möchte.
reines "C"
eine funktion erstellen die in meinem fall ein schifffeld mit einem spielfeld vergleicht. ich möchte also 2 2-dimensionale arrays vergleichen die aber nicht den selben wert an den selben stellen haben sondern unterschiedliche vorgegebene werte.

ich habe bereits einen code und umgeschrieben allerdings hänge ich bei dem vergleichen der werte, wenn wer eine idee hat wäre ich dankbar^^.

Code:
int A[10][10] ,B[10][10];
int i,j;

  for(i=0; i<=10; i++)
       {
         for (j=0; j<=10, j++)
               {
	if(A[i,j] == B [i,j])       //gleicher wert
	   {
	       anweisungen
	   }
        }

	
if (A[i, j] == '0' && B[i, j] == '1') //verschiedener wert
{
        anweisungen
}
____________________________________
Bye Bastet

Bastet ist offline   Mit Zitat antworten
Alt 17.03.2007, 17:10   #2
pong
Inventar
 
Benutzerbild von pong
 
Registriert seit: 25.12.2000
Alter: 41
Beiträge: 9.063

Mein Computer

pong eine Nachricht über ICQ schicken
Standard

Befüllung/Initialisierung der Arrays wäre kein Fehler

Code:
if (A[i, j] == '0' && B[i, j] == '1') //verschiedener wert
Wenn das darstellen so, was ich denke, was du damit meinst, dann frag doch einfach mit "!=" ab, ansonsten gehört ein Oder als Verknüpfungsoperator

pong
____________________________________
\"Ein Gewitter reinigt die Luft\", sagte der Mann, nachdem ein Blitz seine Frau erschlug

Nicht klicken!


Erstposteralarm/Beschwerde/Kummerkasten


Verplattet
pong ist offline   Mit Zitat antworten
Alt 17.03.2007, 18:15   #3
Bastet
Elite
 
Registriert seit: 07.09.2000
Beiträge: 1.036


Standard

also ich kann mit deinem "nicht" und "oder" nix anfangen

ok. es geht eigentlich darum ein schiffe versenken programm zu erstellen. es ist eine projektarbeit. einer macht ne funktion zur initialisierung der 2 arrays einer macht den ablauf, etc. meine aufgabe ist es eigentlich den trefferscore zu aktualisieren und bei versenken des schiffes eine ausgabe zu tätigen.
ich habe ein struct mit schiffsnummer, schiffswert,score. wenn also im array A ein schiffswert gefunden wird und im array B ein treffer auf diesem feld ist so soll er im struct eingetragen werden.

irgendwie hab ich aber probleme nur mit formel zum vergleichen des feldes mit verschiedenen werten.

die logik von mir dabei wäre eben:

if (A[i, j] == '0' && B[i, j] == '1') // 1.schiff

if (A[i, j] == '1' && B[i, j] == '1') // 2.schiff

if (A[i, j] == '2' && B[i, j] == '1') // 3.schiff

wenn in A koord x,y der wert '0' ist und in B koord x,y der wert '1' ist dann greife auf struct zu und lese-schreibe score.
____________________________________
Bye Bastet

Bastet ist offline   Mit Zitat antworten
Alt 17.03.2007, 20:56   #4
pong
Inventar
 
Benutzerbild von pong
 
Registriert seit: 25.12.2000
Alter: 41
Beiträge: 9.063

Mein Computer

pong eine Nachricht über ICQ schicken
Standard

Zitat:
funktion zur initialisierung der 2 arrays
und diese wäre ganz vernünftig zu kennen, wie was wann mit welchen Werten befüllt ist

An sich brauchst ja nur eine struct Definition, welche Spielerseite, eine Schalter Variable für den versenkt-Status und Anfangs und Endkoordiante des Schiffes beinhaltet. Im Programm hast ein Array für jede Spielerseite welche das komplette Spielfeld darstellt und in welchemst den Status des Feldes (verwendet oder nicht) speicherst. Bei einem Schuss von Spieler A , rennst das Array durch, ob das Feld nicht schon beschossen und im Falle dessen, lässt einen weiteren Schuss zu, wenn nicht beschossen, suchst dir in deiner Liste raus, obs ein Schiff ist und setzt im Falle eines Treffers den passenden Wert ins Array, ratterst mit einer Schleife von Anfangs bis Ende-koordiante das Array durch, wenns lauter Treffer waren, ist das Schiff versenkt und aktualierst das Ganze im Struct... voila... ein komplettes Schiffeversenken

pong
____________________________________
\"Ein Gewitter reinigt die Luft\", sagte der Mann, nachdem ein Blitz seine Frau erschlug

Nicht klicken!


Erstposteralarm/Beschwerde/Kummerkasten


Verplattet
pong ist offline   Mit Zitat antworten
Alt 17.03.2007, 21:37   #5
Bastet
Elite
 
Registriert seit: 07.09.2000
Beiträge: 1.036


Standard

ich befürchte wir 2 reden absolut aneinander vorbei

das einzige was ich wissen möchte ist die syntax ein array zu vergleichen mit einem wert den ich vorgebe.


if(A[i,j] == B [i,j])

bedeutet eben wenn beide inhalte der arrays gleich sind - ich möchte aber nicht das die werte gleich sind oder ungleich sondern ich möchte direkt dort einen wert angeben. also wenn der wert A=5 und der wert B=1 ist, aber die syntax dazu ist mir eben unklar.
____________________________________
Bye Bastet

Bastet ist offline   Mit Zitat antworten
Alt 17.03.2007, 21:49   #6
flocky
Inventar
 
Registriert seit: 16.02.2002
Alter: 39
Beiträge: 3.880


flocky eine Nachricht über ICQ schicken
Standard

Zitat:
Original geschrieben von Bastet
also wenn der wert A=5 und der wert B=1 ist, aber die syntax dazu ist mir eben unklar.
if (A[i, j] == '5' && B[i, j] == '1')

also wenns das nicht is was du suchst dann versteh ich überhaupt nix mehr
flocky ist offline   Mit Zitat antworten
Alt 18.03.2007, 07:57   #7
Bastet
Elite
 
Registriert seit: 07.09.2000
Beiträge: 1.036


Standard

Zitat:
Original geschrieben von flocky
if (A[i, j] == '5' && B[i, j] == '1')

also wenns das nicht is was du suchst dann versteh ich überhaupt nix mehr
ah gut dann hab ich mich nicht geirrt.
war mir nicht sicher, ob hochkommma oder nicht, bei den zahlen.


danke jedenfalls
____________________________________
Bye Bastet

Bastet ist offline   Mit Zitat antworten
Alt 19.03.2007, 01:22   #8
Who-T
Elite
 
Registriert seit: 01.08.2000
Beiträge: 1.395


Who-T eine Nachricht über ICQ schicken
Standard

'1' ist nicht das gleiche wie 1.
'1' ist der ascii wert von dem zeichen 1, nicht die zahl 1.
da du int arrays verwendest glaub ich nicht dass du '1' darin haben wirst/willst.

(A[i,j] == 5 && B[i,j] == 1) tut das gleiche fuer die tatsaechlichen zahlenwerte.

generell gilt: nie hochkomma, ausser du arbeitest mit character werten.
____________________________________
Whoever built humanity left in a major design flaw: it was the tendency to bend at the knees.
Who-T ist offline   Mit Zitat antworten
Alt 22.03.2007, 14:04   #9
Bastet
Elite
 
Registriert seit: 07.09.2000
Beiträge: 1.036


Standard

ah ja danke.
ich bringe manches immer durcheinandner. die zuweisung mit einem = und das gleichstellen == deshalb hab ich vorher ein hochkomma benutzt.
____________________________________
Bye Bastet

Bastet ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

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

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 08:18 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag