Cara Membuat Game Berbasis Teks Dasar di C++

Cara Membuat Game Berbasis Teks Dasar Di C



Game berbasis teks mengandalkan karakter teks dan antarmuka baris perintah untuk berinteraksi dengan pemain. Mereka tidak memiliki gambar grafis, suara, atau animasi. Pengguna memasukkan perintah melalui jendela konsol.

Cara Membuat Game Berbasis Teks Dasar di C++

Permainan berbasis teks di C++ memungkinkan pemain untuk memasukkan perintah melalui jendela konsol, dan program memproses pergerakan pemain. Di sini, saya telah membuat permainan tic-tac-toe berbasis teks yang memungkinkan dua opsi untuk dimainkan oleh pengguna. Pengguna dapat bermain dengan kompiler C++ atau dengan sesama manusia. Game ini memiliki fitur yang terus menjumlahkan skor untuk pemain yang menang. Setelah hasil pertandingan pertama diumumkan, opsi pertandingan ulang tersedia.

Aturan untuk Memenangkan Permainan

Dua pemain memainkan permainan tic-tac-toe, menempatkan X dan 0 secara bergantian di salah satu dari sembilan ruang yang tersedia pada kotak tiga kali tiga. Permainan ini dimenangkan oleh pemain pertama yang memperoleh tiga tanda berturut-turut dalam arah vertikal, horizontal, atau diagonal. Setiap pemain harus berpikir cerdas dan menantikan langkah pemain lainnya selanjutnya.







Kode untuk mendesain permainan tic-tac-toe berbasis teks memiliki bagian berbeda, dibagi berdasarkan fungsionalitas. Pada bagian pertama, pengguna memutuskan apakah akan bermain dengan komputer atau sesama manusia. Setelah memutuskan mode penguatan, program meminta masukan dari pengguna. Kedua pemain memasukkan input satu demi satu.



//Menerima masukan dari pemain
ruang kosong masukan pemain ( Pemain & pemain ) {
ke dalam pos ;
cout << akhir ;
cout << ' \T ' << pemain. dapatkan Nama ( ) << ' Berbelok: ' ;
cout << ' \T Masukkan posisi ' <> pos ;
pos - = 1 ;
jika ( indeks kosong [ pos ] == 1 ) {
cout << '-----Posisi tidak kosong-------' << akhir ;
masukan pemain ( pemain ) ;
} kalau tidak {
indeks kosong [ pos ] = 1 ;
hitungan kosong - = 1 ;
pemain. dapatkan Nama ( ) . membandingkan ( 'Pemain I' ) == 0 ? papan [ pos ] = 'X' : papan [ pos ] = 'HAI' ;
}

}

Setelah mengambil masukan dari pengguna, ia memeriksa aturan menang. Fungsi checkWin() memiliki dua parameter p1 dan p2 untuk memeriksa apakah pemain menang atau tidak. Variabel berbeda dideklarasikan dalam fungsi i, j, dan k adalah variabel integer yang dideklarasikan untuk loop dan flag merupakan fungsi Boolean untuk memeriksa kondisi win. Perulangan dimulai dari posisi pertama dan terus melakukan iterasi untuk kesembilan posisi. First_symbol adalah karakter yang bisa 0 atau X jika benar maka semua kemungkinan kombinasi dicentang untuk aturan kemenangan. Jika tidak, iterator akan berpindah ke posisi berikutnya, dan hal yang sama akan terus berlanjut hingga semua posisi yang memungkinkan diperiksa. Jika bendera ditetapkan benar, maka pemenang diumumkan, dan program meminta untuk membuat pilihan lagi.



