Programlama C++

Kodla Büyü
Mesajlar
12
Yukarıdaki gibi 8x8 lik bir satranç tahtasının her bir karesinin içinde en az bir tane olmak şartı ile toplamda 128 tane pire vardır. Zil çaldığında bu pirelerin her biri rastgele bir yöne ( yukarı, aşağı, sağa ya da sola ) zıplayarak yer değiştirmektedir.( Bir pire her defasında sadece bir kare yer değiştirebilir. )
Eğer pire en solda iken rastgele çıkan yön yine de sol ise pire sağ kereye.
Pire en üstteyken çıkan yön yine de yukarı ise alt kareye.
Pire en sağdayken çıkan yön yine de sağ ise pire sol kareye.
Pire en alttayken çıkan yön yine de aşağıysa bir üst kareye
Bu özel durumların dışında hangi yön çıkarsa pire o kareye sıçrayacaktır.
Zil toplam 9 defa çaldığında ve pireler yukarıda belirtilen şartlarda hareket ettiğinde pirelerin son durumunu ekrana yazan C++ programını yazınız.

Merhabalar..Ben bir aşamaya kadar geldim ama hata veriyor.Yardımcı olabilir misiniz?
 

Ekli dosyalar

  • WhatsApp Image 2023-01-10 at 07.54.28.jpeg
    WhatsApp Image 2023-01-10 at 07.54.28.jpeg
    20.9 KB · Görüntüleme: 69
Kodları da paylaşsaydınız. Nereye kadar geldiniz, ne gibi bir hata alıyorsunuz?
 
//my Program
#include<iostream> // header file

using namespace std;

main()
{
srand (time(0))
char A[8][8];
int a;
a=rand()%4;
cout<<a;
cin>>1=sag;
cin>>2=sol;
cin>>3=yukari;
cin>>4=asagi;
}
Şu şekilde bir düzenleme yaptım Rastgele gidiyorlar sonrasında yapamadım
 
//my Program
#include<iostream> // header file

using namespace std;

main()
{
srand (time(0))
char A[8][8];
int a;
a=rand()%4;
cout<<a;
cin>>1=sag;
cin>>2=sol;
cin>>3=yukari;
cin>>4=asagi;
}
Şu şekilde bir düzenleme yaptım Rastgele gidiyorlar sonrasında yapamadım
Bayağı bir aşama kaydetmişsiniz 😅
 
Sure, here is the complete program:

#include <iostream>
#include <cstdlib>
#include <ctime>

const int ROW = 8;
const int COL = 8;
const int NUM_TURNS = 9;

void move(int board[][COL], int row, int col) {
int direction = rand() % 4; // 0: up, 1: right, 2: down, 3: left
if (direction == 0) { // move up
if (row == 0) { // special case: move to bottom row
board[ROW-1][col]++;
board[row][col]--;
} else {
board[row-1][col]++;
board[row][col]--;
}
} else if (direction == 1) { // move right
if (col == COL-1) { // special case: move to leftmost column
board[row][0]++;
board[row][col]--;
} else {
board[row][col+1]++;
board[row][col]--;
}
} else if (direction == 2) { // move down
if (row == ROW-1) { // special case: move to top row
board[0][col]++;
board[row][col]--;
} else {
board[row+1][col]++;
board[row][col]--;
}
} else { // move left
if (col == 0) { // special case: move to rightmost column
board[row][COL-1]++;
board[row][col]--;
} else {
board[row][col-1]++;
board[row][col]--;
}
}
}

int main() {
srand(time(NULL)); // seed the random number generator

int board[ROW][COL] = {};
for (int i = 0; i < 128; i++) {
board[rand() % ROW][rand() % COL]++;
}

for (int i = 0; i < NUM_TURNS; i++) {
for (int row = 0; row < ROW; row++) {
for (int col = 0; col < COL; col++) {
for (int j = 0; j < board[row][col]; j++) {
move(board, row, col);
}
}
}
}

// print final state of the board
for (int row = 0; row < ROW; row++) {
for (int col = 0; col < COL; col++) {
std::cout << board[row][col] << " ";
}
std::cout << std::endl;
}

return 0;
}
 
  • Beğen
Tepkiler: omd
Geri
Üst