Priemro de todo deberias cambiar : while(i != 0 || cadena==palabra);
por while(i!=0 && strcmp(cadena,palabra)!= 0);
Para comparar cadenas de caracteres hay que usar una funcion. Ya que el == usado asi solo compara direcciones de memoria. strcmp devuelve 0 si la camdena es igual.
Ademas necesitas usar el AND (&&). para chequer las dos condiciones.
Lo de los numeros ya esta chequeado, en este DO
Código C++:
Ver originaldo {
printf("Introduce una letra minuscula (Jug.2): "); }while (letra < 'a' || letra > 'z');
Por ultimo una sugerencia asi aprender mas, te recomendaria leer mas sobre arrays, asi evitas escribir dos veces el codigo, uno para cada jugador.
Saludos