ruang kosong periksaMenang ( Pemain & p1, Pemain & hal2 ) {
ke dalam aku,j,k ;
bodoh bendera = PALSU ;
arang simbol_pertama ;
untuk ( Saya = 0 ; Saya < 8 ; Saya ++ ) {
simbol_pertama = papan [ daftar menang [ Saya ] . baris [ 0 ] ] ;

jika ( ( simbol_pertama ! = 'X' ) && ( simbol_pertama ! = 'HAI' ) ) {
bendera = PALSU ;
melanjutkan ;
}
bendera = BENAR ;
untuk ( J = 0 ; J < 3 ; J ++ ) {
jika ( simbol_pertama ! = papan [ daftar menang [ Saya ] . baris [ J ] ] ) {
bendera = PALSU ;
merusak ;
}
}
jika ( bendera ) {
permainan Aktif = 0 ;
jika ( simbol_pertama == 'X' ) {
cout << '------------------------' << akhir ;
cout << ' \T Pemain AKU MENANG' << akhir ;
cout << '------------------------' << akhir ;
hal1. won ( ) ;
} kalau tidak {
hal2. won ( ) ;
jika ( melawan Komputer ) {
cout << '------------------------' << akhir ;
cout << ' \T Komputer MENANG' << akhir ;
cout << '------------------------' << akhir ;
} kalau tidak {
cout << '------------------------' << akhir ;
cout << ' \T Pemain II MENANG' << akhir ;
cout << '------------------------' << akhir ;

}
}
skor tampilan ( hal1, hal2 ) ;
merusak ;
}

Bagian kode ini menunjukkan skor permainan. Jika permainan melawan komputer, maka skor untuk pemain 1 dan komputer yang ditampilkan, sebaliknya, skor untuk pemain 1 dan pemain 2 yang ditampilkan.





ruang kosong skor tampilan ( Pemain & p1, Pemain & hal2 ) {
cout << akhir ;
cout << ' \T SKOR: \T ' ;
jika ( melawan Komputer )
cout << 'Pemain I:' << hal1. dapatkan Skor ( ) << ' \T Komputer: ' << hal2. dapatkan Skor ( ) << akhir ;
kalau tidak
cout << 'Pemain I:' << hal1. dapatkan Skor ( ) << ' \T Pemain II: ' << hal2. dapatkan Skor ( ) << akhir ;
}

Ini adalah kode utama untuk pelaksanaan permainan tic-tac-toe untuk dua pemain. Pengguna dapat memilih dari berbagai prosedur yang akan dilakukan dengan menggunakan pernyataan switch case. Kode ini menyediakan antarmuka yang ramah pengguna untuk memainkan game pada kompiler C++, dan kode terus dijalankan hingga pengguna memilih opsi keluar.

ke dalam utama ( )
{
ke dalam bab ;

ketika ( 1 ) {
cout << ' ----------MENU----------' << akhir ;
cout << ' \T 1. Permainan 1 pemain' << akhir ;
cout << ' \T 2. Permainan 2 pemain' << akhir ;
cout << ' \T 3. Untuk keluar' << akhir ;
cout << '      ----------' << akhir ;
cout << akhir ;
cout << ' \T Pilih salah satu opsi' <> bab ;
mengalihkan ( bab ) {
kasus 1 : {
Permainan * permainan = baru Permainan ;
permainan - > panas ( ) ;
permainan - > satuPlayerGame ( ) ;
}
merusak ;
kasus 2 : {
Permainan * permainan = baru Permainan ;
permainan - > panas ( ) ;
permainan - > duaPemainGame ( ) ;
}
merusak ;
kasus 3 :
kembali 0 ;
bawaan :
cout << 'OOPs Opsi Tidak Valid! COBA LAGI' ;
}

}
kembali 0 ;
}

Kode Lengkap untuk Game Tic-Tac-Toc Berbasis Teks

Ini adalah kode lengkap untuk desain dan pelaksanaan permainan tic-tac-toe berbasis teks.



#termasuk
#sertakan
#termasuk
#termasuk
#termasuk
menggunakan ruang nama std ;

typedef struktur {
ke dalam * baris ;
} Daftar Menang ;


kelas Pemain {
pribadi :
nama string ;
ke dalam skor ;
publik :
Pemain ( ) : Pemain { '' } { }
Pemain ( tali n ) : skor { 0 } , nama { N } { }

ruang kosong won ( ) {
//menambah skor
skor ++ ;
}
ke dalam dapatkan Skor ( ) { kembali ini - > skor ; }

string dapatkanNama ( ) { kembali ini - > nama ; }
} ;

kelas Permainan {
pribadi :
arang papan [ 9 ] ;
ke dalam indeks kosong [ 9 ] ;
ke dalam gameOn, melawan Komputer ;
ke dalam hitungan kosong ;
Daftar pemenang WinList [ 8 ] ;

ruang kosong papan tampilan ( ) {
cout << akhir ;
cout << '   |   |   ' << akhir ;
cout << ' ' << papan [ 0 ] << ' | ' << papan [ 1 ] << ' | ' << papan [ 2 ] << akhir ;
cout << '   |   |   ' << akhir ;
cout << '-----------' << akhir ;
cout << '   |   |   ' << akhir ;
cout << ' ' << papan [ 3 ] << ' | ' << papan [ 4 ] << ' | ' << papan [ 5 ] << akhir ;
cout << '   |   |   ' << akhir ;
cout << '-----------' << akhir ;
cout << '   |   |   ' << akhir ;
cout << ' ' << papan [ 6 ] << ' | ' << papan [ 7 ] << ' | ' << papan [ 8 ] << akhir ;
cout << '   |   |   ' << akhir ;
cout << akhir ;
}

ruang kosong masukan komputer ( ) {
ke dalam pos ;
pos = acak ( ) % 10 ;
jika ( indeks kosong [ pos ] == 1 ) {
jika ( hitungan kosong < 0 )
kembali ;
masukan komputer ( ) ;
} kalau tidak {
cout << 'Komputer pilih:' << pos + 1 << akhir ;
indeks kosong [ pos ] = 1 ;
hitungan kosong - = 1 ;
papan [ pos ] = 'HAI' ;
}

}

ruang kosong masukan pemain ( Pemain & pemain ) {
ke dalam pos ;
cout << akhir ;
cout << ' \T ' << pemain. dapatkan Nama ( ) << ' Berbelok: ' ;
cout << ' \T Masukkan posisi ' <> pos ;
pos - = 1 ;
jika ( indeks kosong [ pos ] == 1 ) {
cout << '-----Posisi tidak kosong-------' << akhir ;
masukan pemain ( pemain ) ;
} kalau tidak {
indeks kosong [ pos ] = 1 ;
hitungan kosong - = 1 ;
pemain. dapatkan Nama ( ) . membandingkan ( 'Pemain I' ) == 0 ? papan [ pos ] = 'X' : papan [ pos ] = 'HAI' ;
}

}

ruang kosong periksaMenang ( Pemain & p1, Pemain & hal2 ) {
ke dalam aku,j,k ;
bodoh bendera = PALSU ;
arang simbol_pertama ;
untuk ( Saya = 0 ; Saya < 8 ; Saya ++ ) {
simbol_pertama = papan [ daftar menang [ Saya ] . baris [ 0 ] ] ;

jika ( ( simbol_pertama ! = 'X' ) && ( simbol_pertama ! = 'HAI' ) ) {
bendera = PALSU ;
melanjutkan ;
}
bendera = BENAR ;
untuk ( J = 0 ; J < 3 ; J ++ ) {
jika ( simbol_pertama ! = papan [ daftar menang [ Saya ] . baris [ J ] ] ) {
bendera = PALSU ;
merusak ;
}
}
jika ( bendera ) {
permainan Aktif = 0 ;
jika ( simbol_pertama == 'X' ) {
cout << '------------------------' << akhir ;
cout << ' \T Pemain AKU MENANG' << akhir ;
cout << '------------------------' << akhir ;
hal1. won ( ) ;
} kalau tidak {
hal2. won ( ) ;
jika ( melawan Komputer ) {
cout << '------------------------' << akhir ;
cout << ' \T Komputer MENANG' << akhir ;
cout << '------------------------' << akhir ;
} kalau tidak {
cout << '------------------------' << akhir ;
cout << ' \T Pemain II MENANG' << akhir ;
cout << '------------------------' < 0 ) && ( permainan Aktif ! = 0 ) ) {

jika ( melawan Komputer )
tangan == 1 ? masukan komputer ( ) : masukan pemain ( hal2 ) ;
kalau tidak
tangan == 1 ? masukan pemain ( hal1 ) : masukan pemain ( hal2 ) ;
tangan = ! tangan ;
papan tampilan ( ) ;
periksaMenang ( hal1, hal2 ) ;
}
jika ( hitungan kosong <= 0 ) {
cout << '      -----------------------' << akhir ;
cout << ' \T Tidak ada PEMENANG' << akhir ;
cout << '      -----------------------' << akhir ;
}
cout << akhir ;
cout <> pertandingan ulang ;
jika ( ( pertandingan ulang == 'DAN' ) || ( pertandingan ulang == 'Dan' ) ) {
panas ( ) ;
bermain ( hal1, hal2 ) ;
}

}
ruang kosong skor tampilan ( Pemain & p1, Pemain & hal2 ) {
cout << akhir ;
cout << ' \T SKOR: \T ' ;
jika ( melawan Komputer )
cout << 'Pemain I:' << hal1. dapatkan Skor ( ) << ' \T Komputer: ' << hal2. dapatkan Skor ( ) << akhir ;
kalau tidak
cout << 'Pemain I:' << hal1. dapatkan Skor ( ) << ' \T Pemain II: ' << hal2. dapatkan Skor ( ) << akhir ;
}

publik :
Permainan ( ) : hitungan kosong { 0 } , permainan Aktif { 1 } , melawan Komputer { 0 } {
panas ( ) ;
daftar menang [ 0 ] . baris = baru ke dalam [ 3 ] { 0 , 1 , 2 } ;
daftar menang [ 1 ] . baris = baru ke dalam [ 3 ] { 3 , 4 , 5 } ;
daftar menang [ 2 ] . baris = baru ke dalam [ 3 ] { 6 , 7 , 8 } ;
daftar menang [ 3 ] . baris = baru ke dalam [ 3 ] { 0 , 3 , 6 } ;
daftar menang [ 4 ] . baris = baru ke dalam [ 3 ] { 1 , 4 , 7 } ;
daftar menang [ 5 ] . baris = baru ke dalam [ 3 ] { 2 , 5 , 8 } ;
daftar menang [ 6 ] . baris = baru ke dalam [ 3 ] { 0 , 4 , 8 } ;
daftar menang [ 7 ] . baris = baru ke dalam [ 3 ] { 2 , 4 , 6 } ;
}

ruang kosong panas ( ) {
permainan Aktif = 1 ;

hitungan kosong = 0 ;
pasir ( waktu ( 0 ) ) ;
untuk ( ukuran_t Saya = 0 ; Saya < 10 ; Saya ++ ) {
indeks kosong [ Saya ] = 0 ;
papan [ Saya ] = ( Saya + 1 ) + '0' ;
hitungan kosong ++ ;
}
hitungan kosong -- ;
}

ruang kosong satuPlayerGame ( ) {
//Membuat Pemain
Pemain hal ( 'Pemain I' ) ;
Pemain c ( 'Komputer' ) ;
cout << '       -----------------------' << akhir ;
cout << ' \T Pemain I: X \T Komputer: HAI' << akhir ;
cout << '       -----------------------' << akhir ;
cout << akhir ;
melawan Komputer = 1 ;
bermain ( c, hal ) ;

}

ruang kosong duaPemainGame ( ) {
//Membuat Pemain
Pemain hal ( 'Pemain I' ) ;
Pemain c ( 'Pemain II' ) ;
cout << '       -----------------------' << akhir ;
cout << ' \T Pemain I: X \T Pemain II: HAI' << akhir ;
cout << '       -----------------------' << akhir ;
cout << akhir ;
melawan Komputer = 0 ;
bermain ( c, hal ) ;
}
} ;

ke dalam utama ( )
{
ke dalam bab ;

ketika ( 1 ) {
cout << ' ----------MENU----------' << akhir ;
cout << ' \T 1. Permainan 1 pemain' << akhir ;
cout << ' \T 2. Permainan 2 pemain' << akhir ;
cout << ' \T 3. Untuk keluar' << akhir ;
cout << '      ----------' << akhir ;
cout << akhir ;
cout << ' \T Pilih salah satu opsi' <> bab ;
mengalihkan ( bab ) {
kasus 1 : {
Permainan * permainan = baru Permainan ;
permainan - > panas ( ) ;
permainan - > satuPlayerGame ( ) ;
}
merusak ;
kasus 2 : {
Permainan * permainan = baru Permainan ;
permainan - > panas ( ) ;
permainan - > duaPemainGame ( ) ;
}
merusak ;
kasus 3 :
kembali 0 ;
bawaan :
cout << 'OOPs Opsi Tidak Valid! COBA LAGI' ;
}

}
kembali 0 ;
}

Ini adalah kode lengkap untuk menjalankan permainan tic-tac-toe yang dapat dimainkan dalam dua mode, baik dengan komputer atau dengan sesama manusia. Ini adalah kode serbaguna, termasuk semua kemungkinan perintah. Ketika pengguna memasukkan posisi yang sudah terisi, ia tidak menimpa posisi ini dan menganggap perpindahan ini tidak valid.

Sampai sekarang pemain pertama telah memilih kotak pertama dan kemudian pada giliran berikutnya komputer menandai kotak keenam:

Kedua pemain telah memilih dua kotak sampai sekarang dan pada giliran berikutnya pemain saya memilih kotak ketujuh sehingga menghasilkan pola vertikal yang berurutan:

Pengguna memilih untuk menggunakan komputer untuk bermain game, jadi setelah mengambil tiga langkah, pengguna menang dari komputer dan satu skor ditambahkan ke catatan pemain 1. Setelah pertandingan pertama selesai, kompiler meminta pertandingan ulang. Pengguna memutuskan opsi dan program kembali ke bagian utama. Setelah memilih opsi ketiga, kompiler melakukan eksekusi kode.

Kesimpulan

Game berbasis teks mengandalkan karakter teks dan antarmuka baris perintah untuk berinteraksi dengan pemain. Mereka tidak memiliki gambar grafis, suara, atau animasi. Pengguna memasukkan perintah melalui jendela konsol. Game tic-tac-toe berbasis teks yang mudah digunakan ini dibuat menggunakan C++. Ia menggunakan perintah berbeda untuk membuat permainan yang bisa dimainkan dengan komputer atau pemain lain.